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

Docker數(shù)據(jù)管理之Volume與Bind?Mount的核心技術(shù)詳解

 更新時(shí)間:2026年05月29日 08:57:46   作者:IT策士  
這篇文章主要為大家詳細(xì)介紹了Docker數(shù)據(jù)持久化的兩種核心技術(shù),主要是Volume(數(shù)據(jù)卷)和Bind?Mount(綁定掛載),有需要的小伙伴可以了解下

上一篇文章,我們學(xué)會(huì)了管理容器的生命周期——啟動(dòng)、停止、重啟、查看日志、進(jìn)入調(diào)試。但有一個(gè)問(wèn)題你肯定注意到了:容器一刪,里面的數(shù)據(jù)就沒(méi)了。

這可不是小事。數(shù)據(jù)庫(kù)、用戶上傳的文件、應(yīng)用日志……這些數(shù)據(jù)必須“活”得比容器本身更久。本篇將解決這個(gè)問(wèn)題,帶你掌握 Docker 的數(shù)據(jù)持久化技術(shù):Volume(數(shù)據(jù)卷)與 Bind Mount(綁定掛載)。

一、為什么需要數(shù)據(jù)持久化

1.1 容器的“短暫”本質(zhì)

容器設(shè)計(jì)出來(lái)就是“即用即拋”的?;仡櫟?3 篇的知識(shí):容器有一個(gè)可寫層(Container Layer),所有運(yùn)行時(shí)的修改都發(fā)生在這里。但這個(gè)可寫層的生命周期與容器綁定——容器刪除,可寫層也隨之銷毀。

# 做一個(gè)直觀的對(duì)比實(shí)驗(yàn)
docker run -d --name temp-redis redis:alpine
docker exec temp-redis redis-cli set counter 100
docker rm -f temp-redis

docker run -d --name new-redis redis:alpine
docker exec new-redis redis-cli get counter
# 輸出: (nil)  ← 數(shù)據(jù)丟失了
docker rm -f new-redis

在這個(gè)實(shí)驗(yàn)里,我們寫入了 counter=100,刪除容器后,數(shù)據(jù)隨之消失。新容器雖然用的是同一份鏡像,但它的可寫層是全新的,對(duì)之前的數(shù)據(jù)一無(wú)所知。這就是容器的“短暫”本質(zhì)——如果沒(méi)有額外機(jī)制,任何寫入操作都會(huì)在容器刪除時(shí)灰飛煙滅。

1.2 哪些數(shù)據(jù)需要持久化

在真實(shí)項(xiàng)目中,以下數(shù)據(jù)必須獨(dú)立于容器生命周期:

  • 數(shù)據(jù)庫(kù)文件:MySQL 的 .ibd、Redis 的 RDB/AOF 文件
  • 應(yīng)用日志:排查問(wèn)題、安全審計(jì)、數(shù)據(jù)分析都依賴日志
  • 用戶上傳文件:圖片、文檔、附件等業(yè)務(wù)數(shù)據(jù)
  • 配置文件:某些需要?jiǎng)討B(tài)修改或跨容器共享的配置

解決之道,就是把數(shù)據(jù)從“容器內(nèi)”搬到“容器外”——存儲(chǔ)到宿主機(jī)或?qū)S玫拇鎯?chǔ)系統(tǒng)中。Docker 提供了兩種主要機(jī)制:VolumeBind Mount。

二、Docker 的三種掛載方式概覽

  • Volume:數(shù)據(jù)存儲(chǔ)在 Docker 的管理目錄下(Linux 默認(rèn) /var/lib/docker/volumes/),Docker 負(fù)責(zé)創(chuàng)建、管理和清理。與宿主機(jī)文件系統(tǒng)解耦,是生產(chǎn)環(huán)境的首選。
  • Bind Mount:將宿主機(jī)上一個(gè)已存在的目錄或文件直接映射到容器內(nèi)。依賴宿主機(jī)的具體目錄結(jié)構(gòu),適合開(kāi)發(fā)調(diào)試。
  • tmpfs:將數(shù)據(jù)寫入內(nèi)存而非磁盤,容器停止后數(shù)據(jù)立即消失,適合存放不想落盤的敏感臨時(shí)數(shù)據(jù)。

