Copying files from Docker container to host | 도커 컨테이너에서 호스트로 파일 복사하기

Q.

도커를 활용해서 CI 서버에 필요한 dependency를 처리하고 싶어요. 런타임과 라이브러리들을 에이전트가 매번 설치하지 않아도 되게요. 이걸 위해서 컨테이너 안에서 생성된 빌드 artifact들을 호스트로 보내야 해요.

가능할까요?

 

A.

컨테이너에서 호스트로 파일을 복사하려면 아래 커맨드를 사용하세요.

docker cp <containerId>:/file/path/within/container /host/path/target

예시입니다:

[jalal@goku scratch]$ sudo docker cp goofy_roentgen:/out_read.jpg .

goofy_roentgen이라는 이름은 아래 커맨드로 얻었어요:

[jalal@goku scratch]$ sudo docker ps
[sudo] password for jalal:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1b4ad9311e93 bamos/openface “/bin/bash” 33 minutes ago Up 33 minutes 0.0.0.0:8000->8000/tcp, 0.0.0.0:9000->9000/tcp goofy_roentgen

 

주석:

ssh로 실제 머신과 파일을 주고 받을 때 scp를 쓰듯이, 도커 컨테이너에서도 비슷한 일을 할 수 있습니다. 예시에서는 컨테이너에서 호스트로 파일을 복사하는 경우가 나와있는데, 반대로 호스트에서 컨테이너로 파일을 복사하는 것도 가능합니다. scp에서처럼 컨테이너와 호스트의 순서만 바꾸면 됩니다. 하지만 컨테이너 사이에서 파일을 복사할 수는 없습니다. 시험삼아 해보니 아래의 메시지가 뜨네요.

copying between containers is not supported

 

원문:

https://stackoverflow.com/questions/22049212/copying-files-from-docker-container-to-host

218 Comments