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

淺談Docker 容器數(shù)據(jù)卷掛載小結(jié)

 更新時間:2017年11月07日 16:38:56   作者:左藍  
本篇文章主要介紹了淺談Docker 容器數(shù)據(jù)卷掛載小結(jié),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

為了更直觀了解數(shù)據(jù)卷掛載的操作,做個實驗一一驗證數(shù)據(jù)卷掛載的各種情況。

情況一、本地不存在文件掛載到容器存在文件

首先是當本地不存在該文件,而容器內(nèi)存在該文件的情況,嘗試把不存在的文件掛載到存在該文件的容器中。以一個 Alpine 鏡像為例,這里把一個修改后的 Alpine 鏡像打了新標簽,叫做 volume_test:

# 本地目錄不存在 test 文件。
$ docker run --name=test -v ~/test.txt:/etc/hosts -d volume_test
0cba2e50229df7508c616bd456c4ab131f2fe1a88385c34f8a5876fbc577b176
docker: Error response from daemon: oci runtime error: rootfs_linux.go:53: mounting "/var/lib/docker/devicemapper/mnt/6b83c07ebedcb828f34cac69eac5a85ce3a5f59e1e8688c8dae40198671d0ecb/rootfs/etc/hosts" to rootfs "/var/lib/docker/devicemapper/mnt/6b83c07ebedcb828f34cac69eac5a85ce3a5f59e1e8688c8dae40198671d0ecb/rootfs" caused "not a directory".
# 啟動容器失敗。

情況二、本地不存在文件夾掛載到容器存在文件夾

然后是把本地不存在的文件夾掛載到容器內(nèi)存在的文件夾,在 volume_test 鏡像中存在一個 /srv 的文件夾,文件夾里面有一個 index.php 文件。

# 本地目錄不存在 srv文件夾。
$ docker run --name=test -v ~/srv:/srv -d volume_test 
c71cf1cfa4932e3e398a7d6c4e2ae94f915b832f5506e374aedb19af4cb1ac62
# 啟動正常,但是進入容器發(fā)現(xiàn)目錄被清空。
$ docker exec -it test sh
/srv # ls
/srv #

上面兩個例子已經(jīng)告訴我們,數(shù)據(jù)卷的掛載是通過把本地的目錄覆蓋到容器中的。也就是說,當宿主機文件不存在時,不能掛載;當文件夾不存在時,掛載到容器會用一個空文件夾覆蓋容器原有目錄。

情況三、宿主機存在文件掛載到容器不存在文件

我們繼續(xù),假設宿主機存在文件,容器內(nèi)不存在該文件:

# 本地目錄存在 test.txt文件
$ docker run --name=test -v ~/test.txt:/srv/test.txt-d volume_test 
2d6853c10643a735ae3d7f3aaac8c6344f9c75170e531f613d08db7cdf484e54
# 容器內(nèi)存在 /srv 文件夾,里面原本有一個 index.php 。
$ docker exec -it test sh
/srv # ls
index.php test.txt
/srv # 
# 可以看到文件掛載成功。

情況四、宿主機存在文件夾掛載到容器不存在文件夾

接下來是宿主機存在文件夾,容器不存在該文件夾,宿主機的 test 文件夾里面存在一個 hello 文件:

$ docker run --name=test -v ~/test:/srv/test -d volume_test 
c935ffa0d9fc5e5ac8f213a51a878e71056472b0597d2e385a29e5c748012958
# 進入容器,查看是否存在 test 文件夾,以及文件夾里面是否有 hello 文件。
$ docker exec -it test sh
/srv # ls
index.php test
/srv # cd test/
/srv/test # ls
hello
/srv/test #

上面兩個例子說明了,容器內(nèi)部如果不存在文件,宿主機直接掛載。

情況五、宿主機文件夾掛載到容器文件

接下來假設宿主機存在 test 文件夾,而容器內(nèi)部存在的是名為 test 文件,這樣掛載會怎樣呢?

$ docker run --name=test -v ~/test:/srv/test-d volume_test 
385bc78e5333460da11f04535da27a3fd226df218f95c970ff2dd5609b17f816
docker: Error response from daemon: oci runtime error: rootfs_linux.go:53: mounting "/var/lib/docker/devicemapper/mnt/fd5c42e844c3550d1a372ed939ed57f90dcacbd375dfed1bedfbb71ef6f3f185/rootfs/etc/hosts" to rootfs "/var/lib/docker/devicemapper/mnt/fd5c42e844c3550d1a372ed939ed57f90dcacbd375dfed1bedfbb71ef6f3f185/rootfs" caused "not a directory".

上面的情況不出意外是啟動錯誤。

情況六、同名文件夾掛載

那么假設宿主機是文件夾,容器也是文件夾,兩個文件夾里面內(nèi)容不一樣,宿主機內(nèi)部有一個 hello 文件,容器的文件夾里面有一個 index.php :

$ docker run --name=test -v ~/srv:/srv -d volume_test 
3aec30122bd7010c694e0ff8b77f7b7b6bb6f850c258786db125313060fad43b$ docker exec-it test sh
/srv # ls
hello
/srv # 
# 可以看到,宿主機文件夾會覆蓋容器內(nèi)部的文件夾。

情況七、同名文件掛載

