如果你還想從頭學起 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/