本篇重點(diǎn)講 Volume 和 Bind Mount,tmpfs 會(huì)在第 9 篇網(wǎng)絡(luò)進(jìn)階中結(jié)合安全場(chǎng)景補(bǔ)充。

三、Volume(數(shù)據(jù)卷):Docker 原生持久化方案

Volume 是 Docker 官方強(qiáng)烈推薦的數(shù)據(jù)持久化方式。它的核心優(yōu)勢(shì)有三點(diǎn):

  • 與宿主機(jī)路徑解耦:你不需要知道數(shù)據(jù)到底存在宿主機(jī)的哪個(gè)角落,Docker 統(tǒng)一管理
  • 跨平臺(tái)兼容:Volume 驅(qū)動(dòng)支持本地、NFS、云存儲(chǔ)(AWS EBS 等),同一套命令在不同環(huán)境都能工作
  • 安全的權(quán)限隔離:Docker 控制 Volume 的訪問(wèn)權(quán)限,比直接暴露宿主機(jī)路徑更安全

3.1 匿名卷 vs 命名卷

Volume 分為匿名卷(Anonymous Volume)和命名卷(Named Volume)。

匿名卷:沒(méi)有指定名稱,Docker 自動(dòng)分配一個(gè)隨機(jī) ID。容器刪除時(shí),如果沒(méi)加 -v 顯式刪除,匿名卷會(huì)殘留在系統(tǒng)里變成“孤兒卷”,是磁盤空間膨脹的常見(jiàn)元兇。

# 創(chuàng)建匿名卷(僅指定容器內(nèi)路徑)
docker run -d --name anon-nginx -v /usr/share/nginx/html nginx

# 查看這個(gè)匿名卷
docker volume ls
# DRIVER    VOLUME NAME
# local     a1b2c3d4e5f6...  ← 自動(dòng)生成的長(zhǎng) ID

命名卷:你主動(dòng)給它起一個(gè)名字。這是生產(chǎn)環(huán)境的首選——可讀性強(qiáng)、可復(fù)用、可備份。

# 創(chuàng)建命名卷
docker volume create nginx-data

# 使用命名卷啟動(dòng)容器
docker run -d --name named-nginx -v nginx-data:/usr/share/nginx/html nginx

# 查看命名卷
docker volume ls
# DRIVER    VOLUME NAME
# local     nginx-data

推薦原則:永遠(yuǎn)使用命名卷,除非你確定容器刪了之后數(shù)據(jù)也不需要保留。 命名卷的命名讓你一眼知道它屬于哪個(gè)服務(wù),遷移和備份時(shí)有明確的語(yǔ)義。

3.2 Volume 的創(chuàng)建、查看與刪除

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

# 查看所有卷
docker volume ls

# 查看卷的詳細(xì)信息(含宿主機(jī)實(shí)際存儲(chǔ)路徑)
docker volume inspect my-volume

輸出示例:

[
    {
        "CreatedAt": "2025-01-20T10:00:00+08:00",
        "Driver": "local",
        "Labels": {},
        "Mountpoint": "/var/lib/docker/volumes/my-volume/_data",
        "Name": "my-volume",
        "Options": {},
        "Scope": "local"
    }
]

Mountpoint 就是這個(gè)卷在宿主機(jī)上的實(shí)際存儲(chǔ)路徑。Docker 用這個(gè)路徑與容器的目標(biāo)路徑建立掛載關(guān)系。通常你不需要手動(dòng)操作這個(gè)目錄——用 docker cp 或進(jìn)入容器操作即可——但了解它有助于理解數(shù)據(jù)流和調(diào)試權(quán)限問(wèn)題。

# 刪除未使用的卷(?? 被容器使用的卷不會(huì)被刪除)
docker volume prune

# 刪除指定卷(?? 先確保沒(méi)有容器在使用)
docker volume rm my-volume

3.3 Volume 實(shí)戰(zhàn):Redis 數(shù)據(jù)持久化

現(xiàn)在讓我們將貫穿案例中的 Redis 容器加上 Volume,實(shí)現(xiàn)數(shù)據(jù)持久化。

# 1. 創(chuàng)建命名卷
docker volume create redis-data

# 2. 啟動(dòng) Redis 并掛載數(shù)據(jù)卷
docker run -d --name my-redis \
  -v redis-data:/data \
  redis:alpine redis-server --appendonly yes

