亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 服務器 > Web服務器 > 正文

詳解Docker掛載本地目錄及實現文件共享的方法

2024-09-01 13:53:29
字體:
來源:轉載
供稿:網友

docker掛載本地目錄的方法總結:

Docker容器啟動的時候,如果要掛載宿主機的一個目錄,可以用-v參數指定。

譬如我要啟動一個centos容器,宿主機的/test目錄掛載到容器的/soft目錄,可通過以下方式指定:

# docker run -it -v /test:/soft centos /bin/bash

這樣在容器啟動后,容器內會自動創建/soft的目錄。通過這種方式,我們可以明確一點,即-v參數中,冒號":"前面的目錄是宿主機目錄,后面的目錄是容器內目錄。

貌似簡單,其實不然,下面我們來驗證一下:

一、容器目錄不可以為相對路徑

[root@localhost ~]# docker run -it -v /test:soft centos /bin/bashinvalid value "/test:soft" for flag -v: soft is not an absolute pathSee 'docker run --help'.

直接報錯,提示soft不是一個絕對路徑,所謂的絕對路徑,必須以下斜線“/”開頭。

二、宿主機目錄如果不存在,則會自動生成

如果宿主機中存在/test目錄,首先刪除它

[root@localhost ~]# rm -rf /test[root@localhost ~]# ls /bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var

啟動容器

[root@localhost ~]# docker run -it -v /test:/soft centos /bin/bash[root@a487a3ca7997 /]# lsbin dev etc home lib lib64 lost+found media mnt opt proc root run sbin soft srv sys tmp usr var

查看宿主機,發現新增了一個/test目錄

[root@localhost ~]# ls /bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys test tmp usr var

三、宿主機的目錄如果為相對路徑呢?

這次,我們換個目錄名test1試試

# docker run -it -v test1:/soft centos /bin/bash

再到宿主機上查看是否新增了一個/test1目錄,結果沒有,是不是因為我用的是相對路徑,所以生成的test1目錄在當前目錄下,結果發現還是沒有。那容器內的/soft目錄掛載到哪里去了?通過docker inspect命令,查看容器“Mounts”那一部分,我們可以得到這個問題的答案。

"Mounts":[    {      "Name": "test1",      "Source": "/var/lib/docker/volumes/test1/_data",      "Destination": "/soft",      "Driver": "local",      "Mode": "z",      "RW": true    }  ],

可以看出,容器內的/soft目錄掛載的是宿主機上的/var/lib/docker/volumes/test1/_data目錄

原來,所謂的相對路徑指的是/var/lib/docker/volumes/,與宿主機的當前目錄無關。

四、如果只是-v指定一個目錄,這個又是如何對應呢?

啟動一個容器

[root@localhost ~]# docker run -it -v /test2 centos /bin/bash[root@ea24067bc902 /]# lsbin dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys test2 tmp usr var

同樣使用docker inspect命令查看宿主機的掛載目錄

"Mounts":[    {      "Name": "96256232eb74edb139d652746f0fe426e57fbacdf73376963e3acdb411b3d73a",      "Source": "/var/lib/docker/volumes/96256232eb74edb139d652746f0fe426e57fbacdf73376963e3acdb411b3d73a/_data",      "Destination": "/test2",      "Driver": "local",      "Mode": "",      "RW": true    }  ],

可以看出,同3中的結果類似,只不過,它不是相對路徑的目錄名,而是隨機生成的一個目錄名。

五、如果在容器內修改了目錄的屬主和屬組,那么對應的掛載點是否會修改呢?

首先開啟一個容器,查看容器內/soft目錄的屬性

[root@localhost ~]# docker run -it -v /test:/soft centos /bin/bash[root@b5ed8216401f /]# ll -d /soft/drwxr-xr-x 2 root root 6 Sep 24 03:48 /soft/

查看宿主機內/test目錄的屬性

