지난시간에는 도커파일 중 ENV를 알아보고, 환경변수도 알아봤다!
이번 시간에는
도커파일의 VOLUME을 알아보자!
호스트 파일 <-> 컨테이너 파일 전송
호스트, 컨테이너 간 파일 전송이 필요할 때가 있다.
예를 들어
컨테이너의 로그 파일을 호스트 파일로 가져와 분석하는 경우가 있다!
🙋♀️ docker cp 명령어
docker cp [host파일] [container name]:[container경로]
host ➔ container
docker cp [container name]:[container경로][host파일]
container ➔ host
볼륨 마운트로 호스트 <-> 컨테이너 파일 공유
docker cp 명령어 말고도,
볼륨 마운트 방식으로 공유 가능하다!
🙋♀️볼륨
🙋♀️볼륨 마운트
도커에서의 볼륨 마운트
🙋♀️1. 바인드 마운트
- 사용자가 직접 관리하는 마운트 방식
- 도커 엔진에서 관리하는 영역 뿐 아니라 호스트 컴퓨터 어디라도 마운트 가능
- 사용자가 직접 파일 수정 가능 (호스트에 존재하는 기존의 파일 그대로 마운트하므로)

쉽게 말해서,
A 컨테이너의 파일 저장 위치 -> B 호스트 파일 시스템으로 변경한 개념으로
A를 수정해도 B가 수정되고,
B를 수정해도 A가 수정된다!
docker run의 -v 옵션
docker run -v (호스트_디렉토리_위치):(컨테이너_디렉토리_위치)
$ docker run -dt -v --name test_bind_mount -v ./study-docker:/home/docker ubuntu
$ docker exec -it test_bind_mount /bin/bash # 컨테이너에 진입
# ls /home/docker # [컨테이너 내 명령어] /home/docker에 포함된 파일 확인
# cat /home/docker/hello.txt # [컨테이너 내 명령어] /home/docker 내 hello.txt파일 확인



이렇게 host에서 작성하면, 도커 컨테이너중
한 군데에서 수정하면
다른 데에서도 수정사항이 똑같이 반영되는 것을 볼 수 있다.
🙋♀️2. 볼륨 마운트
- 도커에서 관리해주는 마운트 방식
- 사용자가 파일 위치를 신경 쓸 필요 없음
- 도커 엔진이 관리하는 영역 내에서 마운트 가능
- 기존의 파일이 직접 마운트되지 않고, 볼륨으로 생성되며 그것이 컨테이너에 마운트됨
$ docker volume create --name test_volume_mount
$ docker run -it --name test_ubuntu_mount -v test_volume_mount:/root/ ubuntu
# echo “hello” > /root/hello.txt # [컨테이너 속 명령어] root위치에 hello.txt 파일 생성 (“hello”내용)
# exit # [컨테이너 속 명령어] 컨테이너 나옴
이런 식으로 명령어를 주면,
이번 시간에는
볼륨, 볼륨 마운트를 알아보았다!
다음 시간에는 도커 이미지에 대해 더 알아보자!
'클라우드 > 도커' 카테고리의 다른 글
[도커] 도커 9: 도커 컨테이너 상세 조회 명령어 모음 (0) | 2024.11.19 |
---|---|
[도커] 도커 8: 도커 이미지 심화 (0) | 2024.11.18 |
[도커] 도커 5: docker 파일 2 (Dockerfile) - 도커 명령어 (2) | 2024.11.15 |
[도커] 도커 4: docker 파일 1 (Dockerfile) (3) | 2024.11.14 |
[도커] 도커 3: docker 명령어 모음 2탄 (도커 이미지 관련 명령어) (3) | 2024.11.13 |