簡(jiǎn)介
Docker是一種流行的容器化平臺(tái),它允許開(kāi)發(fā)人員在獨(dú)立、可移植的環(huán)境中構(gòu)建、打包和部署應(yīng)用程序。在使用Docker時(shí),常常需要在Docker容器和主機(jī)之間進(jìn)行文件的復(fù)制和共享。Docker提供了一個(gè)名為docker cp
的命令,可以輕松地在容器和主機(jī)之間復(fù)制文件和目錄。本文將詳細(xì)介紹docker cp
命令的使用方法和常見(jiàn)示例。
docker cp命令
docker cp
命令是Docker提供的一個(gè)用于在主機(jī)和容器之間復(fù)制文件和目錄的命令。它的語(yǔ)法如下:
docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH
docker cp [OPTIONS] SRC_PATH|- CONTAINER:DEST_PATH
-
CONTAINER
,可以是正在運(yùn)行或已停止的容器,名稱(chēng)或ID均可 -
SRC_PATH
,源文件或目錄在容器內(nèi)的路徑 -
DEST_PATH
,目標(biāo)路徑在主機(jī)上的位置
注:docker cp
命令會(huì)假定容器路徑相對(duì)于容器的 /(根)目錄,主機(jī)路徑則是相對(duì)于執(zhí)行 docker cp 命令的當(dāng)前目錄
options可用參數(shù)
-
-a
:將復(fù)制的文件或目錄保留其原始屬性,包括所有者、權(quán)限等。 -
-L
:如果SRC_PATH是一個(gè)符號(hào)鏈接,則復(fù)制鏈接指向的文件或目錄。 -
-p
:保留源文件或目錄的時(shí)間戳。 -
-R
或-r
:遞歸復(fù)制整個(gè)目錄。
SRC_PATH & DEST_PATH
SRC_PATH
和DEST_PATH
是docker cp
命令關(guān)鍵的部分,路徑是否正確關(guān)系到命令能否運(yùn)行成功,下面我們來(lái)分析這兩個(gè)路徑的各種情況,并說(shuō)明各種情況下是否能成功復(fù)制。
SRC_PATH 指定一個(gè)文件時(shí)
- 當(dāng)
DEST_PATH
不存在
創(chuàng)建 DEST_PATH
所需的文件夾,文件正常保存到 DEST_PATH
中
- 當(dāng)
DEST_PATH
不存在,并以 / 結(jié)尾
命令將報(bào)錯(cuò),目標(biāo)目錄必須存在
- 當(dāng)
DEST_PATH
存在并且是一個(gè)文件
目標(biāo)被源文件的內(nèi)容覆蓋
- 當(dāng)
DEST_PATH
存在并且是目錄
使用 SRC_PATH
中的基本名稱(chēng)將文件復(fù)制到此目錄中
SRC_PATH指定目錄
- 當(dāng)
DEST_PATH
存在并且是目錄時(shí),復(fù)制將正常復(fù)制
- SRC_PATH 不以 /. 結(jié)尾,源目錄復(fù)制到此目錄
- SRC_PATH 以 /. 結(jié)尾,源目錄的內(nèi)容被復(fù)制到該目錄中
-
當(dāng)
DEST_PATH
存在并且是一個(gè)文件時(shí),復(fù)制將報(bào)錯(cuò),因?yàn)闊o(wú)法將目錄復(fù)制到文件中 -
當(dāng)
DEST_PATH
不存在時(shí),將新創(chuàng)建DEST_PATH
為路徑的目錄,并將源目錄的內(nèi)容復(fù)制到該目錄中
使用示例
從容器復(fù)制文件到主機(jī)
- 主機(jī)目錄已存在
我們要將tomcat_muller
的usr/local/tomcat/README.md
文件復(fù)制到主機(jī)的study
目錄下,命令如下:
docker cp tomcat_muller:usr/local/tomcat/README.md ./
運(yùn)行命令,結(jié)果如下圖,成功復(fù)制到指定目錄下:
- 主機(jī)目錄不存在,不以
/
結(jié)尾
我們要將tomcat_muller
的usr/local/tomcat/README.md
文件復(fù)制到主機(jī)的study/test
目錄下,命令如下:
docker cp tomcat_muller:usr/local/tomcat/README.md ./test
運(yùn)行命令,結(jié)果如下圖,我們成功在study
目錄下創(chuàng)建了test
目錄,并且文件成功復(fù)制到了指定目錄下
- 主機(jī)目錄不存在,并且以
/
結(jié)尾
我們要將tomcat_muller
的usr/local/tomcat/README.md
文件復(fù)制到主機(jī)的study/test/
路徑下,命令如下:
docker cp tomcat_muller:usr/local/tomcat/README.md ./test/
運(yùn)行命令,結(jié)果如下圖,因?yàn)槁窂讲淮嬖冢詴?huì)報(bào)錯(cuò),沒(méi)有這個(gè)目錄
- 復(fù)制到已經(jīng)存在的文件中
docker cp tomcat_muller:usr/local/tomcat/README.md test.txt
運(yùn)行命令,結(jié)果如下:
復(fù)制目錄的操作與復(fù)制文件的類(lèi)似,這里不做贅述。
從主機(jī)復(fù)制文件到容器
我們要將主機(jī)study
下的test.txt
文件復(fù)制到容器中,命令如下:
docker cp test.txt tomcat_muller:/
運(yùn)行命令,結(jié)果如下圖:
從主機(jī)復(fù)制目錄到容器
- 目標(biāo)目錄不存在
我們要將主機(jī)的study/hogwarts
目錄復(fù)制到容器的test
目錄中,命令如下:
docker cp hogwarts tomcat_muller:test/
運(yùn)行命令,結(jié)果如下圖:
- 目標(biāo)目錄為一個(gè)文件
我們要將主機(jī)的study/hogwarts
目錄復(fù)制到容器的muller
中,命令如下:
docker cp hogwarts tomcat_muller:muller/
- 目錄已存在
我們要將主機(jī)的study/hogwarts
目錄復(fù)制到容器的/hogwarts
中,命令如下:
docker cp hogwarts tomcat_muller:/hogwarts/
運(yùn)行命令結(jié)果如下:
從容器復(fù)制目錄到主機(jī)
我們將tomcat_muller
容器中的webapps.dist
目錄復(fù)制到主機(jī)的usr/local/study
中,命令如下:
docker cp tomcat_muller:/usr/local/tomcat/webapps.dist /home/muller/study
運(yùn)行命令,結(jié)果如下圖:
總結(jié)
docker cp
命令是在Docker容器和主機(jī)之間復(fù)制文件和目錄的便捷工具。通過(guò)簡(jiǎn)單的命令和參數(shù),我們可以輕松地在容器和主機(jī)之間傳輸文件。本文介紹了docker cp
命令的語(yǔ)法和常見(jiàn)選項(xiàng),并提供了幾個(gè)示例以幫助大家更好地理解其用法。通過(guò)靈活使用docker cp
命令,我們可以輕松地在Docker環(huán)境中進(jìn)行文件操作和共享。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-664425.html
獲取更多技術(shù)資料,請(qǐng)點(diǎn)擊!文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-664425.html
到了這里,關(guān)于軟件測(cè)試|Docker cp命令詳解:在Docker容器和主機(jī)之間復(fù)制文件/文件夾的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!