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

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

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

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

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

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

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

核心語法

操作方向命令格式
主機(jī) → 容器docker cp 主機(jī)源路徑 容器名/ID:容器目標(biāo)路徑
容器 → 主機(jī)docker cp 容器名/ID:容器源路徑 主機(jī)目標(biāo)路徑

示例

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

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

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

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

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

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

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

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

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

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

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

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

操作步驟

創(chuàng)建自定義卷

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

運(yùn)行容器時(shí)掛載卷

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

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

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

Docker 卷在主機(jī)上的默認(rèn)存儲(chǔ)路徑為 /var/lib/docker/volumes/[卷名]/_data,可直接在主機(jī)操作該目錄:

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

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

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

核心指令對(duì)比

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

示例 Dockerfile

dockerfile

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

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

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

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

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

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

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

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

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

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

常見場(chǎng)景示例

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

先在主機(jī)啟動(dòng)臨時(shí) HTTP 服務(wù)(以 Python 為例):

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

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

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

通過 SSH 傳輸文件

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

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

5. 方法選擇建議

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

總結(jié)

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

相關(guān)文章

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

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

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

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

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

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

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

    docker 限制容器對(duì)CPU的使用

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

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

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

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

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

    Docker安裝Jenkins全過程

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

    Docker使用鏡像倉庫的方法

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

    docker開通2375端口防漏洞問題

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

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

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

最新評(píng)論

赤壁市| 龙江县| 济宁市| 信阳市| 上思县| 博爱县| 凤翔县| 赞皇县| 格尔木市| 绥江县| 扶绥县| 措勤县| 天津市| 印江| 保康县| 凤台县| 平利县| 延川县| 玛多县| 登封市| 五华县| 罗城| 军事| 黑龙江省| 成安县| 玉林市| 武鸣县| 乌拉特前旗| 宜昌市| 金门县| 广宗县| 铅山县| 柘城县| 彩票| 彩票| 石阡县| 阿尔山市| 鄂托克前旗| 灵台县| 柘荣县| 西安市|