中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何使用Docker將容器目錄掛載到主機上

發布時間:2022-05-30 09:39:50 來源:億速云 閱讀:1396 作者:zzz 欄目:開發技術

今天小編給大家分享一下如何使用Docker將容器目錄掛載到主機上的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

一、基本介紹

這里我們主要介紹 Docker 里的一個命令,叫做 --mount,其本質上來說和 --volume 命令并沒有太大區別,因為這兩個命令都是用來給容器提供一個掛載目錄。唯一的區別便是,容器的掛載類型不同,那么效果也會有所不同。

容器的掛載類型:

  • bind:將宿主機的指定目錄掛載到容器的指定目錄,以覆蓋的形式掛載(這也就意味著,容器指定目錄下的內容也會隨著消失)

  • volume在宿主機的 Docker 存儲目錄下創建一個目錄,并掛載到容器的指定目錄(并不會覆蓋容器指定目錄下的內容)

在有些時候,由于容器內的目錄有著特殊作用,并不能以覆蓋的形式進行掛載。但又想掛載到宿主機上,這時我們便可以使用 volume 類型的掛載方式。像我們上面所說的 --mount--volume 命令都是支持以這兩種類型的方式掛載,無非就是配置稍有不同。

兩種命令使用 bind 類型掛載區別:當宿主機上指定的目錄不存在時,我們使用 --volume 命令掛載時,便會自動的在宿主機上創建出相應目錄,而我們要是使用 --mount 命令來掛載,便會輸出 `` 報錯信息。

二、將容器目錄掛載到主機

1)使用 --volume 命令實現 bind 類型的掛載

[root@k8s-master01 ~]# docker run -d -it --name zhangsan \
-v /zhangsan:/usr/share/nginx/html \
nginx:1.21.0
[root@k8s-master01 ~]# echo "Hello World" > /zhangsan/index.html
[root@k8s-master01 ~]# docker exec -it zhangsan /bin/bash
root@3cad299c93aa:/# cd /usr/share/nginx/html/
root@3cad299c93aa:/usr/share/nginx/html# ls
index.html
root@3cad299c93aa:/usr/share/nginx/html# curl 127.0.0.1

如何使用Docker將容器目錄掛載到主機上

可以看到,當我們使用 bind 類型的掛載時,容器內指定的目錄原有內容會被覆蓋。

2)使用 --mount 命令實現 bind 類型的掛載

[root@k8s-master01 ~]# docker run -d -it --name wangwu \
--mount type=bind,source=/zhangsan,destination=/usr/share/nginx/html \
nginx:1.21.0
[root@k8s-master01 ~]# docker exec -it wangwu /bin/bash
root@474cf5ddd29f:/# cd /usr/share/nginx/html/
root@474cf5ddd29f:/usr/share/nginx/html# ls
index.html
root@474cf5ddd29f:/usr/share/nginx/html# curl 127.0.0.1

如何使用Docker將容器目錄掛載到主機上

我們上面指定 type=bind 類型的原因是因為 --mount 命令默認掛載的類型就是 volume 類型,所以需要指定。

--mount 命令掛載格式:

  • bind 掛載類型:--mount [type=bind] source=/path/on/host,destination=/path/in/container[,...]

  • volume 掛載類型:--mount source=my-volume,destination=/path/in/container[,...]

3)使用 --volume 命令實現 volume 類型的掛載

[root@k8s-master01 ~]# docker run -d -it --name volume \
-v zhangsan:/usr/share/nginx/html \
nginx:1.21.0
[root@k8s-master01 ~]# docker exec -it volume /bin/bash
root@dced26ccb8f0:/# cd /usr/share/nginx/html/
root@dced26ccb8f0:/usr/share/nginx/html# ls
50x.html  index.html

如何使用Docker將容器目錄掛載到主機上

4)使用 --mount 命令實現 volume 類型的掛載

[root@k8s-master01 ~]# docker run -d -it --name mount \
--mount source=mount,destination=/usr/share/nginx/html \
nginx:1.21.0
[root@k8s-master01 ~]# docker exec -it mount /bin/bash
root@7e63ca69f135:/# cd /usr/share/nginx/html/
root@7e63ca69f135:/usr/share/nginx/html# ls
50x.html  index.html

如何使用Docker將容器目錄掛載到主機上

查看宿主機的掛載目錄

如何使用Docker將容器目錄掛載到主機上

其實,使用 bind 或是 mount 類型的掛載方式,區別主要就是在于有 / 和沒 /,有 / 就會掛載到宿主機的指定目錄,沒有 / 則是會掛載到宿主機 Docker 所在的目錄中。

以上就是“如何使用Docker將容器目錄掛載到主機上”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

开封县| 千阳县| 大连市| 永年县| 武宁县| 革吉县| 重庆市| 尼木县| 长沙市| 车致| 商都县| 和硕县| 凤城市| 丽江市| 凤凰县| 镇沅| 佳木斯市| 青海省| 望奎县| 霍城县| 吴桥县| 滨海县| 永仁县| 福贡县| 韩城市| 崇左市| 云梦县| 金溪县| 呼伦贝尔市| 洞头县| 上虞市| 绩溪县| 香河县| 惠州市| 平潭县| 白河县| 北安市| 隆子县| 磐石市| 申扎县| 阿瓦提县|