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

Docker容器傳輸文件的實現(xiàn)方式

 更新時間:2025年10月17日 14:39:57   作者:漿果0207  
文章介紹了Docker容器與主機之間文件傳輸?shù)乃姆N常用方式:dockercp命令、Docker卷掛載、Dockerfile集成和網(wǎng)絡(luò)工具,分別適用于臨時傳輸、持久共享、鏡像集成及遠程場景

在 Docker 日常使用中,經(jīng)常需要在主機與容器之間傳輸文件(如配置文件、代碼包、日志等)。

以下是四種最常用的實現(xiàn)方式,覆蓋臨時傳輸、持久共享、構(gòu)建集成等不同場景。

1. 使用docker cp命令(最常用,臨時傳輸)

docker cp 是 Docker 官方提供的原生命令,專門用于主機與容器之間直接復(fù)制文件 / 目錄,無需額外配置,適合臨時傳輸場景。

核心語法

操作方向命令格式
主機 → 容器docker cp 主機源路徑 容器名/ID:容器目標路徑
容器 → 主機docker cp 容器名/ID:容器源路徑 主機目標路徑

示例

主機文件復(fù)制到容器

將主機當前目錄下的 app.js 文件,復(fù)制到名為 my-container 的容器內(nèi) /tmp 目錄:

docker cp ./app.js my-container:/tmp/

主機目錄復(fù)制到容器

將主機 ./project 目錄,復(fù)制到容器 /usr/local/project 目錄(目錄會自動創(chuàng)建):

docker cp ./project my-container:/usr/local/

容器文件復(fù)制到主機

將容器內(nèi) /var/log/app.log 日志文件,復(fù)制到主機 ./logs 目錄:

docker cp my-container:/var/log/app.log ./logs/

2. 利用 Docker 卷(Volume)(持久化共享)

如果需要主機與容器長期、實時共享文件(如數(shù)據(jù)庫數(shù)據(jù)、配置文件動態(tài)更新),推薦使用 Docker 卷(Volume)。

卷是 Docker 管理的持久化存儲,獨立于容器生命周期,數(shù)據(jù)安全性更高。

操作步驟

創(chuàng)建自定義卷

docker volume create my-volume  # 創(chuàng)建名為 my-volume 的卷

運行容器時掛載卷

將卷 my-volume 掛載到容器內(nèi)的 /container/data 路徑,主機與容器在此路徑下的文件會實時同步:

docker run -d \
  --name my-container \
  -v my-volume:/container/data  # 卷掛載:卷名:容器內(nèi)路徑
  my-image  # 容器使用的鏡像

主機訪問卷數(shù)據(jù)

Docker 卷在主機上的默認存儲路徑為 /var/lib/docker/volumes/[卷名]/_data,可直接在主機操作該目錄:

# 例如:向卷中添加文件,容器內(nèi) /container/data 會同步
cp ./config.ini /var/lib/docker/volumes/my-volume/_data/

3. 通過 Dockerfile 構(gòu)建時添加(鏡像集成)

如果需要容器創(chuàng)建時就內(nèi)置固定文件(如應(yīng)用代碼、默認配置),可在 Dockerfile 中使用 COPYADD 指令,將文件打包到鏡像中,容器啟動后直接可用。

核心指令對比

指令功能說明推薦場景
COPY僅將主機本地文件 / 目錄復(fù)制到鏡像中,語法簡單,功能明確。絕大多數(shù)本地文件復(fù)制場景
ADD除 COPY 功能外,還支持解壓壓縮包(如 .tar)、下載 URL 資源。需要自動解壓或遠程獲取文件

示例 Dockerfile

dockerfile

# 基礎(chǔ)鏡像
FROM ubuntu:22.04

# 1. 使用 COPY 復(fù)制本地文件到鏡像
COPY ./app.conf /etc/app.conf  # 主機 app.conf → 鏡像 /etc/ 目錄

# 2. 使用 COPY 復(fù)制本地目錄到鏡像
COPY ./src /usr/local/app/src  # 主機 src 目錄 → 鏡像 /usr/local/app/src

# 3. 使用 ADD 解壓本地壓縮包(自動解壓到目標路徑)
ADD ./app.tar.gz /usr/local/app/  # 主機 app.tar.gz → 鏡像內(nèi)自動解壓到 /usr/local/app/

# 4. 使用 ADD 下載遠程文件(不推薦,建議在主機下載后用 COPY,避免構(gòu)建緩存問題)
# ADD https://example.com/config.ini /etc/config.ini

構(gòu)建鏡像并運行

# 構(gòu)建鏡像(當前目錄需包含 Dockerfile 和待復(fù)制的文件)
docker build -t my-image:v1 .

# 運行容器(鏡像內(nèi)已包含上述文件)
docker run -it --name my-container my-image:v1