參數(shù)解讀:

  • -v redis-data:/data:將命名卷 redis-data 掛載到 Redis 的默認(rèn)數(shù)據(jù)目錄 /data
  • --appendonly yes:開(kāi)啟 AOF 持久化,數(shù)據(jù)會(huì)定期寫入磁盤
# 3. 寫入測(cè)試數(shù)據(jù)
docker exec my-redis redis-cli set app:counter 42

# 4. 驗(yàn)證數(shù)據(jù)寫入
docker exec my-redis redis-cli get app:counter
# 輸出: "42"

# 5. 模擬災(zāi)難:刪除容器并重建
docker rm -f my-redis

docker run -d --name my-redis \
  -v redis-data:/data \
  redis:alpine redis-server --appendonly yes

# 6. 驗(yàn)證數(shù)據(jù)仍然存在
docker exec my-redis redis-cli get app:counter
# 輸出: "42"  ← 數(shù)據(jù)恢復(fù)了!

這就是 Volume 的威力——容器可以被銷毀重建無(wú)數(shù)次,數(shù)據(jù)穩(wěn)如泰山。

3.4 Volume 數(shù)據(jù)備份與恢復(fù)

生產(chǎn)環(huán)境中,定期備份 Volume 是必須的。以下是標(biāo)準(zhǔn)操作流程:

備份:

# 方案一:使用臨時(shí)容器打包備份(推薦)
docker run --rm \
  -v redis-data:/source:ro \
  -v $(pwd)/backup:/backup \
  alpine \
  tar czf /backup/redis-data-$(date +%Y%m%d).tar.gz -C /source .

# 方案二:直接復(fù)制文件(需知道宿主機(jī)路徑)
sudo cp -r /var/lib/docker/volumes/redis-data/_data /tmp/backup/

方案一的解讀:

  • -v redis-data:/source:ro:將命名卷以只讀模式掛載到臨時(shí)容器的 /source
  • -v $(pwd)/backup:/backup:將當(dāng)前目錄下的 backup 文件夾掛載進(jìn)去
  • alpine tar ...:臨時(shí)容器執(zhí)行打包命令,將 /source 的數(shù)據(jù)壓縮存入 /backup
  • --rm:打包完成后自動(dòng)刪除臨時(shí)容器
# 查看備份文件
ls -lh backup/
# -rw-r--r-- 1 user user 2.3M backup/redis-data-20260120.tar.gz

恢復(fù):

# 1. 創(chuàng)建新的命名卷(如果卷已損壞或丟失)
docker volume create redis-data-new

# 2. 使用臨時(shí)容器解壓恢復(fù)
docker run --rm \
  -v redis-data-new:/target \
  -v $(pwd)/backup:/backup \
  alpine \
  tar xzf /backup/redis-data-20260120.tar.gz -C /target

# 3. 用新卷啟動(dòng)容器驗(yàn)證
docker run -d --name restored-redis \
  -v redis-data-new:/data \
  redis:alpine

docker exec restored-redis redis-cli get app:counter
# 輸出: "42"  ← 恢復(fù)成功

3.5 多個(gè)容器共享同一個(gè) Volume

Volume 還支持多個(gè)容器同時(shí)掛載,實(shí)現(xiàn)數(shù)據(jù)共享:

# 創(chuàng)建共享卷
docker volume create shared-logs

# 容器 1:Flask 應(yīng)用寫入日志
docker run -d --name flask-app \
  -v shared-logs:/app/logs \
  flask-redis-counter:2.0

# 容器 2:日志采集器(如 Filebeat)讀取同一份日志
docker run -d --name log-shipper \
  -v shared-logs:/var/log/app:ro \
  filebeat:latest

注意:多個(gè)容器同時(shí)寫同一個(gè)文件可能導(dǎo)致數(shù)據(jù)競(jìng)爭(zhēng)。通常的做法是一個(gè)容器寫、另一個(gè)容器讀(加 :ro 只讀模式),或者不同容器寫不同文件。

四、Bind Mount(綁定掛載):打通宿主機(jī)與容器

4.1 什么是 Bind Mount?

Bind Mount 直接將宿主機(jī)上的一個(gè)已存在目錄或文件映射到容器內(nèi)。與 Volume 不同,Bind Mount 的路徑完全由你指定,Docker 不做任何管理。

