>  기사  >  운영 및 유지보수  >  Docker 컨테이너에 항목을 복사하는 방법

Docker 컨테이너에 항목을 복사하는 방법

PHPz
PHPz원래의
2023-04-17 16:40:2811152검색

최근에는 Docker 컨테이너의 사용이 점점 더 널리 보급되었습니다. 컨테이너 형태로 애플리케이션을 패키징하여 다양한 환경으로의 이식을 용이하게 할 수 있습니다. 그러나 일부 시나리오에서는 Docker 컨테이너에 데이터나 코드를 복사해야 할 수도 있습니다. 이 문서에서는 Docker 컨테이너에 있는 항목을 복사하는 방법을 소개합니다.

Docker 컨테이너의 데이터 및 코드

일부 시나리오에서는 백업, 마이그레이션, 디버깅 및 기타 요구 사항을 용이하게 하기 위해 컨테이너의 데이터 또는 코드를 복사해야 합니다. Docker에서는 데이터와 코드가 주로 컨테이너의 파일 시스템에 저장됩니다. 서로 다른 컨테이너는 서로 격리되어 있으므로 직접 복사할 수 없습니다. 데이터와 코드는 일부 명령을 통해 호스트에 복사해야 합니다. 아래에는 두 가지 일반적인 방법이 소개되어 있습니다.

1. docker cp 명령을 사용하여 데이터 복사

docker cp 명령은 로컬 파일을 컨테이너에 복사할 수 있습니다. 또한 로컬 파일을 컨테이너에 복사합니다. 이 명령을 사용하는 방법은 다음과 같습니다.

docker cp <容器ID或名称>:<容器内路径> <宿主机路径>

그 중 <컨테이너 ID 또는 이름>은 ID를 나타냅니다. 복사해야 하는 컨테이너의 이름, <컨테이너의 경로>는 복사해야 하는 컨테이너의 파일 경로를 나타내며, <호스트의 경로> code>는 파일을 복사해야 하는 호스트의 경로를 나타냅니다. <code><容器ID或名称>表示需要拷贝的容器的ID或名称,<容器内路径>表示需要拷贝的容器内的文件路径,<宿主机路径>表示需要将文件拷贝到的宿主机路径。

例如,将容器nginx中的/etc/nginx/nginx.conf文件拷贝到宿主机的/opt目录下:

docker cp nginx:/etc/nginx/nginx.conf /opt

2. 利用docker commit命令创建镜像

利用docker commit命令可以将容器中的文件系统打包成一个新的镜像,具体使用方法如下:

docker commit -m "commit message" <容器ID或者名称> <新的镜像名称>

其中,-m选项表示本次commit操作的说明。<容器ID或者名称>表示需要打包成镜像的容器的ID或者名称,<新的镜像名称>表示生成的新的镜像名称。

例如,将容器nginx

예를 들어 nginx 컨테이너의 /etc/nginx/nginx.conf 파일을 호스트 시스템의 /opt 디렉터리에 복사합니다. :

docker commit -m "backup nginx config" nginx nginx-config-backup

2. docker commit 명령을 사용하여 이미지를 생성합니다.

docker commit 명령을 사용하여 컨테이너의 파일 시스템을 새 이미지로 패키징합니다.
    rrreee
  1. 그 중 -m 옵션 이 커밋 작업에 대한 설명을 나타냅니다. 은 이미지로 패키징해야 하는 컨테이너의 ID 또는 이름을 나타냅니다. 은 새 이미지의 이름을 나타냅니다. 이미지가 생성되었습니다.
  2. 예를 들어 nginx 컨테이너의 파일 시스템을 새 이미지로 패키징합니다.
  3. rrreee
Summary

Docker 컨테이너의 데이터와 코드를 복사하는 것은 일상 작업에서 일반적으로 필요합니다. 두 가지 측면에서 구현 방법을 소개합니다. 🎜🎜🎜쉬운 백업 및 디버깅을 위해 docker cp 명령을 사용하여 컨테이너의 파일을 로컬 시스템에 복사합니다. 🎜🎜 마이그레이션 및 백업을 용이하게 하기 위해 docker commit 명령을 사용하여 컨테이너의 파일 시스템을 새 이미지로 패키징합니다. 🎜🎜🎜위 두 가지 방법 모두 컨테이너에 데이터와 코드를 복사해야 하는 필요성을 인식할 수 있으며 실제 상황에 따라 적절한 방법을 선택할 수 있습니다. 🎜

위 내용은 Docker 컨테이너에 항목을 복사하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.