4. 網(wǎng)絡(luò)傳輸工具(跨主機 / 特殊場景)

如果容器內(nèi)已安裝網(wǎng)絡(luò)工具(如 wgetcurl、ssh),可通過網(wǎng)絡(luò)實現(xiàn)文件傳輸,適合跨主機或無法直接訪問容器的場景。

常見場景示例

從主機 HTTP 服務(wù)下載文件

先在主機啟動臨時 HTTP 服務(wù)(以 Python 為例):

# 主機當前目錄啟動 HTTP 服務(wù)(端口 8000)
python3 -m http.server 8000

然后在容器內(nèi)使用 wget 下載文件:

# 容器內(nèi)下載主機的 app.zip 文件(主機 IP 需替換為實際地址)
wget http://192.168.1.100:8000/app.zip -O /tmp/app.zip

通過 SSH 傳輸文件

若容器內(nèi)已配置 SSH 服務(wù),可使用 scp 從主機復(fù)制文件:

# 主機 → 容器(容器需開放 SSH 端口,如 2222)
scp -P 2222 ./config.ini root@容器IP:/etc/config.ini

5. 方法選擇建議

場景需求推薦方法優(yōu)點
臨時、少量文件傳輸docker cp無需配置,操作簡單
長期、實時文件共享Docker 卷數(shù)據(jù)持久化,性能穩(wěn)定
容器鏡像內(nèi)置固定文件Dockerfile COPY與鏡像綁定,部署便捷
跨主機或遠程傳輸網(wǎng)絡(luò)工具(wget)靈活性高,不受本地環(huán)境限制

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 解決Docker容器沒有vim命令的方法

    解決Docker容器沒有vim命令的方法

    這篇文章主要給大家介紹了關(guān)于解決Docker容器沒有vim命令的方法,文中通過示例代碼介紹的非常詳細,對大家學(xué)習(xí)或者使用Docker容器具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • docker網(wǎng)絡(luò)雙向連接詳解

    docker網(wǎng)絡(luò)雙向連接詳解

    在本篇文章里小編給大家分享的是一篇關(guān)于docker網(wǎng)絡(luò)雙向連接知識點詳解內(nèi)容,有興趣朋友們可以參考學(xué)習(xí)下。
    2020-01-01
  • Docker安裝Nacos服務(wù)的實現(xiàn)

    Docker安裝Nacos服務(wù)的實現(xiàn)

    本文主要介紹了Docker安裝Nacos服務(wù)的實現(xiàn),文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • docker 限制容器對CPU的使用

    docker 限制容器對CPU的使用

    本篇文章主要介紹了docker 限制容器對CPU的使用,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-08-08
  • 使用docker部署django技術(shù)棧項目的方法步驟

    使用docker部署django技術(shù)棧項目的方法步驟

    這篇文章主要介紹了使用docker部署django技術(shù)棧項目的方法步驟,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • docker 指定IP地址、與主機同網(wǎng)段IP

    docker 指定IP地址、與主機同網(wǎng)段IP

    這篇文章主要介紹了docker 指定IP地址、與主機同網(wǎng)段IP,非常具有實用價值,需要的朋友可以參考下
    2017-05-05
  • Docker安裝Jenkins全過程

    Docker安裝Jenkins全過程

    這篇文章主要介紹了Docker安裝Jenkins全過程,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-04-04
  • Docker使用鏡像倉庫的方法

    Docker使用鏡像倉庫的方法

    這篇文章介紹了Docker使用鏡像倉庫的方法,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-01-01
  • docker開通2375端口防漏洞問題

    docker開通2375端口防漏洞問題

    這篇文章主要介紹了docker開通2375端口防漏洞問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • 一文教你輕松搞定Docker無法拉取鏡像問題

    一文教你輕松搞定Docker無法拉取鏡像問題

    這篇文章主要介紹了當Docker無法成功拉取鏡像時可能遇到的問題以及解決方法,文中通過代碼介紹的非常詳細,對遇到這個問題的同學(xué)們具有一定的參考借鑒價值,需要的朋友可以參考下
    2025-02-02

最新評論

金平| 尚义县| 蓝田县| 修水县| 邳州市| 阳泉市| 开江县| 武义县| 凤翔县| 灌云县| 北碚区| 宜兰市| 阳新县| 旬邑县| 中阳县| 平泉县| 福州市| 黄石市| 绥滨县| 英山县| 正阳县| 新安县| 闻喜县| 巩留县| 扎鲁特旗| 龙川县| 嘉兴市| 黄浦区| 濉溪县| 招远市| 莱阳市| 楚雄市| 西充县| 兴业县| 巴里| 彭山县| 大安市| 磐安县| 珠海市| 磐安县| 万盛区|