겉바속촉
[DOCKER] 도커_v 옵션 활용하기 본문
DOCKER에 대해서
공부해보도록 하겠습니다
!^^!
mkdir -m 777 /web
디렉토리 하나 만드는 데 누구나 writing할 수 있게(777) 공유형태로 만드는 것 (-m)
왜 777인지는 다음 포스팅의 옥탈모드 참고
2020/12/29 - [IT 일기 (상반기)/LINUX] - [LINUX] 리눅스_파일 제어하기
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
로그아웃
'IT 일기 (상반기) > DOCKER' 카테고리의 다른 글
[DOCKER] 도커_Network static하게 설정하기 (0) | 2020.12.31 |
---|---|
[DOCKER] 도커_컨테이너 명령어 (0) | 2020.12.31 |
[DOCKER] 도커_컨테이너 네트워크 설정, 생성, 실행 (0) | 2020.12.31 |
[DOCKER] 도커_컨테이너 생성, 시작, 정지 (0) | 2020.12.30 |
[DOCKER] 도커_이미지조작 (0) | 2020.12.30 |