docker容器的文件拷貝方式小結(jié)
一、已運行的容器拷貝方式
使用 docker cp 命令將文件從物理機(jī)復(fù)制到運行中的 Docker 容器中,或者從 Docker 容器中復(fù)制文件到物理機(jī)上。
例如,要將物理機(jī)上的文件 test.txt 復(fù)制到名為 mycontainer 的容器 /app 目錄中,可以使用以下命令:
從主機(jī)拷貝文件到容器中:
docker cp test.txt mycontainer:/app/test.txt
其中,test.txt 是要復(fù)制的本地文件,mycontainer 是容器的名稱,/app/test.txt 是容器的文件路徑。
如果要將 Docker 容器中的文件復(fù)制到物理機(jī)上,可以使用以下命令:
從容器中拷貝文件到主機(jī)中:
docker cp mycontainer:/app/test.txt test.txt
這條命令實現(xiàn)了將容器 mycontainer 中的 /app/test.txt 文件復(fù)制到本地目錄下的 test.txt 文件中。
需要注意的是,docker cp 命令需要在 Docker 版本 1.8 或更高版本中才能使用。另外,在使用時需要確保對要復(fù)制的文件擁有足夠的讀寫權(quán)限。
二、構(gòu)建dockerfile時拷貝
Dockerfile 中可以直接使用 COPY 或 ADD 指令將本地文件復(fù)制到鏡像中,原理是 Docker 在構(gòu)建鏡像時,會先將本地文件復(fù)制到一個臨時目錄中,然后再將該目錄添加到鏡像的文件系統(tǒng)中。
當(dāng)使用 COPY 或 ADD 指令時,Docker 構(gòu)建引擎會根據(jù)指定的源路徑從構(gòu)建上下文中查找相應(yīng)的文件或目錄,并將其復(fù)制到鏡像中的目標(biāo)路徑中。如果源路徑是一個目錄,則目標(biāo)路徑必須以 / 結(jié)尾,否則會導(dǎo)致 COPY 或 ADD 操作失敗。
例如,在下面的 Dockerfile 中:
FROM nginx:latest COPY index.html /usr/share/nginx/html/ ADD static.tar.gz /usr/share/nginx/html/
這個 Dockerfile 指定了 nginx:latest 作為基礎(chǔ)鏡像,然后將本地目錄中的 index.html 文件復(fù)制到鏡像中的 /usr/share/nginx/html/ 目錄中。在構(gòu)建鏡像時,Docker 構(gòu)建引擎會先將 index.html 復(fù)制到一個臨時目錄中,然后再將該目錄添加到鏡像的文件系統(tǒng)中,以此來實現(xiàn)將文件從本地復(fù)制到鏡像中。
因此,直接在 Dockerfile 中使用 COPY 或 ADD 指令來將本地文件復(fù)制到容器中是可行的。而且,這樣做還可以自動化地將文件復(fù)制到鏡像中,使得在創(chuàng)建新容器時可以直接使用該鏡像,并且不需要再手動復(fù)制文件。
附:Docker容器與本地文件相互拷貝
Docker容器中的文件可以與本地進(jìn)行共享。
1、Docker容器中的文件拷貝至本地
#格式 #docker cp CONTAINER ID:容器目錄 本地目錄 #示例 docker ps -a #查看本地容器ID sudo docker cp 52ea915e6527:/aha /home/aha2復(fù)制
2、本地文件拷貝至容器
#格式 #docker cp 本地路徑 CONTAINER ID:容器目錄 #示例 docker cp license.dat 52ea915e6527:/home
注意:
1、此命令是在容器外使用(shell或cmd)。
2、兩個命令中容器 ID可以與容器name相互替換使用。
如下圖所示,CONTAINER ID和NAMES 都可以在命令中使用。

總結(jié)
到此這篇關(guān)于docker容器的文件拷貝方式的文章就介紹到這了,更多相關(guān)docker容器文件拷貝內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
docker容器下配置jupyter notebook的操作
這篇文章主要介紹了docker容器下配置jupyter notebook的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-03-03
在CentOS 7 上為docker配置端口轉(zhuǎn)發(fā)以兼容firewall的解決方法
這篇文章主要介紹了在CentOS 7 上為docker配置端口轉(zhuǎn)發(fā)以兼容firewall的解決方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-07-07
docker下遷移elasticsearch問題以及解決方案
文章描述了如何將Elasticsearch數(shù)據(jù)從一個服務(wù)器遷移到另一個服務(wù)器,包括數(shù)據(jù)掛載、版本一致性、啟動命令的匹配以及可能遇到的權(quán)限和節(jié)點故障問題的解決方法2024-11-11
docker daemon遠(yuǎn)程連接設(shè)置詳解
本篇文章主要介紹了docker daemon遠(yuǎn)程連接設(shè)置詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-04-04
Rabbitmq heartbea心跳檢測機(jī)制原理解析
這篇文章主要介紹了Rabbitmq heartbea心跳檢測機(jī)制原理解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-11-11

