목차
1. docker cp
2. Volume
2.1 기본적인 volume 생성 후 공유하기
2.2 Bind 공유
2.3 Volum 삭제
1. docker cp
- 컨테이너 -> 로컬 / 로컬 -> 컨테이너로 파일을 복사하기 위해 docker cp라는 명령어를 사용할 수 있다.
* docker cp
- c2의 이름을 가진 컨테이너 내부에 디렉토리 생성 및 파일을 생성한 다음 해당 파일을 로컬 Server에 파일을 복사 할 수 있다.
- 하지만 컨테이너에서 컨테이너로 파일을 복사하는 것은 불가능하다.
- 반대로 로컬 Server에 존재하는 파일을 Container로 옮길 수도 있다.
- exec 명령어를 사용하면 컨테이너에 직접 들어가지 않고 명령어를 실행 할 수 있다.
2. Volume
- Docker 컨테이너의 생명 주기와 관계없이 데이터를 영속적으로 저장할 수 있도록 Docker는 두가지 옵션을 제공한다.
1. Volume
2. Bind mount
- 볼륨은 컨테이너가 실행될때 공유한다. 디렉토리 공유와 유사하다.
/var/lib/docker/volumes
- volume에는 5가지 옵션이 있다. create, inspect, ls, prune, rm
2.1 기본적인 volume 생성 후 공유하기
- 컨테이너 생성 시 -v 옵션을 이용하여 볼륨을 지정할 수 있다. 디렉토리가 기존에 없으면 자동으로 생성된다.
- 볼륨은 컨테이너 생성 시 공유한다.
- cp는 컨테이너 실행 후 복사한다.
- 임의의 파일을 생성 후 해당 파일을 볼륨 기본 경로와 공유된 c3의 이름을 가진 컨테이너로 복사한다.
- 컨테이너에 임의의 파일이 생성되자 볼륨 기본 경로에도 파일이 자동으로 생성된 것을 볼 수 있다.
- 볼륨도 디렉토리랑 비슷하다고 생각하면 된다.
- 컨테이너 생성 시 볼륨 명령어를 사용하여 생성하면 기본 볼륨 경로로 지정되고 디렉토리가 없으면 자동으로 생성한다.
2.2 Bind 공유
- Bind 공유를 사용하면 볼륨 기본 경로가 아닌 호스트가 지정하는 경로에 볼륨 공유를 지정할 수 있다.
- Bind 공유를 위해 경로 지정 시 반드시 절대경로로 지정해야 한다.
- 로컬의 /root/bis1 디렉토리와 centos 이미지로 생성한 c4 컨테이너의 /bis1 경로와 Bind 공유를 한다.
- 볼륨을 공유하기 때문에 로컬의 /bis1 디렉토리에 파일을 생성하게 되면 c4 컨테이너 /bis1 디렉토리에도 파일이 생성되는 것을 볼 수 있다.
* 볼륨 공유 2가지
1. 볼륨 create로 생성해서 공유한다. -> 볼륨 기본 경로로 지정된다.
2. Bind를 통해 공유시키기 -> 절대경로를 사용하여 경로를 생성한다.
2.3 Volum 삭제
* Volume rm 명령어를 사용하여 Volume을 삭제할 수 있다.
- mysql에 db가 위치하는 폴더가 있는데 로컬에 있는 db랑 연결해서 백업하는 용도로 주로 사용한다.
- 설정파일 앞부분까지 local로 공유하면 컨테이너에서 설정 파일을 만들어서 넣을 수 있다.
'Programming > Docker' 카테고리의 다른 글
Docker - HAProxy, Network, Port Forwarding (0) | 2022.05.30 |
---|---|
Docker - Network (0) | 2022.05.30 |
Docker - 프로세스 동작 과정 (cat, cp, signal, /etc/hosts, exec, attach) (0) | 2022.05.27 |
Docker - 프로세스, 쉘, 데몬, 포그라운드, 백그라운드 (kill 명령어) (0) | 2022.05.26 |
Docker - 설치 및 기본 명령어, 원격 저장소에 이미지 올리기 (0) | 2022.05.19 |