日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

目錄
  • 一、基本介紹
  • 二、將容器目錄掛載到主機

一、基本介紹

這里我們主要介紹 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 所在的目錄中。

分享到:
標簽:主機 容器 方法 服務器 目錄
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定