컨테이너와 호스트 간에 파일 복사
파일 복사는 호스트 > 컨테이너, 컨테이너 > 호스트로 양방향 모두 가능하다.
docker cp (docker container cp) 명령어를 이용한다.
호스트 > 컨테이너
docker cp 호스트_경로 컨테이너_이름:컨테이너_경로
docker cp /home/ahndrenaline/index.html cntr-httpd:/usr/local/apache2/htdocs/
docker cp C:\Users\ahndrenaline\index.html cntr-httpd:/usr/local/apache2/htdocs/
컨테이너 > 호스트
docker cp 컨테이너_이름:컨테이너_경로 호스트_경로
docker cp cntr-httpd:/usr/local/apache2/htdocs/index.html /home/ahndrenaline/
docker cp cntr-httpd:/usr/local/apache2/htdocs/index.html C:\Users\ahndrenaline\
컨테이너와 호스트 간에 스토리지 마운트
컨테이너를 종료한다고 해서 컨테이너 속의 데이터가 삭제되지는 않지만 컨테이너가 소멸되면 컨테이너 속의 데이터 역시 소멸된다. 어떠한 이유이던 간에 컨테이너가 소멸되어도 소멸되지 말아야 하는 데이터는 호스트에 마운트 하여 보관한다.
스토리지의 마운트는 볼륨 마운트와 바인드 마운트 두 가지 종류가 있다.
스토리지가 아닌 임시 메모리(tmpfs)를 마운트 하는 방식도 있다.
바인드 마운트
도커 엔진의 관리하에 있지 않다. 간단하게 디렉토리나 파일을 마운트 할 수 있다.
-v 스토리지_경로:컨테이너_마운트_경로
-v /home/ahndrenaline/httpd_folder:/usr/local/apache2/htdocs
-v C:\Users\ahndrenaline\httpd_folder:/usr/local/apache2/htdocs
docker run --name cntr-httpd -dit -p 80:80 -v /home/ahndrenaline/httpd_folder:/usr/local/apache2/htdocs httpd
볼륨 마운트
도커 엔진의 관리하에 있다. 볼륨을 생성한 후 마운트 할 수 있으며, 도커 제작사가 권고하는 마운트 방법이다.
도커 볼륨 명령어
docker volume create
docker volume inspect
docker volume ls
docker volume prune
docker volume rm
-v 볼륨_이름:컨테이너_경로
docker volume create vol-httpd
docker volume inspect vol-httpd
[
{
"CreatedAt": "2022-05-30T16:14:20Z",
"Driver": "local",
"Labels": {},
"Mountpoint": "/var/lib/docker/volumes/vol-httpd/_data",
"Name": "vol-httpd",
"Options": {},
"Scope": "local"
}
]
docker run --name cntr-httpd -dit -p 80:80 -v vol-httpd:/usr/local/apache2/htdocs httpd
docker container inspect cntr-httpd
...생략...
"Mounts": [
{
"Type": "volume",
"Name": "vol-httpd",
"Source": "/var/lib/docker/volumes/vol-httpd/_data",
"Destination": "/usr/local/apache2/htdocs",
"Driver": "local",
"Mode": "z",
"RW": true,
"Propagation": ""
}
...생략...
백업
바인드 마운트 백업
컨테이너와 호스트 간에 연결된 디렉토리 및 파일을 단순히 복사하는 것으로 간단하게 백업을 할 수 있다.
볼륨 백업
볼륨 자체를 복사할 수 없으므로 별도의 컨테이너를 연결해서 볼륨의 내용을 백업 한다.
# 주 컨테이너 생성
docker volume create vol-httpd
docker run --name cntr-httpd -dit -p 80:80 -v vol-httpd:/usr/local/apache2/htdocs httpd
docker container stop cntr-httpd
# 백업 컨테이너 생성 및 볼륨 마운트
docker run --name cntr-backup -dit -v vol-httpd:/backup busybox
# 백업 컨테이너에서 압축 명령어 실행
docker exec -it cntr-backup tar -cvf backup.tar backup
backup/
backup/index.html
# 백업 컨테이너에서 호스트로 백업 파일 복사
docker cp cntr-backup:backup.tar .
'클라우드 컴퓨팅 > Docker' 카테고리의 다른 글
도커 이미지 만들기 #2 - 도커 허브와 도커 레지스트리 (0) | 2022.06.03 |
---|---|
도커 이미지 만들기 #1 - 개요 및 방법 (0) | 2022.06.01 |
도커 컨테이너 생성 및 실행 하기 #2 - 여러 개의 컨테이너 연동하기 (0) | 2022.05.28 |
도커 네트워크 기본 #2 - 네트워킹 튜토리얼(bridge) (0) | 2022.05.28 |
도커 네트워크 기본 #1 - 개요 (0) | 2022.05.28 |