728x90
<마운트란?>
- 도커 컨테이너와 호스트 시스템 간에 파일 또는 디렉터리를 공유하거나 볼륨을 연결하는 프로세스
- 형식: docker container run -v /호스트/경로:/컨테이너/경로 이미지:태그
<Docker 실습 :: 마운트>
<실시간 데이터 공유를 확인할 폴더 생성>
- ch06 폴더에 bind01 bind02 폴더를 생성 후,
- 각 폴더 안에 docker-1.txt, docker-2.txt 파일 생성
- docker-1.txt 내용: 2020401771103 docker-1 / docker-2.txt 내용: 2020401771103 docker-2
ubuntu@host1:~/Labs/ch06$ cat bind01/docker-1.txt
2020401771103 docker-1 >> 내용 확인
ubuntu@host1:~/Labs/ch06$ cat bind02/docker-2.txt
2020401771103 docker-2 >> 내용 확인
<컨테이너 마운트 설정>
- v /home/ubuntu/Labs/ch06/bind01:/bind01:ro: 호스트의 "/home/ubuntu/Labs/ch06/bind01" 디렉터리를 컨테이너 내의 "/bind01" 경로에 읽기 전용으로 마운트
- v ${PWD}/bind02:/bind02:rw: 호스트의 현재 작업 디렉터리에서 "bind02" 디렉터리를 컨테이너 내의 "/bind02" 경로에 읽기 및 쓰기 권한으로 마운트
ubuntu@host1:~/Labs/ch06$ docker container run -it --name=bind-mount -v /home/ubuntu/Labs/ch06/bind01:/bind01:ro -v ${PWD}/bind02:/bind02:rw ubuntu:14.04 bash
<마운트 상태 확인>
root@dbc1452e6563:/bind02# df -ha
Filesystem Size Used Avail Use% Mounted on
overlay 47G 3.3G 43G 8% /
proc 0 0 0 - /proc
tmpfs 64M 0 64M 0% /dev
devpts 0 0 0 - /dev/pts
sysfs 0 0 0 - /sys
cgroup 0 0 0 - /sys/fs/cgroup
mqueue 0 0 0 - /dev/mqueue
shm 64M 0 64M 0% /dev/shm
**/dev/sda1 30G 14G 17G 46% /bind01
/dev/sda1 30G 14G 17G 46% /bind02/docker-2.txt**
/dev/sdb2 47G 3.3G 43G 8% /etc/resolv.conf
/dev/sdb2 47G 3.3G 43G 8% /etc/hostname
/dev/sdb2 47G 3.3G 43G 8% /etc/hosts
devpts 0 0 0 - /dev/console
proc 0 0 0 - /proc/bus
proc 0 0 0 - /proc/fs
proc 0 0 0 - /proc/irq
proc 0 0 0 - /proc/sys
proc 0 0 0 - /proc/sysrq-trigger
tmpfs 2.0G 0 2.0G 0% /proc/acpi
tmpfs 64M 0 64M 0% /proc/kcore
tmpfs 64M 0 64M 0% /proc/keys
tmpfs 64M 0 64M 0% /proc/timer_list
tmpfs 2.0G 0 2.0G 0% /proc/scsi
tmpfs 2.0G 0 2.0G 0% /sys/firmware
>> **bind02/docker-2.txt / bind01 마운트 확인 가능**
ubuntu@host1:~/Labs/ch06$ docker container inspect -f"{{.HostConfig.Binds}}" bind-mount
[/home/ubuntu/Labs/ch01/bind01:/bind01:ro /home/ubuntu/Labs/ch06/bind02/docker-2.txt:/bind02/docker-2.txt:rw]
>> 마운트 상태 및 경로 확인
** 첫 번째: 읽기 전용으로 호스트의 "/home/ubuntu/Labs/ch01/bind01" 디렉터리를
컨테이너 내의 "/bind01" 경로에 마운트
** 두 번째: 읽기 및 쓰기 권한으로
호스트의 "/home/ubuntu/Labs/ch06/bind02/docker-2.txt" 파일을
컨테이너 내의 "/bind02/docker-2.txt" 경로에 마운트
<첫 번째 마운트 설정 확인: 읽기 전용>
- 마운트 내용 업데이트 확인
root@ac8136bf8bae:/# cat /bind01/docker-1.txt
2020401771103 docker-1
root@ac8136bf8bae:/# echo 'haha' >> bind01/docker-1.txt
bash: bind01/docker-1.txt: Read-only file system
root@ac8136bf8bae:/# cat /bind01/docker-1.txt
2020401771103 docker-1
>> bash: bind01/docker-1.txt: Read-only file system
읽기 전용으로 마운트했기 때문에, haha 라는 내용 업데이트가 안 됨.
<두 번째 마운트 설정 확인: 읽기 및 쓰기 전용>
- 호스트의 bind02/docker-2.txt에 ‘hahah’ 내용 입력 후, 컨테이너에 업데이트가 되는지 확인
ubuntu@host1:~/Labs/ch06$ echo 'hahah' >> bind02/docker-2.txt
>> 해당 터미널은 호스트에 접속해 있음
root@d434fgdb794e:/bind02# cat docker-2.txt
2020401171103 docker-2
hahah < 호스트에서 작성한 내용
>> 해당 터미널은 컨테이너 안으로 접속해 있음
'클라우드 + DevOps > Docker' 카테고리의 다른 글
Docker 마운트 실습 :: 스토리지 드라이버 설정(--storage-opt)과 pquota 마운트 (0) | 2024.02.29 |
---|---|
Docker 마운트 실습 :: 마운트를 이용한 NginX 로그 기록 관리 (1) | 2024.02.28 |
Docker :: 컨테이너 볼륨volume 개념과 실습 (0) | 2024.02.26 |
Docker :: 컨테이너CPU 자원 한계 설정 (1) | 2024.02.25 |
Docker 네트워크 실습 심화 :: HAproxy ACL 조건 설정 (1) | 2024.02.24 |