Docker 컨테이너로 파일을 전송하는 방법

경우에 따라 백업 등을 위해 Docker 컨테이너 에서 호스트 시스템으로 파일을 전송 해야 할 수도 있습니다 . 이는 docker cp 도구를 사용하여 Linux에서 쉽게 수행할 수 있습니다. 사용 방법은 다음과 같습니다.

xr:d:DAFds8YL9ik:2,j:43601822907,t:23032003

Docker CP를 사용하여 Docker 컨테이너에서 호스트로 파일을 전송하는 방법

Docker 컨테이너 외부의 파일을 호스트 시스템으로 전송해야 하는 경우 가장 빠르고 쉬운 방법은 Docker CP 도구를 사용하는 것입니다. 시작하려면 SSH를 통해 또는 터미널 인터페이스 가 있는 물리적 모니터를 통해 서버에 로그인하십시오 .

로그인한 후 루트 계정에 액세스하십시오. 두 가지 방법으로 이 작업을 수행할 수 있습니다. su 명령 또는 sudo -s 명령을 사용합니다 .

또는

sudo -s

로그인 후 docker ps 명령을 실행합니다. 이 명령을 실행하면 실행 중인 모든 컨테이너가 표시됩니다. 파일을 전송하려는 컨테이너의 ID를 검색합니다. 그런 다음 다음 명령을 사용하여 컨테이너에 로그인합니다.

참고: $id를 컨테이너 ID로 바꿉니다.

docker exec -it $id /bin/bash

이제 위의 docker exec 명령을 사용하여 Docker 컨테이너에 로그인했으므로 컨테이너를 탐색하고 Docker CP를 사용하여 전송할 파일을 압축해야 합니다.

이 예에서는 디렉토리의 "test" 폴더를 사용합니다 /root/. 필요에 맞게 이 명령을 수정해야 합니다.

tar -czvf my-archive.tar.gz /루트/테스트/

파일을 압축한 후 컨테이너를 종료합니다. 다음 exit 명령을 사용하여 Docker 컨테이너에서 터미널 인터페이스를 종료할 수 있습니다.

출구

마지막으로 컨테이너에서 호스트 시스템으로 파일을 전송합니다.

docker cp CONTAINER_ID:/path/to/archive.tar.gz /호스트/시스템/폴더/

압축하지 않고 파일 전송

(안전을 위해) 먼저 압축하지 않고 파일을 전송하는 것은 권장되지 않지만 가능합니다. 일부 파일이 포함된 디렉토리를 단순히 전송하려는 경우 수행 방법은 다음과 같습니다.

먼저 컨테이너에 로그인하여 폴더의 경로를 결정합니다. 아래 명령을 사용하여 컨테이너에 로그인할 수 있습니다.

docker exec -it $id /bin/bash

전송할 폴더의 경로를 결정한 후 컨테이너를 종료합니다. 그런 다음 다음 docker cp 명령을 실행합니다.

docker cp CONTAINER_ID:/path/to/your/folder/ /host/system/folder/

Docker CP를 사용하여 호스트에서 Docker 컨테이너로 파일을 전송하는 방법

Docker 컨테이너를 통해 호스트로 파일을 전송하는 것 외에도 호스트에서 컨테이너로 파일을 다시 전송할 수 있습니다. 여기에서 도커 컨테이너로 전송하려는 파일의 위치를 ​​찾으십시오.

전송할 파일을 찾았으면 다음 명령을 사용하여 파일을 압축합니다. 폴더를 압축하면 더 쉽게 전송할 수 있습니다.

tar -czvf my-archive.tar.gz /path/to/your/folder/

폴더를 Tar.GZ 아카이브로 압축한 후 파일을 전송하려는 컨테이너의 ID를 가져와야 합니다. 먼저 su 또는 sudo -s 를 사용하여 루트에 로그인합니다 .

또는

sudo -s

루트 계정에 로그인한 후 docker ps 명령을 실행합니다. 이 명령은 실행 중인 모든 컨테이너에 대한 정보를 표시합니다. 그런 다음 이 정보를 가져오고 docker cp 명령을 사용하여 압축된 아카이브를 전송할 수 있습니다.

도커 ps

docker cp /path/to/my-archive.tar.gz CONTAINER_ID:/path/to/destination/

압축하지 않고 파일 전송

아무 것도 압축하지 않고 컨테이너로 옮기고 싶다면 다음과 같이 하십시오. 먼저 su 또는 sudo -s 를 사용하여 루트에 로그인합니다 . 루트로 로그인한 후 전송하려는 폴더 경로를 찾으십시오.