[root@localhost ~]# ll -d /test/drwxr-xr-x 2 root root 6 Sep 24 11:48 /test/

在容器內新建用戶,修改/soft的屬主和屬組

[root@b5ed8216401f /]# useradd victor[root@b5ed8216401f /]# chown -R victor.victor /soft/[root@b5ed8216401f /]# ll -d /soft/drwxr-xr-x 2 victor victor 6 Sep 24 03:48 /soft/

再來看看宿主機內/test目錄的屬主和屬組是否會發生變化?

[root@localhost ~]# ll -d /test/drwxr-xr-x 2 mycat mycat 6 Sep 24 11:48 /test/

竟然變為mycat了。。。

原來,這個與UID有關系,UID,即“用戶標識號”,是一個整數,系統內部用它來標識用戶。一般情況下它與用戶名是一一對應的。

首先查看容器內victor對應的UID是多少,

[root@b5ed8216401f /]# cat /etc/passwd | grep victorvictor:x:1000:1000::/home/victor:/bin/bash

victor的UID為1000,那么宿主機內1000對應的用戶是誰呢?

[root@localhost ~]# cat /etc/passwd |grep 1000mycat:x:1000:1000::/home/mycat:/bin/bash

可以看出,宿主機內UID 1000對應的用戶是mycat。

六、容器銷毀了,在宿主機上新建的掛載目錄是否會消失?

在這里,主要驗證兩種情況:一、指定了宿主機目錄,即 -v /test:/soft。二、沒有指定宿主機目錄,即-v /soft

第一種情況:

[root@localhost ~]# rm-rf/test

--首先刪除宿主機的/test目錄

[root@localhost ~]# ls /  --可以看到,宿主機上無/test目錄bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var[root@localhost ~]# docker run -it --name=centos_test -v /test:/soft centos /bin/bash --啟動容器,為了刪除方便,我用--name參數指定了容器的名字[root@82ad7f3a779a /]# exitexit[root@localhost ~]# docker rm centos_test  --刪除容器centos_test[root@localhost ~]# ls /  --發現 /test目錄依舊存在bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys test tmp usr var

可以看出,即便容器銷毀了,新建的掛載目錄不會消失。進一步也可驗證,如果宿主機目錄的屬主和屬組發生了變化,容器銷毀后,宿主機目錄的屬主和屬組不會恢復到掛載之前的狀態。

第二種情況,通過上面的驗證知道,如果沒有指定宿主機的目錄,則容器會在/var/lib/docker/volumes/隨機配置一個目錄,那么我們看看這種情況下的容器銷毀是否會導致相應目錄的刪除

首先啟動容器

[root@localhost ~]# docker run -it --name=centos_test -v /soft centos /bin/bash[root@6b75579ec934 /]# exitexit

通過docker inspect命令查看容器在宿主機上生成的掛載目錄

"Mounts":[    {      "Name": "b53164cb1c9f1917788638692fb22ad11994cf1fbbc2461b6c390cd3e10ea301",      "Source": "/var/lib/docker/volumes/b53164cb1c9f1917788638692fb22ad11994cf1fbbc2461b6c390cd3e10ea301/_data",      "Destination": "/soft",      "Driver": "local",      "Mode": "",      "RW": true    }  ],

對應的是/var/lib/docker/volumes/b53164cb1c9f1917788638692fb22ad11994cf1fbbc2461b6c390cd3e10ea301/_data目錄

銷毀容器,看目錄是否存在

[root@localhost ~]# docker rm centos_testcentos_test[root@localhost ~]# ll /var/lib/docker/volumes/b53164cb1c9f1917788638692fb22ad11994cf1fbbc2461b6c390cd3e10ea301total 0drwxr-xr-x 2 root root 6 Sep 24 14:25 _data

發現該目錄依舊存在,即便重啟了docker服務,該目錄依舊存在

