最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

從Docker容器復(fù)制文件到主機(jī)的四種方法

 更新時(shí)間:2025年06月16日 10:37:14   作者:1010n111  
在使用Docker進(jìn)行開(kāi)發(fā)和部署時(shí),有時(shí)需要將容器內(nèi)生成的構(gòu)建工件復(fù)制到主機(jī)上,例如,在持續(xù)集成服務(wù)器上使用Docker構(gòu)建依賴項(xiàng),而不希望在代理服務(wù)器上安裝所有運(yùn)行時(shí)和庫(kù),所以本文給大家介紹了從Docker容器復(fù)制文件到主機(jī)的四種方法

技術(shù)背景

在使用Docker進(jìn)行開(kāi)發(fā)和部署時(shí),有時(shí)需要將容器內(nèi)生成的構(gòu)建工件復(fù)制到主機(jī)上。例如,在持續(xù)集成(CI)服務(wù)器上使用Docker構(gòu)建依賴項(xiàng),而不希望在代理服務(wù)器上安裝所有運(yùn)行時(shí)和庫(kù),這就需要將容器內(nèi)構(gòu)建的工件復(fù)制回主機(jī)。

實(shí)現(xiàn)步驟

方法一:使用docker cp命令

這是最直接的方法,可在容器運(yùn)行或停止時(shí)使用。

  • 獲取容器ID或名稱:使用docker ps -a命令查看所有容器,獲取目標(biāo)容器的ID或名稱。
  • 復(fù)制文件:使用docker cp <containerId>:/file/path/within/container /host/path/target命令復(fù)制文件。
# 示例:復(fù)制容器內(nèi)的out_read.jpg文件到當(dāng)前目錄
sudo docker cp goofy_roentgen:/out_read.jpg .

方法二:使用docker create

此方法無(wú)需啟動(dòng)容器。

  • 創(chuàng)建容器:使用docker create --name dummy IMAGE_NAME命令創(chuàng)建一個(gè)容器。
  • 復(fù)制文件:使用docker cp dummy:/path/to/file /dest/to/file命令復(fù)制文件。
  • 刪除容器:使用docker rm -f dummy命令刪除容器。
docker create --name dummy ubuntu
docker cp dummy:/etc/hosts ./hosts
docker rm -f dummy

方法三:掛載卷

通過(guò)掛載卷的方式,將容器內(nèi)的文件復(fù)制到主機(jī)上。

  • 創(chuàng)建目錄:在主機(jī)上創(chuàng)建一個(gè)目錄用于存儲(chǔ)工件。
  • 運(yùn)行容器并掛載卷:使用docker run -i -v ${PWD}/artifacts:/artifacts ubuntu:14.04 sh << COMMANDS命令運(yùn)行容器并掛載卷。
  • 在容器內(nèi)復(fù)制文件:在容器內(nèi)將工件復(fù)制到掛載的卷中。
mkdir artifacts
docker run -i -v ${PWD}/artifacts:/artifacts ubuntu:14.04 sh << COMMANDS
# 構(gòu)建軟件
cp <artifact> /artifacts
COMMANDS

方法四:使用BuildKit的--output選項(xiàng)(Docker 19.03及以上版本)

此方法可跳過(guò)創(chuàng)建容器和構(gòu)建鏡像的步驟。

  • 構(gòu)建:使用DOCKER_BUILDKIT=1 docker build --target artifact --output type=local,dest=. .命令構(gòu)建并將結(jié)果輸出到本地目錄。
DOCKER_BUILDKIT=1 docker build --target artifact --output type=local,dest=. .

核心代碼

使用docker cp

docker cp <containerId>:/file/path/within/container /host/path/target

使用docker create

docker create --name dummy IMAGE_NAME
docker cp dummy:/path/to/file /dest/to/file
docker rm -f dummy

掛載卷

mkdir artifacts
docker run -i -v ${PWD}/artifacts:/artifacts ubuntu:14.04 sh << COMMANDS
# 構(gòu)建軟件
cp <artifact> /artifacts
COMMANDS

使用BuildKit的--output選項(xiàng)

DOCKER_BUILDKIT=1 docker build --target artifact --output type=local,dest=. .

最佳實(shí)踐

  • 權(quán)限問(wèn)題:在使用掛載卷的方法時(shí),可能會(huì)遇到文件權(quán)限問(wèn)題??梢允褂?code>chown命令調(diào)整文件的所有者和組。
docker run -i -v ${PWD}:/working_dir -w /working_dir -u $(id -u) \
    ubuntu:14.04 sh << COMMANDS
chown -R $(id -u):$(id -g) /working_dir/artifacts
COMMANDS
  • 使用容器名稱:使用容器名稱而不是ID,可提高命令的可讀性和可維護(hù)性。

常見(jiàn)問(wèn)題

  • 容器未運(yùn)行時(shí)docker cp是否可用:可以,容器不運(yùn)行時(shí)也可以使用docker cp命令。
  • 復(fù)制目錄時(shí)出錯(cuò):如果復(fù)制目錄時(shí)出現(xiàn)權(quán)限問(wèn)題,可以先將目錄復(fù)制到/tmp/,再?gòu)?code>/tmp/移動(dòng)到目標(biāo)位置。