폴더 경로를 얻었으면 docker ps 명령을 사용하여 파일을 전송할 컨테이너의 컨테이너 ID를 가져옵니다. 그런 다음 다음 docker cp 명령을 사용하여 파일을 시스템에 복사합니다.

docker cp /path/to/my/file/folder/ CONTAINER_ID:/path/to/destination/

Rsync를 사용하여 호스트에서 Docker 컨테이너의 파일을 전송하는 방법

docker cp 명령을 사용하면 호스트와 파일을 주고받기에 충분합니다. 그러나 컨테이너에서 호스트로 파일을 Rsync하는 것도 가능합니다. 호스트 시스템에서 SSH 서버를 활성화하고 실행해야 합니다.

시작하려면 터미널을 통해 호스트 Linux 서버에 루트로 로그인하십시오. su 또는 sudo -s 를 사용하여 루트 계정에 로그인할 수 있습니다 . 루트 계정에 로그인한 후 docker ps 명령을 실행합니다.

또는

sudo -s

도커 ps

Docker 컨테이너 ID를 찾아 아래 명령을 사용하여 로그인합니다. 그런 다음 컨테이너의 패키지 관리자를 사용하여 Rsync 도구를 설치합니다. "$id"를 컨테이너 ID로 바꾸십시오.

docker exec -it $id /bin/bash

컨테이너의 패키지 관리자를 사용하여 Rsync를 설치한 후 아래의 Rsync 명령을 사용하여 컨테이너에서 호스트로 파일을 동기화합니다.

rsync -avz -e ssh /path/to/local/files/ user@remote:/path/to/remote/files/


Ubuntu 서버에 GitLab을 설치하는 방법

Ubuntu 서버에 GitLab을 설치하는 방법

Ubuntu 서버에서 작동하는 GitLab을 찾고 계십니까? GitLab은 GitHub와 같은 서비스에 대한 강력한 자체 호스팅 가능한 대안입니다. 그것으로 당신은 할 수 있습니다

SELinux로 Ubuntu Linux 서버 보호

SELinux로 Ubuntu Linux 서버 보호

SELinux를 설치하고 활성화하여 Ubuntu Linux 서버에 추가 보안을 추가하는 방법을 알아보십시오.

Cockpit을 ​​사용하여 Linux 서버에서 NFS 구성

Cockpit을 ​​사용하여 Linux 서버에서 NFS 구성

Linux 서버에 NFS 공유를 마운트하는 더 쉬운 방법이 필요하십니까? Cockpit 앱으로 NFS 공유를 마운트하는 방법을 알아보세요.

Ubuntu 22.04 LTS로 업그레이드하는 방법

Ubuntu 22.04 LTS로 업그레이드하는 방법

Ubuntu 22.04 장기 지원이 시작되었습니다! 데스크탑 또는 랩탑을 최신 Ubuntu 릴리스로 업그레이드하는 방법을 알아보세요.

Linux에서 최신 Nvidia GPU 드라이버를 설치하는 방법

Linux에서 최신 Nvidia GPU 드라이버를 설치하는 방법

Linux에 최신 Nvidia GPU 드라이버를 설치하는 방법

Docker 컨테이너로 파일을 전송하는 방법

Docker 컨테이너로 파일을 전송하는 방법

파일을 Docker 컨테이너로 전송해야 합니까? Docker cp 도구를 사용하면 컨테이너 간에 파일을 쉽게 이동할 수 있습니다.

Linux에 DEB 파일을 설치하는 방법

Linux에 DEB 파일을 설치하는 방법

.DEB 파일이란? 그것으로 무엇을 합니까? Linux PC에 DEB 파일을 설치할 수 있는 다양한 방법을 알아보세요.

Linux에서 GOG Galaxy를 작동시키는 방법

Linux에서 GOG Galaxy를 작동시키는 방법

GOG.com에서 게임을 소유하고 계신가요? 일부 비디오 게임을 즐기기 위해 Linux PC에 GOG Galaxy 클라이언트를 설정하고 싶으신가요? 우리가 보여주는 대로 이 가이드를 따르십시오.

CentOS에 Docker 엔진을 설치하는 방법

CentOS에 Docker 엔진을 설치하는 방법

Docker 엔진은 Linux 및 기타 플랫폼을 위한 개방형 컨테이너화 프로그램입니다. Docker 엔진은 다음과 유사하게 작동하는 독립형 컨테이너를 관리합니다.

Ferdi로 모든 채팅을 하나로 통합하는 방법

Ferdi로 모든 채팅을 하나로 통합하는 방법

Linux 시스템에 Slack, Discord 및 기타 여러 생산성 도구를 설치하는 데 지치셨습니까? 그것들이 하나로 결합될 수 있기를 바라는가?