[root@localhost ~]# systemctl restart docker[root@localhost ~]# ll /var/lib/docker/volumes/b53164cb1c9f1917788638692fb22ad11994cf1fbbc2461b6c390cd3e10ea301total 0drwxr-xr-x 2 root root 6 Sep 24 14:25 _data

七、掛載宿主機已存在目錄后,在容器內對其進行操作,報“Permission denied”。

可通過兩種方式解決:

1> 關閉selinux。

臨時關閉:# setenforce 0

永久關閉:修改/etc/sysconfig/selinux文件,將SELINUX的值設置為disabled。

2> 以特權方式啟動容器

指定--privileged參數

如:# docker run -it --privileged=true -v /test:/soft centos /bin/bash

docker掛載本地目錄實現文件共享:

Docker可以支持把一個宿主機上的目錄掛載到鏡像里。

docker run -it -v /home/dock/Downloads:/usr/Downloads ubuntu64 /bin/bash

通過-v參數,冒號前為宿主機目錄,必須為絕對路徑,冒號后為鏡像內掛載的路徑。

Docker掛載本地目錄,docker,掛載目錄,Docker文件共享

現在鏡像內就可以共享宿主機里的文件了。

默認掛載的路徑權限為讀寫。如果指定為只讀可以用:ro

docker run -it -v /home/dock/Downloads:/usr/Downloads:ro ubuntu64 /bin/bash

docker還提供了一種高級的用法。叫數據卷。

數據卷:“其實就是一個正常的容器,專門用來提供數據卷供其它容器掛載的”。感覺像是由一個容器定義的一個數據掛載信息。其他的容器啟動可以直接掛載數據卷容器中定義的掛載信息。

看示例:

docker run -v /home/dock/Downloads:/usr/Downloads --name dataVol ubuntu64 /bin/bash

創建一個普通的容器。用--name給他指定了一個名(不指定的話會生成一個隨機的名子)。

Docker掛載本地目錄,docker,掛載目錄,Docker文件共享

再創建一個新的容器,來使用這個數據卷。

docker run -it --volumes-from dataVol ubuntu64 /bin/bash

--volumes-from用來指定要從哪個數據卷來掛載數據。