# 語(yǔ)法:-v <宿主機(jī)絕對(duì)路徑>:<容器內(nèi)路徑>[:選項(xiàng)]
docker run -d --name dev-nginx \
  -v /home/user/project/html:/usr/share/nginx/html:ro \
  nginx
  • 宿主機(jī)路徑必須是絕對(duì)路徑,相對(duì)路徑會(huì)被 Docker 誤解析為 Volume 名稱
  • :ro 表示只讀掛載,容器內(nèi)的應(yīng)用不能修改這個(gè)目錄的內(nèi)容
  • :rw(默認(rèn))可讀寫,但容器內(nèi)修改也會(huì)同步到宿主機(jī)

4.2 Bind Mount vs Volume:選型對(duì)比

一句話總結(jié):生產(chǎn)數(shù)據(jù)用 Volume,開(kāi)發(fā)調(diào)試用 Bind Mount。

4.3 Bind Mount 實(shí)戰(zhàn):Flask 開(kāi)發(fā)環(huán)境熱重載

在第 4 篇和第 5 篇中,我們每次修改 app.py 都要重新 docker build,非常低效。有了 Bind Mount,我們可以實(shí)現(xiàn)代碼修改后立刻生效。

首先,準(zhǔn)備一個(gè)支持熱重載的 Flask 啟動(dòng)方式。修改 app.py,在末尾加入開(kāi)發(fā)模式標(biāo)志(此處用環(huán)境變量控制):

# app.py 末尾
if __name__ == '__main__':
    debug_mode = os.environ.get('FLASK_ENV') == 'development'
    app.run(host='0.0.0.0', port=5000, debug=debug_mode)

然后啟動(dòng)容器:

# 在項(xiàng)目根目錄下執(zhí)行(假設(shè)代碼在 /home/user/flask-redis-counter)
docker run -d --name flask-dev \
  -p 5000:5000 \
  -e FLASK_ENV=development \
  -v /home/user/flask-redis-counter:/app \
  flask-redis-counter:2.0

現(xiàn)在,你可以直接用 IDE 修改宿主機(jī)上的 app.py,修改完成后,容器內(nèi)的 Flask 會(huì)自動(dòng)檢測(cè)到文件變化并重啟應(yīng)用進(jìn)程。開(kāi)發(fā)效率瞬間提升。

注意:Bind Mount 覆蓋了整個(gè) /app 目錄,這意味著容器啟動(dòng)時(shí) /app 里的所有文件都來(lái)自宿主機(jī)。如果宿主機(jī)目錄是空的,容器內(nèi)的 /app 也會(huì)變成空的——這常導(dǎo)致“容器啟動(dòng)后什么都沒(méi)跑”的困惑。確保宿主機(jī)目錄已包含完整代碼。

4.4 常用 Bind Mount 場(chǎng)景

場(chǎng)景一:Nginx 配置文件注入

# 將自定義的 Nginx 配置掛載進(jìn)去
docker run -d --name custom-nginx \
  -p 80:80 \
  -v /opt/nginx/nginx.conf:/etc/nginx/nginx.conf:ro \
  -v /opt/nginx/html:/usr/share/nginx/html:ro \
  nginx

場(chǎng)景二:多容器共享主機(jī)文件

# 多個(gè)容器共享宿主機(jī)的同一個(gè)數(shù)據(jù)目錄
docker run -d --name app-1 -v /mnt/shared-data:/data app:v1
docker run -d --name app-2 -v /mnt/shared-data:/data app:v2

4.5 權(quán)限問(wèn)題與注意事項(xiàng)

Bind Mount 最大的坑是文件權(quán)限。

宿主機(jī)的文件擁有宿主機(jī)的 UID/GID,容器內(nèi)的用戶擁有容器內(nèi)的 UID/GID。兩者的 UID 相同時(shí)才能正常讀寫。如果不一致,你會(huì)遇到“Permission denied”錯(cuò)誤。

# 示例:容器內(nèi)以 appuser(UID 1000)運(yùn)行,但宿主機(jī)文件屬于 root(UID 0)
# 解決辦法:調(diào)整宿主機(jī)文件權(quán)限
sudo chown -R 1000:1000 /home/user/flask-redis-counter

