실행 중인 Docker 컨테이너에 파일 복사

3047 단어 devopsdocker


실행 중인 도커 컨테이너와 로컬 파일 시스템 간에 파일을 복사하려는 경우가 있습니다. 예를 들어 로컬 웹 서버를 실행 중이고 HTML 파일을 업데이트하려는 경우에 유용할 수 있습니다.

명령docker cp은 로컬 파일 시스템에서 실행 중인 Docker 컨테이너로 또는 그 반대로 파일을 복사하는 기능을 제공합니다.

실행 중인 NGINX 컨테이너가 있다고 가정해 보겠습니다. 그렇지 않은 경우 docker run -d -p 8000:80 nginx 로 컨테이너를 실행할 수 있습니다.

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                  NAMES
3d1fb2f49f1a        nginx               "nginx -g 'daemon of…"   9 hours ago         Up 9 hours          0.0.0.0:8000->80/tcp   nifty_mirzakhani


이제 /usr/share/nginx/html를 사용하여 HTML 파일을 NGINX 루트 폴더(이 경우 docker cp)에 복사할 수 있습니다.

docker cp test.html 3d1fb2f49f1a:/usr/share/nginx/html
          ^         ^            ^
          |         |            |= destination path within the docker container
          |         |
          |         |= the id of the container in which you want to transfer the file
          |
          |= path to file you want to transfer



이제 브라우저에서 업로드된 파일에 액세스할 수 있습니다( http://localhost:8000/test.html ).



파일 다운로드



컨테이너에서 로컬 파일 시스템으로 파일을 복사하는 것도 가능합니다.



docker cp 3d1fb2f49f1a:/etc/nginx/conf.d/default.conf ~/
          ^            ^                              ^
          |            |                              |= destination path on your local machine
          |            |
          |            |= path to the file in your container
          |
          |= container id


경로 정보



컨테이너 경로는 컨테이너의 루트 디렉터리( / )에 상대적이므로 선행 슬래시를 생략할 수 있습니다.
두 경로 모두 유효합니다: /etc/nginx/conf.d/default.confetc/nginx/conf.d/default.conf .

로컬 시스템 경로의 경우 절대값과 상대값을 사용할 수 있습니다.


내 콘텐츠가 마음에 든다면 트위터에서 나를 팔로우하고 싶을지도?!

frank mckennaUnsplash님이 찍은 사진의 표지 이미지

좋은 웹페이지 즐겨찾기