겉바속촉

[DOCKER] 도커_v 옵션 활용하기 본문

IT 일기 (상반기)/DOCKER

[DOCKER] 도커_v 옵션 활용하기

겉바속촉 2020. 12. 31. 11:45
728x90
반응형

 

DOCKER에 대해서

 

공부해보도록 하겠습니다

 

!^^!

 

 

 


 

 

 

 

mkdir -m 777 /web

디렉토리 하나 만드는 데 누구나 writing할 수 있게(777) 공유형태로 만드는 것 (-m)

 

왜 777인지는 다음 포스팅의 옥탈모드 참고

 

2020/12/29 - [IT 일기 (상반기)/LINUX] - [LINUX] 리눅스_파일 제어하기

 

[LINUX] 리눅스_파일 제어하기

지난 번에 이어 리눅스에 대해서 더 공부해보도록 하겠습니다 파일 제어하기 파일 이름 대체 메타 문자 --> WILDCARD 1.  * 문자 ls f* : f로 시작하는 것들 다 ls d* : d로 시작하는 것들 다 lf *3 : 3으로

2-juhyun-2.tistory.com

 

 

 

docke run -v /web:/usr/share/nginx/html -d --rm --name vol-web nginx

 

컨테이너 실행 볼륨 매핑해서 할당해주고(-v) 

호스트 자원 : 컨테이너 자원

호스트의 web과 컨테이너의 root-usr-share-nginx-html과 연결하겠다는 것

데몬(백그라운드)로 돌아가게(-d)

종료되면 자동 삭제(--rm)

이름 주기 (--name)

이름은 vol-web

이미지는 nginx

 

 

 

docker exec vol-web ls /usr/share/nginx/html

vol-web 컨테이너에 ls로 파일 확인해볼게요

기존에는 index가 있었지만 새로운 호스트의 디렉토리와 연결해서 사용하겠다고 선언해서

아무것도 안뜹니다

 

docker exec vol-web df -h

그럼 컨테이너의 파티션 정보를 확인해볼게요

 

 

 

docker exec vol-web cat /etc/hosts

컨테이너 ip확인해볼게요 (docke inspect도 가능합니다)

보니까 172.17.0.4 로 되어있네요

 

 

curl로 저 주소를 확인해볼게요

index파일이 없어서 Forbidden이 뜨고있죠?~

 

 

그럼 index파일을 우리가 설정해볼게요

 

host에 web 디렉토리가 연결되어있으니까

우리가 web에다가 만들면 되는거에요

cat > /web/index.html

 

만약에 오타 발생 --> ctrl + backspace 로 지워주세요

다 입력하셨다면 --> ctrl + d  로 마무리!!

 

 

docker exec vol-web ls /usr/share/nginx/html

이제 vol-web 컨테이너 실행해서 파일 확인해볼게요

아까는 없었는 데

지금은 있네요?

 

 

 

이제 index.html을 업데이트 해주어야합니다

수정은 vi편집기로

 

vi /web/index.html

This is updated-vol-web test... 라고 입력했습니다

 

 

curl 172.17.0.4

확인해볼까요?

 

docker exec vol-web ls /var

var폴더 밑에 다음과 같이 있습니다

 

 

 

docker exec vol-web touch /usr/share/nginx/html/hello.txt

 

이제 빈파일 touch명령으로 만들고 vol-web 컨테이너를 실행하는 데 remote로 할 것입니다

hello.txt 파일을 생성하는 수행명령!!

 

그럼 이 파일은 local에서 web으로 들어갑니다

 

ls로 /web 확인해보니 hello.txt도 생성이 되었네요

 

 

docker stop vol-web

컨테이너 이제 stop시킬게요

 

 

 

ls /web

다시 확인

그런데도 web안에 있는 파일은 그대로 존재!!

 

 

docker run -v /web:/usr/share/nginx/html -d --rm --name vol-web nginx

그럼 다시 컨테이너 실행시켜볼게요

아까 주었던 명령 그대로 내렸습니다

 

 

curl 172.17.0.4

ip주소 curl로 확인해보니

여전히 동일한 내용이 잘 뜨고 있습니다

 

 


 

그럼 이번에는 -v 옵션을 생략시키고 동일한 작업을 해보려고합니다

 

 

docker stop vol-web

진행중이던 컨테이너 stop

 

docker run -d --rm --name vol-web nginx

-v 옵션은 빼버리고 명령 내리기

 

 

curl 172.17.0.4

curl로 확인해보니 웰컴페이지가 보입니다

 

 

 

docker exec -it vol-web /bin/bash

커넥트를 하려고 합니다 exec

쉘을 띄울게요             /bin/bash      

터미널도 부여             -it

그럼 컨테이너에 접속이됩니다

 

cd /usr/share/nginx/html

이제 들어가서!

 

ls

파일 확인

 

 

cat > index.html

수정해보려구요

Test....로 수정했습니다

 

 

exit

로그아웃

 

 

 

위에서 했던 과정 동일하게 진행해볼게요

 

curl 172.17.0.4

 

docker stop vol-web

stop 시키고

 

docker run -d --rm --name vol-web nginx

다시 실행

 

 

curl 172.17.0.4

curl로 확인

 

 

stop --> start

 

수정했던 데이터가 그대로 출력되지만

 

rm --> start

 

수정했던 데이터가 아니라 기존의 데이터가 출력되버림

컨테이너가 삭제됨에 따라 함께 삭제되기 때문

 

 

 

하지만 -v 옵션 사용해서 특정 호스트와 연결을 시켜놓으면

 

컨테이너를 rm --> start 하더라도

동일한 페이지 서비스를 받을 수 있다

 

 

컨테이너와 별개의 스토리지를 쓰도록 하기 때문에

영구적으로 보관하거나

컨테이너간에 공유를 목적으로도

v 옵션을 사용

 

 

 

 

docker run -v /web:/data --rm -it --name vol-centos centos

centos를 -v 옵션으로 올려볼게요

 

 

df -h

파티션 확인

/data 라고 하는 컨테이너 쪽이 내부적으로는 장치를 매핑시킵니다

스토리지로 인식하는 거에요

로컬에서는 /data와 연결

 

ls/data

/data 이하 파일들 확인

 

exit

로그아웃

 

 

 

 

 

728x90
반응형