찾다
운영 및 유지보수Docker도커 컨테이너에 파일을 복사하는 방법

클라우드 컴퓨팅의 급속한 발전으로 Docker는 많은 기업과 클라우드 서비스 제공업체의 표준 배포 플랫폼이 되었습니다. Docker 컨테이너를 사용할 때 호스트와 컨테이너 간에 파일을 전송해야 하는 경우가 종종 있으며 이러한 요구 사항으로 인해 파일 복사가 필요한 기술이 됩니다. 이 문서에서는 Docker 컨테이너에 파일을 복사하는 방법을 소개합니다.

1. docker cp 명령 사용

Docker는 호스트와 컨테이너 간에 파일을 복사할 수 있는 특수 명령 docker cp를 제공합니다. 구체적인 사용법은 다음과 같습니다.

docker cp <src_path> <container_id>:<dest_path>
docker cp <container_id>:<src_path> <dest_path></dest_path></src_path></container_id></dest_path></container_id></src_path>

그 중 <src_path></src_path><dest_path></dest_path>는 각각 소스 경로와 대상 경로를 나타내며, <container_id> ;</container_id>는 컨테이너 ID를 나타냅니다. <src_path></src_path><dest_path></dest_path>分别表示源和目标路径,<container_id></container_id>表示容器ID。

例如,要将宿主机中的文件/home/user/file.txt复制到容器中的/var/www/目录下,可以执行以下命令:

docker cp /home/user/file.txt <container_id>:/var/www/</container_id>

同样的,如果想要将容器中的文件/var/log/nginx/access.log复制到宿主机的/home/user/目录下,可以执行以下命令:

docker cp <container_id>:/var/log/nginx/access.log /home/user/</container_id>

需要注意的是,如果<dest_path></dest_path>/结尾,表示目标路径是一个目录,此时需要保证目标路径存在。如果<dest_path></dest_path>不以/结尾,表示目标路径是一个文件,此时需要保证目标路径的上层目录存在。

2. 使用共享文件夹

另一个向Docker容器下拷贝文件的方法是使用共享文件夹。这个方法的前提条件是在创建容器时需要把宿主机的目录映射到容器内部,这个映射可以通过-v--mount选项来完成:

docker run -v <host_dir>:<container_dir> <image_name></image_name></container_dir></host_dir>

或者

docker run --mount type=bind,source=<host_dir>,target=<container_dir> <image_name></image_name></container_dir></host_dir>

其中,<host_dir></host_dir>表示宿主机中的目录,<container_dir></container_dir>表示容器中的目录。 接下来,容器内部就可以像使用本地目录一样使用映射目录。

在这种情况下,对于需要传输的文件,只需要将它们放在映射目录下,就可以在容器中访问它们。同样地,容器中生成的文件也可以放在映射目录下,然后在宿主机上访问和处理。

3. 使用Docker Volume

使用Docker Volume也是向Docker容器下拷贝文件的另一种方法。与共享文件夹相似,使用Docker Volume时创建容器时需要把一个宿主机的目录挂载到容器内部。不同的是,这个挂载动作会在Docker守护进程中创建一个标准卷,并将这个卷与容器内的目录关联起来。这使得宿主机和容器之间可以高效地共享文件,而不依赖本地文件系统。

具体使用方法如下:

docker run -v <volume_name>:<container_dir> <image_name></image_name></container_dir></volume_name>

或者

docker run --mount type=volume,source=<volume_name>,target=<container_dir> <image_name></image_name></container_dir></volume_name>

其中,<volume_name></volume_name>表示Docker守护进程中标准卷的名称,<container_dir></container_dir>表示容器中的路径。与共享文件夹不同的是,Docker Volume需要显式地创建和删除。它可以通过以下命令来完成:

docker volume create <volume_name>
docker volume rm <volume_name></volume_name></volume_name>

最后,可以通过以下命令来在宿主机和容器之间复制文件:

docker cp <file_path> <container_id>:<container_dir>
docker cp <container_id>:<container_dir> <file_path></file_path></container_dir></container_id></container_dir></container_id></file_path>

在这里,<file_path></file_path>表示本地路径,<container_id></container_id>表示容器ID,<container_dir></container_dir>

예를 들어 호스트의 /home/user/file.txt 파일을 컨테이너의 /var/www/ 디렉터리에 복사하려면 다음을 실행하면 됩니다. 다음 명령 :

rrreee

마찬가지로 컨테이너의 /var/log/nginx/access.log 파일을 /home/user/ 디렉터리에 복사하려는 경우 호스트의 경우 다음 명령을 실행할 수 있습니다:

rrreee

<dest_path></dest_path>/로 끝나면 대상 경로가 디렉터리이며 대상 경로가 존재하는지 확인해야 합니다. <dest_path></dest_path>/로 끝나지 않으면 대상 경로가 파일이라는 의미입니다. 이 경우 대상의 상위 디렉터리를 확인해야 합니다. 경로가 존재합니다. 🎜🎜2. 공유 폴더 사용🎜🎜Docker 컨테이너에 파일을 복사하는 또 다른 방법은 공유 폴더를 사용하는 것입니다. 이 방법의 전제 조건은 컨테이너를 생성할 때 호스트 디렉터리가 컨테이너 내부에 매핑되어야 한다는 것입니다. 이 매핑은 -v 또는 --mount를 통해 완료할 수 있습니다. code> 옵션: 🎜 rrreee🎜or🎜rrreee🎜 여기서 <host_dir></host_dir>는 호스트의 디렉터리를 나타내고 <container_dir></container_dir>는 컨테이너의 디렉터리를 나타냅니다. 다음으로, 매핑된 디렉터리를 로컬 디렉터리처럼 컨테이너 내부에서 사용할 수 있습니다. 🎜🎜이 경우 전송해야 하는 파일의 경우 해당 파일을 매핑된 디렉터리에 배치하기만 하면 컨테이너에 있는 파일에 액세스할 수 있습니다. 마찬가지로 컨테이너에서 생성된 파일도 매핑된 디렉터리에 배치된 다음 호스트에서 액세스하고 처리할 수 있습니다. 🎜🎜3. Docker 볼륨 사용🎜🎜Docker 볼륨을 사용하는 것은 파일을 Docker 컨테이너에 복사하는 또 다른 방법입니다. 공유 폴더와 마찬가지로 Docker 볼륨을 사용하여 컨테이너를 생성하는 경우 호스트 디렉터리를 컨테이너에 탑재해야 합니다. 차이점은 이 탑재 작업이 Docker 데몬에 표준 볼륨을 생성하고 이 볼륨을 컨테이너 내의 디렉터리와 연결한다는 것입니다. 이를 통해 로컬 파일 시스템에 의존하지 않고 호스트와 컨테이너 간에 효율적인 파일 공유가 가능해집니다. 🎜🎜구체적인 사용법은 다음과 같습니다. 🎜rrreee🎜 또는 🎜rrreee🎜 여기서 <volume_name></volume_name>는 Docker 데몬 프로세스의 표준 볼륨 이름을 나타내고 <container_dir> </container_dir>는 의 컨테이너 경로를 나타냅니다. 공유 폴더와 달리 Docker 볼륨은 명시적으로 생성하고 삭제해야 합니다. 다음 명령을 사용하면 됩니다. 🎜rrreee🎜마지막으로 다음 명령을 사용하면 호스트와 컨테이너 간에 파일을 복사할 수 있습니다. 🎜rrreee🎜여기서 <file_path></file_path>는 로컬 경로를 나타내고, <container_id></container_id>는 컨테이너 ID를 나타내고, <container_dir></container_dir>는 컨테이너의 디렉터리를 나타냅니다. 🎜🎜결론🎜🎜Docker 컨테이너를 사용하는 과정에서 파일 복사는 종종 해야할 일입니다. 이 문서에서는 docker cp 명령, 공유 폴더 및 Docker 볼륨을 사용하여 Docker 컨테이너에 파일을 복사하는 세 가지 방법을 소개합니다. 이러한 방법에는 장점과 단점이 있습니다. 실제로는 특정 요구 사항에 따라 가장 적합한 방법을 선택해야 합니다. 🎜

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

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

Ubuntu, Centos 및 Debian에 Docker를 설치하고 사용하는 방법은 다릅니다. 1) Ubuntu : APT 패키지 관리자를 사용하여 명령은 sudoapt-getupdate && sudoapt-getinstalldocker.io입니다. 2) Centos : Yum 패키지 관리자를 사용하면 Docker 저장소를 추가해야합니다. 이 명령은 SudoyuminStall-Yyum-utils && sudoyum-config-manager--add-repohttps : //download.docker.com/lin입니다

Docker 마스터 링 : Linux 사용자를위한 안내서Docker 마스터 링 : Linux 사용자를위한 안내서Apr 18, 2025 am 12:08 AM

Linux에서 Docker를 사용하면 개발 효율성을 향상시키고 응용 프로그램 배포를 단순화 할 수 있습니다. 1) Ubuntu 이미지를 당기기 : Dockerpullubuntu. 2) 우분투 컨테이너 실행 : Dockerrun-itubuntu/bin/bash. 3) nginx를 포함하는 dockerfile : fromubuntu; runapt-getupdate && apt-getinstall-ynginx; Expose80을 만듭니다. 4) 이미지를 빌드 : DockerBuild-tmy-nginx. 5) 컨테이너 실행 : Dockerrun-D-P8080 : 80

Linux의 Docker : 응용 프로그램 및 사용 사례Linux의 Docker : 응용 프로그램 및 사용 사례Apr 17, 2025 am 12:10 AM