Docker掛載本地目錄,docker,掛載目錄,Docker文件共享

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久久久久久一区二区| 欧美日韩福利在线观看| 欧美激情在线有限公司| 欧美大片va欧美在线播放| 中文字幕日韩av综合精品| 欧美精品18videosex性欧美| 日韩欧美在线观看| 91久久精品日日躁夜夜躁国产| 欧美猛男性生活免费| 国产成人在线一区二区| 欧美在线观看网址综合| 91麻豆国产语对白在线观看| 亚洲精品不卡在线| 亚洲最大的成人网| 国产精品第一页在线| 尤物九九久久国产精品的特点| 欧美激情亚洲综合一区| 亚洲第一在线视频| 色七七影院综合| 日韩在线欧美在线| 国产a∨精品一区二区三区不卡| 欧美怡红院视频一区二区三区| 亚洲最大的免费| 日韩精品中文字幕久久臀| 上原亚衣av一区二区三区| 亚洲性生活视频| 日韩av免费网站| 三级精品视频久久久久| 久久久久久久久久久免费精品| 久久中文字幕在线视频| 国产精品久久久久久婷婷天堂| 亚洲电影免费在线观看| 日日骚av一区| 久久久伊人日本| 中文字幕免费精品一区高清| 97国产精品视频人人做人人爱| 精品亚洲一区二区| 91视频国产精品| 久久久久久久一区二区| 国产精品入口夜色视频大尺度| 性欧美亚洲xxxx乳在线观看| 欧洲美女免费图片一区| 亚洲国产精品久久久| 精品久久久香蕉免费精品视频| 成人国产精品日本在线| 97在线视频免费看| 欧美激情精品久久久久久久变态| 欧美激情一级二级| 91国产视频在线| 亚洲色图综合网| 久久久久国色av免费观看性色| 国产精品国产三级国产aⅴ9色| 黑丝美女久久久| 国产中文欧美精品| 岛国视频午夜一区免费在线观看| 91在线观看免费高清| 91探花福利精品国产自产在线| 欧美日韩精品在线视频| 久久久久久亚洲精品| 久久精品视频导航| 成人黄色免费在线观看| 91久久精品国产91久久| 91精品在线国产| 欧洲永久精品大片ww免费漫画| 国产专区精品视频| 影音先锋日韩有码| 日韩a**中文字幕| 亚洲精品一区中文| 黑人巨大精品欧美一区免费视频| 91精品国产综合久久久久久蜜臀| 欧美电影在线观看网站| 一二美女精品欧洲| 国产视频精品xxxx| 自拍视频国产精品| 国产欧美日韩专区发布| 国内外成人免费激情在线视频网站| 岛国av午夜精品| 宅男66日本亚洲欧美视频| 欧美刺激性大交免费视频| 亚洲三级免费看| 亚洲成人网av| 国产欧美精品在线播放| 91在线高清视频| 4444欧美成人kkkk| 欧美国产日韩视频| 国产午夜精品理论片a级探花| 久久久久久亚洲精品中文字幕| 成人免费在线视频网址| 国产精品www色诱视频| 欧美亚洲成人精品| 日韩av一区二区在线| 日韩一区二区三区国产| 中文精品99久久国产香蕉| 5278欧美一区二区三区| 琪琪第一精品导航| 在线视频欧美日韩精品| 国产综合在线观看视频| 午夜精品理论片| 91精品国产乱码久久久久久蜜臀| 国产精品天天狠天天看| 日韩国产一区三区| 97精品国产aⅴ7777| 亚洲国产日韩欧美在线图片| 欧美野外猛男的大粗鳮| 中文字幕欧美亚洲| 91精品免费久久久久久久久| 国产一区视频在线播放| 欧美在线观看日本一区| 热久久美女精品天天吊色| 国产精品永久免费| 亚洲女人初尝黑人巨大| 亚洲人线精品午夜| 国产日韩精品综合网站| 操日韩av在线电影| 久久久久久国产免费| 国产主播精品在线| 性色av一区二区咪爱| 日日摸夜夜添一区| 国产精品美腿一区在线看| 一区二区三区在线播放欧美| 日韩精品久久久久久久玫瑰园| 97国产一区二区精品久久呦| 国产ts一区二区| 欧美日韩中文字幕在线视频| 亚洲午夜女主播在线直播| 国产精品日日摸夜夜添夜夜av| 97国产真实伦对白精彩视频8| 国产精品视频一区二区三区四| 日韩美女视频中文字幕| 欧美人与性动交| 亚洲xxxx妇黄裸体| 国产欧美一区二区三区久久人妖| 亚洲成人三级在线| 亚洲wwwav| 欧美一区二区三区……| 国产精品视频专区| 欧美成人免费一级人片100| 91在线高清免费观看| 国产在线观看精品| 亚洲精品福利在线观看| 久久免费视频网| 中文字幕在线看视频国产欧美在线看完整| 成人免费大片黄在线播放| 亚洲欧美在线磁力| 国产精品视频导航| 欧美在线视频免费观看| 国内揄拍国内精品| 色妞在线综合亚洲欧美| 4438全国亚洲精品在线观看视频| 久久久极品av| 亚洲综合社区网| 最近的2019中文字幕免费一页| 亚洲精品一区在线观看香蕉| 国产精品69精品一区二区三区| 国产精品第七影院| 亚洲第一国产精品| 亚洲午夜国产成人av电影男同| 大胆欧美人体视频| 日韩精品视频在线观看免费| 国产裸体写真av一区二区| 在线看国产精品| 在线观看欧美日韩国产| 国产精品久久久久久久久久东京| 国产精品久久久久久久久久三级|