另外,絕對(duì)不要將宿主機(jī)的敏感目錄(如 /、/etc、/var/run/docker.sock)掛載到容器內(nèi),除非你非常清楚后果。掛載 docker.sock 等于把 Docker 控制權(quán)交給容器,極不安全。

五、tmpfs 掛載:內(nèi)存級(jí)臨時(shí)存儲(chǔ)

tmpfs 是一種特殊掛載,將數(shù)據(jù)存儲(chǔ)在主機(jī)的內(nèi)存中而非磁盤。容器停止或重啟后,數(shù)據(jù)立即消失。

docker run -d --name tmp-test \
  --tmpfs /app/tmp:rw,size=64m \
  alpine sleep 3600
  • --tmpfs /app/tmp:將容器內(nèi)的 /app/tmp 掛載為 tmpfs
  • rw:可讀寫
  • size=64m:限制最大大小為 64MB

適用場(chǎng)景:臨時(shí)密鑰緩存、解密后的憑證(不想落盤)、高 IO 的臨時(shí)計(jì)算數(shù)據(jù)。

六、實(shí)戰(zhàn):為 Flask + Redis 計(jì)數(shù)器應(yīng)用配置完整數(shù)據(jù)管理

現(xiàn)在,讓我們用本篇知識(shí)為貫穿案例的應(yīng)用加上持久化、熱重載和日志管理。在項(xiàng)目目錄下啟動(dòng)完整的開(kāi)發(fā)環(huán)境:

# 1. 創(chuàng)建命名卷用于 Redis 持久化和日志
docker volume create redis-data
docker volume create flask-logs

# 2. 啟動(dòng) Redis(數(shù)據(jù)持久化)
docker run -d --name my-redis \
  --network counter-net \
  -v redis-data:/data \
  redis:alpine redis-server --appendonly yes

# 3. 啟動(dòng) Flask 應(yīng)用(Bind Mount 熱重載 + Volume 日志持久化)
docker run -d --name my-flask \
  --network counter-net \
  -p 5000:5000 \
  -e FLASK_ENV=development \
  -v $(pwd):/app \
  -v flask-logs:/app/logs \
  flask-redis-counter:2.0

解讀:

  • -v $(pwd):/app:Bind Mount 當(dāng)前項(xiàng)目目錄,實(shí)現(xiàn)代碼熱重載
  • -v flask-logs:/app/logs:Volume 掛載日志目錄,日志獨(dú)立于容器
  • --network counter-net:兩個(gè)容器在同一網(wǎng)絡(luò)中通信(第 8 篇會(huì)詳細(xì)講解)

驗(yàn)證數(shù)據(jù)持久化:

# 寫入計(jì)數(shù)器數(shù)據(jù)
curl http://localhost:5000
# Hello World! I have been seen 1 times.

# 停止并刪除容器
docker rm -f my-flask my-redis

# 重建容器(使用同一個(gè) Volume)
docker run -d --name my-redis --network counter-net \
  -v redis-data:/data \
  redis:alpine redis-server --appendonly yes

docker run -d --name my-flask --network counter-net \
  -p 5000:5000 \
  -v $(pwd):/app \
  -v flask-logs:/app/logs \
  flask-redis-counter:2.0

# 驗(yàn)證計(jì)數(shù)器繼續(xù)增長(zhǎng)
curl http://localhost:5000
# Hello World! I have been seen 2 times.  ← 沒(méi)有重置!

本篇總結(jié)

這一篇我們系統(tǒng)解決了容器數(shù)據(jù)持久化的問(wèn)題:

  • 三種掛載方式:Volume(Docker 管理,生產(chǎn)首選)、Bind Mount(用戶指定路徑,開(kāi)發(fā)首選)、tmpfs(內(nèi)存存儲(chǔ),臨時(shí)數(shù)據(jù))
  • Volume 的核心操作:創(chuàng)建命名卷、多容器共享、備份與恢復(fù)
  • Bind Mount 的典型應(yīng)用:開(kāi)發(fā)環(huán)境熱重載、配置文件注入
  • 權(quán)限問(wèn)題:理解宿主機(jī)與容器的 UID/GID 映射關(guān)系,避免 Permission denied

在 Kubernetes 中,這些概念將擴(kuò)展為 PersistentVolume(PV)、PersistentVolumeClaim(PVC)和 StorageClass,但核心思想完全一致——將數(shù)據(jù)與計(jì)算分離。理解了 Docker 的 Volume,你就已經(jīng)掌握了 K8s 存儲(chǔ)體系的一半。