Docker는 Linux의 응용 프로그램 배포 및 관리를 단순화합니다. 1) Docker는 응용 프로그램과 그 종속성을 경량 및 휴대용 컨테이너로 포장하는 컨테이너화 된 플랫폼입니다. 2) Linux에서 Docker는 CGroup 및 네임 스페이스를 사용하여 컨테이너 격리 및 리소스 관리를 구현합니다. 3) 기본 사용에는 이미지를 당기고 컨테이너를 실행하는 것이 포함됩니다. DockerCompose와 같은 고급 사용법은 다중 컨테이너 응용 프로그램을 정의 할 수 있습니다. 4) 일반적으로 사용되는 DockerLogs 및 DockerExec 명령 디버그. 5) 성능 최적화는 다단계 구성을 통해 이미지 크기를 줄일 수 있으며 Dockerfile을 단순하게 유지하는 것이 가장 좋은 방법입니다.

Docker : 이식성 및 확장 성을위한 컨테이너화 응용 프로그램Docker : 이식성 및 확장 성을위한 컨테이너화 응용 프로그램Apr 16, 2025 am 12:09 AM

Docker는 응용 프로그램을 패키지, 배포 및 실행하는 데 사용되는 Linux 컨테이너 기술 기반 도구입니다. 1) DockerBuild 및 Dockerrun 명령을 사용하여 Docker 컨테이너를 구축하고 실행할 수 있습니다. 2) DockerCompose는 마이크로 서비스 관리를 단순화하기 위해 멀티 컨테이너 Docker 응용 프로그램을 정의하고 실행하는 데 사용됩니다. 3) 다단계 구성을 사용하면 이미지 크기를 최적화하고 응용 프로그램 시작 속도를 향상시킬 수 있습니다. 4) 컨테이너 로그보기는 컨테이너 문제를 디버깅하는 효과적인 방법입니다.

Docker가 컨테이너를 시작하는 방법Docker가 컨테이너를 시작하는 방법Apr 15, 2025 pm 12:27 PM

Docker Container Startup 단계 : 컨테이너 이미지를 당기기 : "Docker Pull [Mirror Name]"을 실행하십시오. 컨테이너 생성 : "docker"[옵션] [미러 이름] [명령 및 매개 변수]를 사용하십시오. 컨테이너를 시작하십시오 : "Docker start [컨테이너 이름 또는 ID]"를 실행하십시오. 컨테이너 상태 확인 : 컨테이너가 "Docker PS"로 실행 중인지 확인하십시오.

Docker에서 로그를 보는 방법Docker에서 로그를 보는 방법Apr 15, 2025 pm 12:24 PM

Docker Logs를 보는 방법에는 다음이 포함됩니다. Docker Logs 명령 사용 : Docker Logs Container_name Docker Exec 명령을 사용하여 RUN /BIN /SH를 사용하여 로그 파일을 봅니다. cat /var/log/container_name.log docker-compose logs docker compose의 명령 : docker-compose -f docker-com 사용

Docker 컨테이너의 이름을 확인하는 방법Docker 컨테이너의 이름을 확인하는 방법Apr 15, 2025 pm 12:21 PM

단계를 따르면 Docker 컨테이너 이름을 쿼리 할 수 ​​있습니다. 모든 컨테이너 (Docker PS)를 나열하십시오. 컨테이너 목록을 필터링합니다 (GREP 명령 사용). 컨테이너 이름 ( "이름"열에 위치)을 가져옵니다.

Docker 용 컨테이너를 만드는 방법Docker 용 컨테이너를 만드는 방법Apr 15, 2025 pm 12:18 PM

Docker에서 컨테이너 만들기 : 1. 이미지를 당기기 : Docker Pull [Mirror Name] 2. 컨테이너 만들기 : Docker Run [옵션] [미러 이름] [명령] 3. 컨테이너 시작 : Docker Start [컨테이너 이름]

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SecList

SecList

SecLists는 최고의 보안 테스터의 동반자입니다. 보안 평가 시 자주 사용되는 다양한 유형의 목록을 한 곳에 모아 놓은 것입니다. SecLists는 보안 테스터에게 필요할 수 있는 모든 목록을 편리하게 제공하여 보안 테스트를 더욱 효율적이고 생산적으로 만드는 데 도움이 됩니다. 목록 유형에는 사용자 이름, 비밀번호, URL, 퍼징 페이로드, 민감한 데이터 패턴, 웹 셸 등이 포함됩니다. 테스터는 이 저장소를 새로운 테스트 시스템으로 간단히 가져올 수 있으며 필요한 모든 유형의 목록에 액세스할 수 있습니다.

PhpStorm 맥 버전

PhpStorm 맥 버전

최신(2018.2.1) 전문 PHP 통합 개발 도구

Atom Editor Mac 버전 다운로드

Atom Editor Mac 버전 다운로드

가장 인기 있는 오픈 소스 편집기

ZendStudio 13.5.1 맥

ZendStudio 13.5.1 맥

강력한 PHP 통합 개발 환경