假設宿主機有一個 test.txt 文件,里面寫著 Hello World,而容器里面也存在一個 test.txt 文件,里面寫著 Hi World,現(xiàn)在掛載文件:

$ docker run --name=test -v ~/test.txt:/srv/test.txt -d volume_test 
047cbfe45b5bc868c864fe94f7a22643d52b644947f40260097dbb579de56c5c
$ docker exec -it test sh
/srv # cat /test
Hello World
/srv # 
# 宿主機會覆蓋容器的文件。

情況八、宿主機文件掛載到容器文件夾

最后一種情況,宿主機存在文件 test.txt,而容器內(nèi)部存在一個 test 的文件夾,現(xiàn)在把 文件掛載到文件夾中:

$ docker run --name=test -v ~/test.txt:/test -d volume_test 
59b5fd74a1e9e17aa2a6a9be7900b16c7dd4b3c424a4fa72a7671fa1c51bdf69
docker: Error response from daemon: oci runtime error: rootfs_linux.go:53: mounting "/var/lib/docker/devicemapper/mnt/b201054ed36a189b5abb599082d0b5bcbe31d07611a0985deefd79d1221447fd/rootfs/home" to rootfs "/var/lib/docker/devicemapper/mnt/b201054ed36a189b5abb599082d0b5bcbe31d07611a0985deefd79d1221447fd/rootfs" caused "not a directory".
# 啟動失敗。

小結(jié):

宿主機文件 容器內(nèi)文件 啟動參數(shù)(加粗表示不存在) 容器啟動情況
不存在 文件 -v ~/test.txt:/etc/hosts 啟動錯誤
不存在 文件夾 -v ~/srv:/srv 啟動正常
文件 不存在 -v ~/test.txt:/srv/test.txt 啟動正常
文件夾 不存在 ~/test:/srv/test 啟動正常
文件夾 文件 ~/test:/srv/test 啟動錯誤
文件夾 文件夾 -v ~/srv:/srv 啟動正常
文件 文件 -v ~/test.txt:/srv/test.txt 啟動正常
文件 文件夾 -v ~/test.txt:/test 啟動錯誤

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 解決docker啟動失敗Failed?to?start?containerd?container?runtime

    解決docker啟動失敗Failed?to?start?containerd?container?runtim

    這篇文章主要介紹了解決docker啟動失敗Failed?to?start?containerd?container?runtime問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • Dockerfile文本文件使用方法實例解析

    Dockerfile文本文件使用方法實例解析

    這篇文章主要介紹了Dockerfile文本文件使用方法實例解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-09-09
  • Docker容器搭建本地私有倉庫詳情

    Docker容器搭建本地私有倉庫詳情

    這篇文章主要介紹了Docker容器搭建本地私有倉庫詳情,Docker?官方提供了一個搭建私有倉庫的鏡像?registry?,運行該鏡像的容器并且對外暴露5000端口就ok了
    2022-08-08
  • docker images 如何建立自己的原生鏡像

    docker images 如何建立自己的原生鏡像

    這篇文章主要介紹了docker images 如何建立自己的原生鏡像的相關(guān)資料,需要的朋友可以參考下
    2017-04-04
  • docker安裝RabbitMq添加用戶實現(xiàn)方式

    docker安裝RabbitMq添加用戶實現(xiàn)方式

    這篇文章主要介紹了docker安裝RabbitMq添加用戶實現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • docker安裝Elasticsearch7.6集群并設置密碼的方法步驟

    docker安裝Elasticsearch7.6集群并設置密碼的方法步驟

    本文主要介紹了docker安裝Elasticsearch7.6集群并設置密碼,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • Docker容器數(shù)據(jù)卷介紹及操作示例

    Docker容器數(shù)據(jù)卷介紹及操作示例

    這篇文章主要為大家介紹了Docker容器數(shù)據(jù)卷介紹及操作示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步早日升職加薪
    2022-04-04
  • 在docker環(huán)境中實現(xiàn)配置hosts

    在docker環(huán)境中實現(xiàn)配置hosts

    這篇文章主要介紹了在docker環(huán)境中實現(xiàn)配置hosts,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-04-04
  • 詳解Docker commit的使用

    詳解Docker commit的使用

    這篇文章主要介紹了Docker commit使用的相關(guān)資料,幫助大家更好的理解和使用docker容器,感興趣的朋友可以了解下
    2020-09-09
  • docker安裝logstash的步驟

    docker安裝logstash的步驟

    這篇文章主要介紹了docker安裝logstash,環(huán)境是基于centos7.6操作系統(tǒng),安裝logstash過程給大家講解的非常詳細,需要的朋友可以參考下
    2022-04-04

最新評論

斗六市| 南投县| 嵊泗县| 华蓥市| 高唐县| 佛冈县| 卓资县| 安吉县| 垣曲县| 江都市| 三穗县| 无棣县| 延吉市| 津市市| 北流市| 遂宁市| 崇礼县| 乡宁县| 固镇县| 汕头市| 长兴县| 岐山县| 湘潭市| 兴宁市| 龙口市| 营山县| 定西市| 班玛县| 新昌县| 永宁县| 宁远县| 虞城县| 文安县| 新营市| 任丘市| 西充县| 乌鲁木齐县| 海南省| 滁州市| 夏河县| 赤壁市|