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/

댓글 남기기

Pardus Linux에서 Intel 그래픽 카드의 화면 찢김 현상 해결하기: 결과 중심 가이드

Pardus Linux에서 Intel 그래픽 카드의 화면 찢김 현상 해결하기: 결과 중심 가이드

Pardus Linux에서 Intel 그래픽 카드 화면 찢김 현상을 해결하려면 X11과 Wayland의 차이점, 컴포지터 설정, 새로 고침 빈도, 활성화된 Xorg 드라이버, 그리고 필요한 경우에만 TearFree를 확인하세요.

firewall-cmd를 사용하여 SLES 15 방화벽을 구성하는 방법

firewall-cmd를 사용하여 SLES 15 방화벽을 구성하는 방법

SLES 15에서 firewalld를 구성합니다. 영역을 확인하고, 서비스 또는 포트를 허용하고, 영구 규칙을 저장하고, 안전하게 재부팅하고, 액세스를 확인합니다.

SLES 라이브 패칭 구성 가이드: 재부팅 없이 커널 업데이트 적용하기

SLES 라이브 패칭 구성 가이드: 재부팅 없이 커널 업데이트 적용하기

SLES 15 SP7에서 커널 라이브 패치를 활성화하고, 재부팅 없이 지원되는 수정 사항을 적용하고, 활성 패치를 확인하고, 커널 재시작이 여전히 필요한 경우를 파악합니다.

SUSE Linux Enterprise Server 15에서 FIPS 모드를 활성화하는 방법

SUSE Linux Enterprise Server 15에서 FIPS 모드를 활성화하는 방법

SUSE에서 지원하는 설정 유틸리티를 사용하여 SLES 15에서 FIPS 모드를 활성화하고, 안전하게 재부팅한 다음, 커널 및 암호화 정책 상태를 확인하고 인증 제한 사항을 점검하십시오.

보안 정책을 위반하지 않고 Gooroom OS에 Google Chrome을 설치하는 방법

보안 정책을 위반하지 않고 Gooroom OS에 Google Chrome을 설치하는 방법

공식 .deb 패키지, APT, 정책 검사, 업데이트 안내 및 관리 기기용 수정 사항을 통해 Gooroom OS에 Google Chrome을 안전하게 설치하세요.

How to Export SLES System Logs to a Remote Syslog Server Securely

How to Export SLES System Logs to a Remote Syslog Server Securely

Securely forward SLES system logs to a remote syslog server with rsyslog, TLS certificates, peer-name verification, queues, validation, and testing.

SLES 15와 SSSD의 Active Directory 통합: 단계별 가이드

SLES 15와 SSSD의 Active Directory 통합: 단계별 가이드

YaST를 사용하여 SSSD를 통해 SLES 15를 Active Directory에 연결합니다. DNS 및 시간 설정을 준비하고, 도메인 로그인을 구성하고, Kerberos를 확인하고, SSSD, Winbind 및 realmd를 비교합니다.

Pardus Linux에서 Realtek RTL8821CE Wi-Fi 드라이버 문제 해결하기

Pardus Linux에서 Realtek RTL8821CE Wi-Fi 드라이버 문제 해결하기

Pardus Linux에서 RTL8821CE Wi-Fi 문제를 해결하려면 내장 rtw88 드라이버, Realtek 펌웨어, rfkill, NetworkManager 및 안전 대체 옵션을 확인하십시오.

Fix "Temporary Failure Resolving DNS" in Debian 12 with systemd-resolved

Fix "Temporary Failure Resolving DNS" in Debian 12 with systemd-resolved

Diagnose and fix Debian 12 DNS resolution failures with systemd-resolved, including resolv.conf, NetworkManager, networkd, cache, and verification.

Pardus Linux와 Windows 11을 안전하게 듀얼 부팅하는 방법

Pardus Linux와 Windows 11을 안전하게 듀얼 부팅하는 방법

Pardus 25.2를 Windows 11과 함께 설치하려면 Windows 볼륨을 백업하고 축소한 다음 UEFI USB로 부팅하고 기존 EFI 및 복구 파티션을 보호하십시오.