docker容器的文件拷貝方式小結(jié)
一、已運行的容器拷貝方式
使用 docker cp
命令將文件從物理機復制到運行中的 Docker 容器中,或者從 Docker 容器中復制文件到物理機上。
例如,要將物理機上的文件 test.txt
復制到名為 mycontainer
的容器 /app
目錄中,可以使用以下命令:
從主機拷貝文件到容器中:
docker cp test.txt mycontainer:/app/test.txt
其中,test.txt
是要復制的本地文件,mycontainer
是容器的名稱,/app/test.txt
是容器的文件路徑。
如果要將 Docker 容器中的文件復制到物理機上,可以使用以下命令:
從容器中拷貝文件到主機中:
docker cp mycontainer:/app/test.txt test.txt
這條命令實現(xiàn)了將容器 mycontainer
中的 /app/test.txt
文件復制到本地目錄下的 test.txt
文件中。
需要注意的是,docker cp
命令需要在 Docker 版本 1.8 或更高版本中才能使用。另外,在使用時需要確保對要復制的文件擁有足夠的讀寫權(quán)限。
二、構(gòu)建dockerfile時拷貝
Dockerfile 中可以直接使用 COPY
或 ADD
指令將本地文件復制到鏡像中,原理是 Docker 在構(gòu)建鏡像時,會先將本地文件復制到一個臨時目錄中,然后再將該目錄添加到鏡像的文件系統(tǒng)中。
當使用 COPY
或 ADD
指令時,Docker 構(gòu)建引擎會根據(jù)指定的源路徑從構(gòu)建上下文中查找相應(yīng)的文件或目錄,并將其復制到鏡像中的目標路徑中。如果源路徑是一個目錄,則目標路徑必須以 /
結(jié)尾,否則會導致 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
文件復制到鏡像中的 /usr/share/nginx/html/
目錄中。在構(gòu)建鏡像時,Docker 構(gòu)建引擎會先將 index.html
復制到一個臨時目錄中,然后再將該目錄添加到鏡像的文件系統(tǒng)中,以此來實現(xiàn)將文件從本地復制到鏡像中。
因此,直接在 Dockerfile 中使用 COPY
或 ADD
指令來將本地文件復制到容器中是可行的。而且,這樣做還可以自動化地將文件復制到鏡像中,使得在創(chuàng)建新容器時可以直接使用該鏡像,并且不需要再手動復制文件。
附:Docker容器與本地文件相互拷貝
Docker容器中的文件可以與本地進行共享。
1、Docker容器中的文件拷貝至本地
#格式 #docker cp CONTAINER ID:容器目錄 本地目錄 #示例 docker ps -a #查看本地容器ID sudo docker cp 52ea915e6527:/aha /home/aha2復制
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的解決方法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-07-07docker下遷移elasticsearch問題以及解決方案
文章描述了如何將Elasticsearch數(shù)據(jù)從一個服務(wù)器遷移到另一個服務(wù)器,包括數(shù)據(jù)掛載、版本一致性、啟動命令的匹配以及可能遇到的權(quán)限和節(jié)點故障問題的解決方法2024-11-11