Docker(16)- docker cp 命令詳解


如果你還想從頭學起 Docker,可以看看這個系列的文章哦!

https://www.cnblogs.com/poloyy/category/1870863.html

 

作用

在容器和主機之間復制文件/文件夾

 

語法格式

docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|-
docker cp [OPTIONS] SRC_PATH|- CONTAINER:DEST_PATH

 

重點

  • 容器 container 可以是正在運行或已停止的容器
  • SRC_PATH 或 DEST_PATH可以是文件或目錄 
  • 該命令會假定容器路徑相對於容器的 /(根)目錄
  • 而主機路徑則是相對於執行 docker cp 命令的當前目錄

 

options 說明

option 作用
-a 存檔模式(復制所有uid / gid信息)
-L  保持源目標中的鏈接

備注:暫時沒發現這兩個 options 有啥用

 

SRC_PATH 和 DEST_PATH 的講解

SRC_PATH 指定一個文件

若 DEST_PATH 不存在

創建 DEST_PATH 所需的文件夾,文件正常保存到 DEST_PATH 中

 

若 DEST_PATH 不存在,並以 / 結尾

錯誤:目標目錄必須存在

 

若 DEST_PATH 存在並且是一個文件

目標被源文件的內容覆蓋

 

若 DEST_PATH 存在並且是目錄

使用 SRC_PATH 中的基本名稱將文件復制到此目錄中

 

SRC_PATH指定目錄

若 DEST_PATH 不存在

將 DEST_PATH 創建為目錄,並將源目錄的內容復制到該目錄中

 

若 DEST_PATH存在並且是一個文件

錯誤:無法將目錄復制到文件

 

若 DEST_PATH存在並且是目錄

  • SRC_PATH 不以 /. 結尾,源目錄復制到此目錄
  • SRC_PATH 以 /. 結尾,源目錄的內容被復制到該目錄中

 

實際栗子

從容器復制文件到主機

已存在的目錄

docker cp tomcat7:usr/local/tomcat/README.md ./

 

不存在的目錄

docker cp tomcat7:usr/local/tomcat/README.md test/

 

已存在的文件

docker cp tomcat7:usr/local/tomcat/README.md test.txt

 

從主機復制文件到容器

docker cp test.txt tomcat7:/

 

從主機復制目錄到容器

目標目錄不存在

docker cp test tomcat7:test/

 

目標是一個文件

docker cp test tomcat7:polo

 

目標目錄已存在

docker cp test tomcat7:test/

 

從容器復制目錄到主機

docker cp tomcat7:/usr/local/tomcat/webapps.list /usr/local/ 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM