스택큐힙리스트

도커: 도커 컨테이너에서 호스트로 파일 복사하기 본문

카테고리 없음

도커: 도커 컨테이너에서 호스트로 파일 복사하기

스택큐힙리스트 2023. 3. 18. 21:38
반응형

저는 CI 서버 상에서 의존성을 구축하기 위해 Docker를 사용하고자 합니다. 그래서 에이전트 그 자체에 모든 런타임과 라이브러리를 설치할 필요가 없도록 할 수 있습니다.

이를 달성하기 위해서는 컨테이너 내에서 빌드 된 빌드 아티팩트를 호스트로 다시 복사해야합니다. 가능한가요?

답변 1

컨테이너에서 호스트로 파일을 복사하기 위해 아래 명령어를 사용할 수 있습니다.

docker cp :/file/path/within/container /host/path/target

예를 들어:

$ sudo docker cp goofy_roentgen:/out_read.jpg .

다음 명령으로 얻은 컨테이너 이름은 goofy_roentgen 입니다.

$ sudo docker ps

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

당신은 또한 (일부) 컨테이너 ID를 사용할 수 있습니다. 다음 명령어는 첫 번째와 동일합니다.

$ sudo docker cp 1b4a:/out_read.jpg .

답변 2

도커: 도커 컨테이너에서 호스트로 파일 복사하기

도커(Docker)는 애플리케이션을 컨테이너로서 실행하는 도구로, 컨테이너 안에 필요한 모든 것을 포함할 수 있습니다. 이는 개발자 및 시스템 관리자에게 많은 장점을 제공합니다. 그러나 사용자가 컨테이너 안에 있는 파일을 호스트 머신으로 복사하려는 경우 어떻게 해야할까요?

기본적으로 도커는 컨테이너와 호스트 간에 파일 공유를 지원하지 않습니다. 그럼에도 불구하고, 파일을 복사하고 컨테이너에서 호스트로 이동하는 방법이 있습니다.

1. 컨테이너에서 파일 복사하기

먼저, 복사할 파일이 있는 컨테이너로 들어가야 합니다. 이를 위해 docker exec 명령어를 사용합니다.

$ docker exec -it /bin/bash

위 명령어를 실행하면, 컨테이너 쉘로 들어가게 됩니다. 이제 파일을 복사할 디렉토리로 이동하고, scp 명령어를 사용하여 파일을 호스트로 복사합니다.

$ cp /path/to/file /path/inside/container

$ scp /path/inside/container @:/path/on/host

위 명령어에서 는 호스트 머신의 사용자 이름과 IP 주소를 나타내며, 는 호스트 머신에서 복사할 디렉토리 경로입니다.

2. 호스트에서 파일 복사하기

호스트 머신에서 컨테이너로 파일을 복사하는 것도 가능합니다. 이를 위해 docker cp 명령어를 사용합니다.

$ docker cp : /path/on/host

위 명령어에서 는 복사할 파일이 있는 컨테이너의 ID를 나타내며, 는 복사할 파일의 경로입니다. 는 호스트 머신에서 파일을 복사할 경로입니다.

이상적으로는 파일을 공유할 때 도커 볼륨을 사용하는 것이 좋습니다. 이를 통해 파일을 읽고 쓰는 것이 더욱 편리해집니다.

반응형
Comments