* image는 읽기 전용, Container는 읽기/쓰기.
- volume 방식
호스트 볼륨 컨테이너
(없음) file1(abc)
<------------------------ file1(abc) [동기화!]
file1(abc) file1(abc)
file1(abcde) file1(abc) [host쪽에서 파일 수정!]
file1(abcde) ---> file1(abcde)
예) 호스트에서 작업한 파일이 컨테이너에 있다면?
컨테이너에 존재하는 파일을 덮어써버림.
- bind mounts 방식
호스트 볼륨 컨테이너
file1(abc)
file2(xyz) [host쪽에서 파일 수정!]
file2(xyz) (파일이 덮어쓰여짐)
호스트에는 파일이 없다고 가정했을 때,
컨테이너에 파일이 존재해도 컨테이너 쪽 파일 자동으로 없어짐.
- docker volume 생성
- docker mysql 실습
@ debian, ubuntu <= docker에서 httpd (apache)의 경우 debian 이미지여서 아래 위치로.
nginx HTTP 루트 디렉토리: /usr/share/nginx/html/
apache HTTP 루트 디렉토리: /usr/local/apache2/htdocs/
@CentOS
nginx HTTP 루트 디렉토리: /usr/share/nginx/html/
apache HTTP 루트 디렉토리: /var/www/html/
- volume 방식:
"Mounts": [
{
"Type": "volume",
"Name": "testvol",
"Source": "/var/lib/docker/volumes/testvol/_data",
"Destination": "/usr/share/nginx/html",
"Driver": "local",
"Mode": "z",
"RW": true,
"Propagation": ""
}
- bind 방식:
"Mounts": [
{
"Type": "bind",
"Source": "/www",
"Destination": "/usr/share/nginx/html",
"Mode": "",
"RW": true,
"Propagation": "rprivate"
}
]
- bind 방식 예
(컨테이너 쪽에 파일 2개 있었지만, 무조건 host 쪽에서 동기화를 해버리기 때문에
컨테이너 쪽 파일들은 사라지고 없음을 확인 가능)
- bind 방식 예2
* 상황 가정: host에서 index.html 파일 생성
=>
container에 아무것도 없었지만, host 쪽에서 index.html 파일 생성을 했으니 동기화가 되었고,
container 쪽에도 동일하게 index.html 파일 확인 가능.
[nfs-server 실습]
* 마운트 가능 여부 확인
[root@docker1 ~]# showmount -e 192.168.2.20
Export list for 192.168.2.20:
/nfsweb 192.168.2.10
* 마운트 명령어
[root@docker1 ~]# mount 192.168.2.20:/nfsweb /web
* 마운트 해제 명령어
[root@docker1 ~]# umount /web
'Docker' 카테고리의 다른 글
[Docker 수업] 20241026 12장 이미지 생성 (0) | 2024.10.26 |
---|---|
[Docker 수업] 20241026 10장 컨테이너 운용 (0) | 2024.10.26 |
[Docker 수업] 20241026 9장 네트워크 관리 (0) | 2024.10.26 |
[Docker 수업] 20241020 컨테이너 네트워크 관리 (8장) (0) | 2024.10.20 |
[Docker 수업] 20241020 컨테이너 다루기 (6장) (2) | 2024.10.20 |