docker cp 5f2371a7da7c:/home/euler/mfem/miniapps/navier/3dfoc /tmp/
mv /tmp/3dfoc ~/Downloads/

到此這篇關(guān)于從Docker容器復(fù)制文件到主機(jī)的四種方法的文章就介紹到這了,更多相關(guān)Docker復(fù)制文件到主機(jī)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Docker清理命令之如何刪除所有的鏡像和容器

    Docker清理命令之如何刪除所有的鏡像和容器

    這篇文章主要介紹了Docker清理命令之如何刪除所有的鏡像和容器問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • Docker安裝MySQL并使用Navicat連接的使用示例

    Docker安裝MySQL并使用Navicat連接的使用示例

    在Docker里運(yùn)行MySQL的方式還是很方便的,本文主要介紹了Docker安裝MySQL并使用Navicat連接的使用示例,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-10-10
  • 解決docker run hello-world遇到錯(cuò)誤消息-error during conne

    解決docker run hello-world遇到錯(cuò)誤消息-error during&n

    這篇文章主要介紹了解決docker run hello-world遇到錯(cuò)誤消息-error during conne問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • idea整合docker快速部署springboot應(yīng)用的詳細(xì)過(guò)程

    idea整合docker快速部署springboot應(yīng)用的詳細(xì)過(guò)程

    這篇文章主要介紹了idea整合docker快速部署springboot應(yīng)用,文中給大家提到關(guān)于安裝docker步驟,idea連接遠(yuǎn)程docker的方法,需要的朋友可以參考下
    2021-10-10
  • Docker 搭建集群MongoDB的實(shí)現(xiàn)步驟

    Docker 搭建集群MongoDB的實(shí)現(xiàn)步驟

    這篇文章主要介紹了Docker 搭建集群MongoDB的實(shí)現(xiàn)步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • Docker容器端口映射后突然無(wú)法連接的排查過(guò)程

    Docker容器端口映射后突然無(wú)法連接的排查過(guò)程

    這篇文章主要給大家介紹了關(guān)于Docker容器端口映射后突然無(wú)法連接的排查過(guò)程,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • docker安裝的mysql修改配置文件方式

    docker安裝的mysql修改配置文件方式

    本文描述了在修改MySQL容器配置文件后遇到的異常問(wèn)題,并給出了解決方法,原來(lái)是因?yàn)閕ptables規(guī)則沖突導(dǎo)致,重啟docker后問(wèn)題解決
    2026-04-04
  • Ubuntu系統(tǒng)下docker?Pull鏡像錯(cuò)誤timeout解決辦法

    Ubuntu系統(tǒng)下docker?Pull鏡像錯(cuò)誤timeout解決辦法

    最近在用docker搭個(gè)開(kāi)發(fā)環(huán)境,發(fā)現(xiàn)在拉取鏡像的時(shí)候有點(diǎn)問(wèn)題,這篇文章主要給大家介紹了關(guān)于Ubuntu系統(tǒng)下docker?Pull鏡像錯(cuò)誤timeout的解決辦法,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-07-07
  • 容器化技術(shù)架構(gòu)jenkins?docker?k8s腳本淺析

    容器化技術(shù)架構(gòu)jenkins?docker?k8s腳本淺析

    本篇博文不是詳細(xì)介紹容器技術(shù)的,而是具體的實(shí)踐。此篇博文分為兩個(gè)階段,分別是ci,cd。包含三部分內(nèi)容,分別是jenkins,docker,k8s的腳本淺析
    2022-03-03
  • Docker搭建PHP運(yùn)行環(huán)境完整步驟(圖文教程)

    Docker搭建PHP運(yùn)行環(huán)境完整步驟(圖文教程)

    PHP是一種廣泛使用的編程語(yǔ)言,被用于Web開(kāi)發(fā)和服務(wù)器管理等各種用途,而Docker則是一種非常流行的容器化平臺(tái),可以方便地管理應(yīng)用程序和環(huán)境,這篇文章主要給大家介紹了關(guān)于Docker搭建PHP運(yùn)行環(huán)境的完整步驟,需要的朋友可以參考下
    2023-09-09

最新評(píng)論

康定县| 卓尼县| 普兰县| 拜城县| 香河县| 高邮市| 改则县| 嵊州市| 揭东县| 会宁县| 东台市| 石屏县| 台南市| 呼伦贝尔市| 龙海市| 万源市| 格尔木市| 平阳县| 临沂市| 湘乡市| 新化县| 玉田县| 阳高县| 张家口市| 哈密市| 祁连县| 天峻县| 石门县| 大冶市| 扬中市| 鄂伦春自治旗| 军事| 疏勒县| 湘乡市| 汉阴县| 武定县| 固镇县| 沧源| 六盘水市| 玉溪市| 资溪县|