关于Docker目录挂载的总结
<p>Docker容器启动的时候,如果要挂载宿主机的一个目录,可以用-v参数指定。</p><p>譬如我要启动一个centos容器,宿主机的/test目录挂载到容器的/soft目录,可通过以下方式指定:</p>
<p># docker run -it -v /test:/soft centos /bin/bash</p>
<p>这样在容器启动后,容器内会自动创建/soft的目录。通过这种方式,我们可以明确一点,即-v参数中,冒号":"前面的目录是宿主机目录,后面的目录是容器内目录。</p>
<p>貌似简单,其实不然,下面我们来验证一下:</p>
<p><strong><span style="color: rgba(0, 128, 0, 1)">一、容器目录不可以为相对路径</span></strong></p>
<div class="cnblogs_code">
<pre><span style="color: rgba(255, 0, 0, 1)">[</span><span style="color: rgba(255, 0, 0, 1)">root@localhost ~</span><span style="color: rgba(255, 0, 0, 1)">]</span># docker run <span style="color: rgba(128, 128, 128, 1)">-</span>it <span style="color: rgba(128, 128, 128, 1)">-</span>v <span style="color: rgba(128, 128, 128, 1)">/</span>test:soft centos <span style="color: rgba(128, 128, 128, 1)">/</span>bin<span style="color: rgba(128, 128, 128, 1)">/</span><span style="color: rgba(0, 0, 0, 1)">bash
invalid value "</span><span style="color: rgba(128, 128, 128, 1)">/</span>test:soft" <span style="color: rgba(0, 0, 255, 1)">for</span> flag <span style="color: rgba(128, 128, 128, 1)">-</span>v: soft <span style="color: rgba(0, 0, 255, 1)">is</span> <span style="color: rgba(128, 128, 128, 1)">not</span><span style="color: rgba(0, 0, 0, 1)"> an absolute path
See </span><span style="color: rgba(255, 0, 0, 1)">'</span><span style="color: rgba(255, 0, 0, 1)">docker run --help</span><span style="color: rgba(255, 0, 0, 1)">'</span>.</pre>
</div>
<p>直接报错,提示soft不是一个绝对路径,所谓的绝对路径,必须以下斜线“/”开头。</p>
<p><strong><span style="color: rgba(0, 128, 0, 1)">二、宿主机目录如果不存在,则会自动生成</span></strong></p>
<p>如果宿主机中存在/test目录,首先删除它</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(255, 0, 0, 1)">[</span><span style="color: rgba(255, 0, 0, 1)">root@localhost ~</span><span style="color: rgba(255, 0, 0, 1)">]</span># rm <span style="color: rgba(128, 128, 128, 1)">-</span>rf <span style="color: rgba(128, 128, 128, 1)">/</span><span style="color: rgba(0, 0, 0, 1)">test
</span><span style="color: rgba(255, 0, 0, 1)">[</span><span style="color: rgba(255, 0, 0, 1)">root@localhost ~</span><span style="color: rgba(255, 0, 0, 1)">]</span># ls <span style="color: rgba(128, 128, 128, 1)">/</span><span style="color: rgba(0, 0, 0, 1)">
binbootdevetchomeliblib64mediamntopt</span><span style="color: rgba(0, 0, 255, 1)">proc</span>rootrunsbinsrvsystmpusr<span style="color: rgba(255, 0, 255, 1)">var</span></pre>
</div>
<p>启动容器</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(255, 0, 0, 1)">[</span><span style="color: rgba(255, 0, 0, 1)">root@localhost ~</span><span style="color: rgba(255, 0, 0, 1)">]</span># docker run <span style="color: rgba(128, 128, 128, 1)">-</span>it <span style="color: rgba(128, 128, 128, 1)">-</span>v <span style="color: rgba(128, 128, 128, 1)">/</span>test:<span style="color: rgba(128, 128, 128, 1)">/</span>soft centos <span style="color: rgba(128, 128, 128, 1)">/</span>bin<span style="color: rgba(128, 128, 128, 1)">/</span><span style="color: rgba(0, 0, 0, 1)">bash
</span><span style="color: rgba(255, 0, 0, 1)">[</span><span style="color: rgba(255, 0, 0, 1)">root@a487a3ca7997 /</span><span style="color: rgba(255, 0, 0, 1)">]</span><span style="color: rgba(0, 0, 0, 1)"># ls
bindevetchomeliblib64lost</span><span style="color: rgba(128, 128, 128, 1)">+</span>foundmediamntopt<span style="color: rgba(0, 0, 255, 1)">proc</span>rootrunsbinsoftsrvsystmpusr<span style="color: rgba(255, 0, 255, 1)">var</span></pre>
</div>
<p>查看宿主机,发现新增了一个/test目录</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(255, 0, 0, 1)">[</span><span style="color: rgba(255, 0, 0, 1)">root@localhost ~</span><span style="color: rgba(255, 0, 0, 1)">]</span># ls <span style="color: rgba(128, 128, 128, 1)">/</span><span style="color: rgba(0, 0, 0, 1)">
binbootdevetchomeliblib64mediamntopt</span><span style="color: rgba(0, 0, 255, 1)">proc</span>rootrunsbinsrvsystesttmpusr<span style="color: rgba(255, 0, 255, 1)">var</span></pre>
</div>
<p><strong><span style="color: rgba(0, 128, 0, 1)">三、宿主机的目录如果为相对路径呢?</span></strong></p>
<p>这次,我们换个目录名test1试试</p>
<div class="cnblogs_code">
<pre># docker run <span style="color: rgba(128, 128, 128, 1)">-</span>it <span style="color: rgba(128, 128, 128, 1)">-</span>v test1:<span style="color: rgba(128, 128, 128, 1)">/</span>soft centos <span style="color: rgba(128, 128, 128, 1)">/</span>bin<span style="color: rgba(128, 128, 128, 1)">/</span>bash</pre>
</div>
<p>再到宿主机上查看是否新增了一个/test1目录,结果没有,是不是因为我用的是相对路径,所以生成的test1目录在当前目录下,结果发现还是没有。那容器内的/soft目录挂载到哪里去了?通过docker inspect命令,查看容器“Mounts”那一部分,我们可以得到这个问题的答案。</p>
<div class="cnblogs_code">
<pre> "Mounts": <span style="color: rgba(255, 0, 0, 1)">[</span><span style="color: rgba(255, 0, 0, 1)">
{
"Name": "test1",
"Source": "/var/lib/docker/volumes/test1/_data",
"Destination": "/soft",
"Driver": "local",
"Mode": "z",
"RW": true
}
</span><span style="color: rgba(255, 0, 0, 1)">]</span>,</pre>
</div>
<p>可以看出,容器内的/soft目录挂载的是宿主机上的/var/lib/docker/volumes/test1/_data目录</p>
<p>原来,所谓的相对路径指的是/var/lib/docker/volumes/,与宿主机的当前目录无关。</p>
<p><strong><span style="color: rgba(0, 128, 0, 1)">四、如果只是-v指定一个目录,这个又是如何对应呢?</span></strong></p>
<p>启动一个容器</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(255, 0, 0, 1)">[</span><span style="color: rgba(255, 0, 0, 1)">root@localhost ~</span><span style="color: rgba(255, 0, 0, 1)">]</span># docker run <span style="color: rgba(128, 128, 128, 1)">-</span>it <span style="color: rgba(128, 128, 128, 1)">-</span>v <span style="color: rgba(128, 128, 128, 1)">/</span>test2 centos <span style="color: rgba(128, 128, 128, 1)">/</span>bin<span style="color: rgba(128, 128, 128, 1)">/</span><span style="color: rgba(0, 0, 0, 1)">bash
</span><span style="color: rgba(255, 0, 0, 1)">[</span><span style="color: rgba(255, 0, 0, 1)">root@ea24067bc902 /</span><span style="color: rgba(255, 0, 0, 1)">]</span><span style="color: rgba(0, 0, 0, 1)"># ls
bindevetchomeliblib64lost</span><span style="color: rgba(128, 128, 128, 1)">+</span>foundmediamntopt<span style="color: rgba(0, 0, 255, 1)">proc</span>rootrunsbinsrvsystest2tmpusr<span style="color: rgba(255, 0, 255, 1)">var</span></pre>
</div>
<p>同样使用docker inspect命令查看宿主机的挂载目录</p>
<div class="cnblogs_code">
<pre> "Mounts": <span style="color: rgba(255, 0, 0, 1)">[</span><span style="color: rgba(255, 0, 0, 1)">
{
"Name": "96256232eb74edb139d652746f0fe426e57fbacdf73376963e3acdb411b3d73a",
"Source": "/var/lib/docker/volumes/96256232eb74edb139d652746f0fe426e57fbacdf73376963e3acdb411b3d73a/_data",
"Destination": "/test2",
"Driver": "local",
"Mode": "",
"RW": true
}
</span><span style="color: rgba(255, 0, 0, 1)">]</span>,</pre>
</div>
<p>可以看出,同3中的结果类似,只不过,它不是相对路径的目录名,而是随机生成的一个目录名。</p>
<p><strong><span style="color: rgba(0, 128, 0, 1)">五、如果在容器内修改了目录的属主和属组,那么对应的挂载点是否会修改呢?</span></strong></p>
<p>首先开启一个容器,查看容器内/soft目录的属性</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(255, 0, 0, 1)">[</span><span style="color: rgba(255, 0, 0, 1)">root@localhost ~</span><span style="color: rgba(255, 0, 0, 1)">]</span># docker run <span style="color: rgba(128, 128, 128, 1)">-</span>it <span style="color: rgba(128, 128, 128, 1)">-</span>v <span style="color: rgba(128, 128, 128, 1)">/</span>test:<span style="color: rgba(128, 128, 128, 1)">/</span>soft centos <span style="color: rgba(128, 128, 128, 1)">/</span>bin<span style="color: rgba(128, 128, 128, 1)">/</span><span style="color: rgba(0, 0, 0, 1)">bash
</span><span style="color: rgba(255, 0, 0, 1)">[</span><span style="color: rgba(255, 0, 0, 1)">root@b5ed8216401f /</span><span style="color: rgba(255, 0, 0, 1)">]</span># ll <span style="color: rgba(128, 128, 128, 1)">-</span>d <span style="color: rgba(128, 128, 128, 1)">/</span>soft<span style="color: rgba(128, 128, 128, 1)">/</span><span style="color: rgba(0, 0, 0, 1)">
drwxr</span><span style="color: rgba(128, 128, 128, 1)">-</span>xr<span style="color: rgba(128, 128, 128, 1)">-</span>x <span style="color: rgba(128, 0, 0, 1); font-weight: bold">2</span> root root <span style="color: rgba(128, 0, 0, 1); font-weight: bold">6</span> Sep <span style="color: rgba(128, 0, 0, 1); font-weight: bold">24</span> <span style="color: rgba(128, 0, 0, 1); font-weight: bold">03</span>:<span style="color: rgba(128, 0, 0, 1); font-weight: bold">48</span> <span style="color: rgba(128, 128, 128, 1)">/</span>soft<span style="color: rgba(128, 128, 128, 1)">/</span></pre>
</div>
<p>查看宿主机内/test目录的属性</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(255, 0, 0, 1)">[</span><span style="color: rgba(255, 0, 0, 1)">root@localhost ~</span><span style="color: rgba(255, 0, 0, 1)">]</span># ll <span style="color: rgba(128, 128, 128, 1)">-</span>d <span style="color: rgba(128, 128, 128, 1)">/</span>test<span style="color: rgba(128, 128, 128, 1)">/</span><span style="color: rgba(0, 0, 0, 1)">
drwxr</span><span style="color: rgba(128, 128, 128, 1)">-</span>xr<span style="color: rgba(128, 128, 128, 1)">-</span>x <span style="color: rgba(128, 0, 0, 1); font-weight: bold">2</span> root root <span style="color: rgba(128, 0, 0, 1); font-weight: bold">6</span> Sep <span style="color: rgba(128, 0, 0, 1); font-weight: bold">24</span> <span style="color: rgba(128, 0, 0, 1); font-weight: bold">11</span>:<span style="color: rgba(128, 0, 0, 1); font-weight: bold">48</span> <span style="color: rgba(128, 128, 128, 1)">/</span>test<span style="color: rgba(128, 128, 128, 1)">/</span></pre>
</div>
<p>在容器内新建用户,修改/soft的属主和属组</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(255, 0, 0, 1)">[</span><span style="color: rgba(255, 0, 0, 1)">root@b5ed8216401f /</span><span style="color: rgba(255, 0, 0, 1)">]</span><span style="color: rgba(0, 0, 0, 1)"># useradd victor
</span><span style="color: rgba(255, 0, 0, 1)">[</span><span style="color: rgba(255, 0, 0, 1)">root@b5ed8216401f /</span><span style="color: rgba(255, 0, 0, 1)">]</span># chown <span style="color: rgba(128, 128, 128, 1)">-</span>R victor.victor <span style="color: rgba(128, 128, 128, 1)">/</span>soft<span style="color: rgba(128, 128, 128, 1)">/</span>
<span style="color: rgba(255, 0, 0, 1)">[</span><span style="color: rgba(255, 0, 0, 1)">root@b5ed8216401f /</span><span style="color: rgba(255, 0, 0, 1)">]</span># ll <span style="color: rgba(128, 128, 128, 1)">-</span>d <span style="color: rgba(128, 128, 128, 1)">/</span>soft<span style="color: rgba(128, 128, 128, 1)">/</span><span style="color: rgba(0, 0, 0, 1)">
drwxr</span><span style="color: rgba(128, 128, 128, 1)">-</span>xr<span style="color: rgba(128, 128, 128, 1)">-</span>x <span style="color: rgba(128, 0, 0, 1); font-weight: bold">2</span> victor victor <span style="color: rgba(128, 0, 0, 1); font-weight: bold">6</span> Sep <span style="color: rgba(128, 0, 0, 1); font-weight: bold">24</span> <span style="color: rgba(128, 0, 0, 1); font-weight: bold">03</span>:<span style="color: rgba(128, 0, 0, 1); font-weight: bold">48</span> <span style="color: rgba(128, 128, 128, 1)">/</span>soft<span style="color: rgba(128, 128, 128, 1)">/</span></pre>
</div>
<p>再来看看宿主机内/test目录的属主和属组是否会发生变化?</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(255, 0, 0, 1)">[</span><span style="color: rgba(255, 0, 0, 1)">root@localhost ~</span><span style="color: rgba(255, 0, 0, 1)">]</span># ll <span style="color: rgba(128, 128, 128, 1)">-</span>d <span style="color: rgba(128, 128, 128, 1)">/</span>test<span style="color: rgba(128, 128, 128, 1)">/</span><span style="color: rgba(0, 0, 0, 1)">
drwxr</span><span style="color: rgba(128, 128, 128, 1)">-</span>xr<span style="color: rgba(128, 128, 128, 1)">-</span>x <span style="color: rgba(128, 0, 0, 1); font-weight: bold">2</span> mycat mycat <span style="color: rgba(128, 0, 0, 1); font-weight: bold">6</span> Sep <span style="color: rgba(128, 0, 0, 1); font-weight: bold">24</span> <span style="color: rgba(128, 0, 0, 1); font-weight: bold">11</span>:<span style="color: rgba(128, 0, 0, 1); font-weight: bold">48</span> <span style="color: rgba(128, 128, 128, 1)">/</span>test<span style="color: rgba(128, 128, 128, 1)">/</span></pre>
</div>
<p>竟然变为mycat了。。。</p>
<p>原来,这个与UID有关系,UID,即“用户标识号”,是一个整数,系统内部用它来标识用户。一般情况下它与用户名是一一对应的。</p>
<p>首先查看容器内victor对应的UID是多少,</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(255, 0, 0, 1)">[</span><span style="color: rgba(255, 0, 0, 1)">root@b5ed8216401f /</span><span style="color: rgba(255, 0, 0, 1)">]</span># cat <span style="color: rgba(128, 128, 128, 1)">/</span>etc<span style="color: rgba(128, 128, 128, 1)">/</span>passwd <span style="color: rgba(128, 128, 128, 1)">|</span><span style="color: rgba(0, 0, 0, 1)"> grep victor
victor:x:</span><span style="color: rgba(128, 0, 0, 1); font-weight: bold">1000</span>:<span style="color: rgba(128, 0, 0, 1); font-weight: bold">1000</span>::<span style="color: rgba(128, 128, 128, 1)">/</span>home<span style="color: rgba(128, 128, 128, 1)">/</span>victor:<span style="color: rgba(128, 128, 128, 1)">/</span>bin<span style="color: rgba(128, 128, 128, 1)">/</span>bash</pre>
</div>
<p>victor的UID为1000,那么宿主机内1000对应的用户是谁呢?</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(255, 0, 0, 1)">[</span><span style="color: rgba(255, 0, 0, 1)">root@localhost ~</span><span style="color: rgba(255, 0, 0, 1)">]</span># cat <span style="color: rgba(128, 128, 128, 1)">/</span>etc<span style="color: rgba(128, 128, 128, 1)">/</span>passwd <span style="color: rgba(128, 128, 128, 1)">|</span>grep <span style="color: rgba(128, 0, 0, 1); font-weight: bold">1000</span><span style="color: rgba(0, 0, 0, 1)">
mycat:x:</span><span style="color: rgba(128, 0, 0, 1); font-weight: bold">1000</span>:<span style="color: rgba(128, 0, 0, 1); font-weight: bold">1000</span>::<span style="color: rgba(128, 128, 128, 1)">/</span>home<span style="color: rgba(128, 128, 128, 1)">/</span>mycat:<span style="color: rgba(128, 128, 128, 1)">/</span>bin<span style="color: rgba(128, 128, 128, 1)">/</span>bash</pre>
</div>
<p>可以看出,宿主机内UID 1000对应的用户是mycat。</p>
<p><strong><span style="color: rgba(0, 128, 0, 1)">六、容器销毁了,在宿主机上新建的挂载目录是否会消失?</span></strong></p>
<p>在这里,主要验证两种情况:一、指定了宿主机目录,即 -v /test:/soft。二、没有指定宿主机目录,即-v /soft</p>
<p>第一种情况:</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(255, 0, 0, 1)">[</span><span style="color: rgba(255, 0, 0, 1)">root@localhost ~</span><span style="color: rgba(255, 0, 0, 1)">]</span># rm <span style="color: rgba(128, 128, 128, 1)">-</span>rf <span style="color: rgba(128, 128, 128, 1)">/</span><span style="color: rgba(0, 0, 0, 1)">test --首先删除宿主机的/test目录
</span><span style="color: rgba(255, 0, 0, 1)">[</span><span style="color: rgba(255, 0, 0, 1)">root@localhost ~</span><span style="color: rgba(255, 0, 0, 1)">]</span># ls <span style="color: rgba(128, 128, 128, 1)">/ <span style="color: rgba(0, 0, 0, 1)"> --可以看到,宿主机上无/test目录</span></span><span style="color: rgba(0, 0, 0, 1)">
binbootdevetchomeliblib64mediamntopt</span><span style="color: rgba(0, 0, 255, 1)">proc</span>rootrunsbinsrvsystmpusr<span style="color: rgba(255, 0, 255, 1)">var</span>
<span style="color: rgba(255, 0, 0, 1)">[</span><span style="color: rgba(255, 0, 0, 1)">root@localhost ~</span><span style="color: rgba(255, 0, 0, 1)">]</span># docker run <span style="color: rgba(128, 128, 128, 1)">-</span>it <span style="color: rgba(0, 128, 128, 1)">--</span><span style="color: rgba(0, 128, 128, 1)">name=centos_test -v /test:/soft centos /bin/bash<span style="color: rgba(0, 0, 0, 1)">--启动容器,为了删除方便,我用--name参数指定了容器的名字</span></span>
<span style="color: rgba(255, 0, 0, 1)">[</span><span style="color: rgba(255, 0, 0, 1)">root@82ad7f3a779a /</span><span style="color: rgba(255, 0, 0, 1)">]</span># <span style="color: rgba(0, 0, 255, 1)">exit</span>
<span style="color: rgba(0, 0, 255, 1)">exit</span>
<span style="color: rgba(255, 0, 0, 1)">[</span><span style="color: rgba(255, 0, 0, 1)">root@localhost ~</span><span style="color: rgba(255, 0, 0, 1)">]</span><span style="color: rgba(0, 0, 0, 1)"># docker rm centos_test --删除容器
centos_test
</span><span style="color: rgba(255, 0, 0, 1)">[</span><span style="color: rgba(255, 0, 0, 1)">root@localhost ~</span><span style="color: rgba(255, 0, 0, 1)">]</span># ls <span style="color: rgba(128, 128, 128, 1)">/<span style="color: rgba(0, 0, 0, 1)"> --发现 /test目录依旧存在</span></span><span style="color: rgba(0, 0, 0, 1)">
binbootdevetchomeliblib64mediamntopt</span><span style="color: rgba(0, 0, 255, 1)">proc</span>rootrunsbinsrvsystesttmpusr<span style="color: rgba(255, 0, 255, 1)">var</span></pre>
</div>
<p>可以看出,即便容器销毁了,新建的挂载目录不会消失。进一步也可验证,如果宿主机目录的属主和属组发生了变化,容器销毁后,宿主机目录的属主和属组不会恢复到挂载之前的状态。</p>
<p>第二种情况,通过上面的验证知道,如果没有指定宿主机的目录,则容器会在/var/lib/docker/volumes/随机配置一个目录,那么我们看看这种情况下的容器销毁是否会导致相应目录的删除</p>
<p>首先启动容器</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(255, 0, 0, 1)">[</span><span style="color: rgba(255, 0, 0, 1)">root@localhost ~</span><span style="color: rgba(255, 0, 0, 1)">]</span># docker run <span style="color: rgba(128, 128, 128, 1)">-</span>it <span style="color: rgba(0, 128, 128, 1)">--</span><span style="color: rgba(0, 128, 128, 1)">name=centos_test -v /soft centos /bin/bash</span>
<span style="color: rgba(255, 0, 0, 1)">[</span><span style="color: rgba(255, 0, 0, 1)">root@6b75579ec934 /</span><span style="color: rgba(255, 0, 0, 1)">]</span># <span style="color: rgba(0, 0, 255, 1)">exit</span>
<span style="color: rgba(0, 0, 255, 1)">exit</span></pre>
</div>
<p>通过docker inspect命令查看容器在宿主机上生成的挂载目录</p>
<div class="cnblogs_code">
<pre> "Mounts": <span style="color: rgba(255, 0, 0, 1)">[</span><span style="color: rgba(255, 0, 0, 1)">
{
"Name": "b53164cb1c9f1917788638692fb22ad11994cf1fbbc2461b6c390cd3e10ea301",
"Source": "/var/lib/docker/volumes/b53164cb1c9f1917788638692fb22ad11994cf1fbbc2461b6c390cd3e10ea301/_data",
"Destination": "/soft",
"Driver": "local",
"Mode": "",
"RW": true
}
</span><span style="color: rgba(255, 0, 0, 1)">]</span>,</pre>
</div>
<p>对应的是/var/lib/docker/volumes/b53164cb1c9f1917788638692fb22ad11994cf1fbbc2461b6c390cd3e10ea301/_data目录</p>
<p>销毁容器,看目录是否存在</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(255, 0, 0, 1)">[</span><span style="color: rgba(255, 0, 0, 1)">root@localhost ~</span><span style="color: rgba(255, 0, 0, 1)">]</span><span style="color: rgba(0, 0, 0, 1)"># docker rm centos_test
centos_test
</span><span style="color: rgba(255, 0, 0, 1)">[</span><span style="color: rgba(255, 0, 0, 1)">root@localhost ~</span><span style="color: rgba(255, 0, 0, 1)">]</span># ll <span style="color: rgba(128, 128, 128, 1)">/</span><span style="color: rgba(255, 0, 255, 1)">var</span><span style="color: rgba(128, 128, 128, 1)">/</span>lib<span style="color: rgba(128, 128, 128, 1)">/</span>docker<span style="color: rgba(128, 128, 128, 1)">/</span>volumes<span style="color: rgba(128, 128, 128, 1)">/</span><span style="color: rgba(0, 0, 0, 1)">b53164cb1c9f1917788638692fb22ad11994cf1fbbc2461b6c390cd3e10ea301
total </span><span style="color: rgba(128, 0, 0, 1); font-weight: bold">0</span><span style="color: rgba(0, 0, 0, 1)">
drwxr</span><span style="color: rgba(128, 128, 128, 1)">-</span>xr<span style="color: rgba(128, 128, 128, 1)">-</span>x <span style="color: rgba(128, 0, 0, 1); font-weight: bold">2</span> root root <span style="color: rgba(128, 0, 0, 1); font-weight: bold">6</span> Sep <span style="color: rgba(128, 0, 0, 1); font-weight: bold">24</span> <span style="color: rgba(128, 0, 0, 1); font-weight: bold">14</span>:<span style="color: rgba(128, 0, 0, 1); font-weight: bold">25</span> _data</pre>
</div>
<p>发现该目录依旧存在,即便重启了docker服务,该目录依旧存在</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(255, 0, 0, 1)">[</span><span style="color: rgba(255, 0, 0, 1)">root@localhost ~</span><span style="color: rgba(255, 0, 0, 1)">]</span><span style="color: rgba(0, 0, 0, 1)"># systemctl restart docker
</span><span style="color: rgba(255, 0, 0, 1)">[</span><span style="color: rgba(255, 0, 0, 1)">root@localhost ~</span><span style="color: rgba(255, 0, 0, 1)">]</span># ll <span style="color: rgba(128, 128, 128, 1)">/</span><span style="color: rgba(255, 0, 255, 1)">var</span><span style="color: rgba(128, 128, 128, 1)">/</span>lib<span style="color: rgba(128, 128, 128, 1)">/</span>docker<span style="color: rgba(128, 128, 128, 1)">/</span>volumes<span style="color: rgba(128, 128, 128, 1)">/</span><span style="color: rgba(0, 0, 0, 1)">b53164cb1c9f1917788638692fb22ad11994cf1fbbc2461b6c390cd3e10ea301
total </span><span style="color: rgba(128, 0, 0, 1); font-weight: bold">0</span><span style="color: rgba(0, 0, 0, 1)">
drwxr</span><span style="color: rgba(128, 128, 128, 1)">-</span>xr<span style="color: rgba(128, 128, 128, 1)">-</span>x <span style="color: rgba(128, 0, 0, 1); font-weight: bold">2</span> root root <span style="color: rgba(128, 0, 0, 1); font-weight: bold">6</span> Sep <span style="color: rgba(128, 0, 0, 1); font-weight: bold">24</span> <span style="color: rgba(128, 0, 0, 1); font-weight: bold">14</span>:<span style="color: rgba(128, 0, 0, 1); font-weight: bold">25</span> _data</pre>
</div>
<p><strong><span style="color: rgba(0, 128, 0, 1)">七、挂载宿主机已存在目录后,在容器内对其进行操作,报“Permission denied”。</span></strong></p>
<p>可通过两种方式解决:</p>
<p>1> 关闭selinux。</p>
<p>临时关闭:# setenforce 0</p>
<p>永久关闭:修改/etc/sysconfig/selinux文件,将SELINUX的值设置为disabled。</p>
<p>2> 以特权方式启动容器 </p>
<p>指定--privileged参数</p>
<p>如:# docker run -it --privileged=true -v /test:/soft centos /bin/bash</p>
<p> </p><br><br>
来源:https://www.cnblogs.com/ivictor/p/4834864.html
頁:
[1]