以上就是Docker數(shù)據(jù)管理之Volume與Bind Mount的核心技術(shù)詳解的詳細(xì)內(nèi)容,更多關(guān)于Docker數(shù)據(jù)管理的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 如何在Docker容器內(nèi)外互相拷貝數(shù)據(jù)

    如何在Docker容器內(nèi)外互相拷貝數(shù)據(jù)

    本篇文章主要介紹了如何在Docker容器內(nèi)外互相拷貝數(shù)據(jù),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-12-12
  • Docker掛載文件結(jié)果是目錄問(wèn)題的解決方案

    Docker掛載文件結(jié)果是目錄問(wèn)題的解決方案

    在使用 Docker 進(jìn)行應(yīng)用容器化部署時(shí),文件系統(tǒng)掛載(Volume Mount)是最常用的功能之一,也是問(wèn)題高發(fā)區(qū),本文給大家介紹了Docker掛載文件結(jié)果是目錄問(wèn)題的解決方案,需要的朋友可以參考下
    2025-05-05
  • Docker創(chuàng)建運(yùn)行多個(gè)mysql容器的方法示例

    Docker創(chuàng)建運(yùn)行多個(gè)mysql容器的方法示例

    這篇文章主要介紹了Docker創(chuàng)建運(yùn)行多個(gè)mysql容器,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-10-10
  • docker-registry使用筆記

    docker-registry使用筆記

    在國(guó)內(nèi)docker-hub是肯定用不了的,不解釋:所以最好還是建一個(gè)私有的docker-registry,存儲(chǔ)一些常用的images方便隨時(shí)pull
    2016-09-09
  • docker服務(wù)監(jiān)控中的cAdvisor詳解

    docker服務(wù)監(jiān)控中的cAdvisor詳解

    cAdvisor(Container Advisor)是谷歌開(kāi)源的一款容器資源監(jiān)控工具,它可以收集容器的 CPU、內(nèi)存、磁盤 I/O、網(wǎng)絡(luò)等資源使用情況的信息,本文給大家介紹docker服務(wù)監(jiān)控中的cAdvisor,感興趣的朋友一起看看吧
    2025-05-05
  • 詳解給Ocelot做一個(gè)Docker鏡像

    詳解給Ocelot做一個(gè)Docker鏡像

    這篇文章主要介紹了詳解給Ocelot做一個(gè)Docker鏡像,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-04-04
  • 詳解ubuntu 16.04安裝docker教程

    詳解ubuntu 16.04安裝docker教程

    本篇文章主要介紹了ubuntu 16.小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-12-12
  • Docker搭建私有倉(cāng)庫(kù)(registry與Harbor)的實(shí)現(xiàn)

    Docker搭建私有倉(cāng)庫(kù)(registry與Harbor)的實(shí)現(xiàn)

    這篇文章主要介紹了Docker搭建私有倉(cāng)庫(kù)(registry與Harbor)的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • 使用Docker部署todo任務(wù)管理器的實(shí)現(xiàn)

    使用Docker部署todo任務(wù)管理器的實(shí)現(xiàn)

    本文介紹使用Docker部署Todo任務(wù)管理器的全過(guò)程,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2025-07-07
  • 使用Docker構(gòu)建企業(yè)級(jí)自定義鏡像的方法

    使用Docker構(gòu)建企業(yè)級(jí)自定義鏡像的方法

    這篇文章主要介紹了使用Docker構(gòu)建企業(yè)級(jí)自定義鏡像的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-05-05

最新評(píng)論

乐清市| 华阴市| 彭水| 堆龙德庆县| 蛟河市| 安吉县| 宁乡县| 德阳市| 五大连池市| 台中县| 白银市| 万盛区| 琼海市| 公安县| 睢宁县| 江永县| 尼玛县| 望奎县| 秭归县| 肃北| 绥滨县| 广水市| 壶关县| 马鞍山市| 年辖:市辖区| 延津县| 吉首市| 鲁甸县| 扶沟县| 京山县| 高密市| 双城市| 墨玉县| 陆良县| 东源县| 监利县| 广河县| 淮阳县| 仁化县| 高雄县| 营山县|