Docker绑定通过权限和传播安装不同的行为

问题描述

这是Vagrantfile:

ARG MysqL_version

FROM MysqL/MysqL-server:$MysqL_version

RUN mkdir -p /var/log/MysqL  && \
    touch /var/log/MysqL/MysqLd.log && \
    touch /var/log/MysqL/MysqLd.error.log && \
    chown -R MysqL:MysqL /var/log/MysqL && \
    mkdir -p /var/lib/MysqL && \
    touch /var/lib/MysqL/temp.file4host.permissions && \
    chown -R MysqL:MysqL /var/lib/MysqL

使用8.0.21标签创建图像。将其命名为bm_my_sql

启动容器而不进行安装:

$ docker run --name no_volumes -d bm_my_sql:8.0.21

并对其进行调查:

$ docker exec -it no_volumes bash
bash-4.2# ls -lan /var/log/MysqL
...
-rw-r--r-- 1 27 27    4045 Aug 26 09:40 MysqLd.error.log
-rw-r--r-- 1 27 27 6091946 Aug 26 09:57 MysqLd.log

bash-4.2#ls -lan /var/lib/MysqL
total 183772
-rw-r----- 1 27 27   196608 Aug 26 09:42 #ib_16384_0.dblwr
-rw-r----- 1 27 27  8585216 Aug 26 09:40 #ib_16384_1.dblwr
drwxr-x--- 2 27 27     4096 Aug 26 09:40 #innodb_temp
drwxr-x--- 6 27 27     4096 Aug 26 09:40 .
drwxr-xr-x 1  0  0     4096 Jul 13 05:31 ..
-rw-r----- 1 27 27       56 Aug 26 09:40 auto.cnf
-rw-r----- 1 27 27      179 Aug 26 09:40 binlog.000001
-rw-r----- 1 27 27      361 Aug 26 09:40 binlog.000002

...

在两个文件/var/log/MysqL/var/lib/MysqL中都有文件文件夹和文件的权限:27:27(属于MysqL用户和组)

在主机上创建2个空文件夹:

mkdir -p /home/alex/a/b/empty
mkdir -p /home/alex/a/b/empty2

一个映射/home/alex/a/b/empty->/var/lib/MysqL在另一个映射/home/alex/a/b/empty2->/var/log/MysqL

中创建具有绑定安装的容器
docker run --name bm_em_2_nem_lib --mount type=bind,src=/home/alex/a/b/empty,dst=/var/lib/MysqL -d bm_my_sql:8.0.21
docker run --name bm_em_2_nem_log --mount type=bind,src=/home/alex/a/b/empty2,dst=/var/log/MysqL -d bm_my_sql:8.0.21

现在调查本地文件夹:

$ ls -lan /home/alex/a/b
drwxrwxr-x 6   27   27 4096 Aug 26 11:46 empty
drwxrwxr-x 2 1000 1000 4096 Aug 26 11:46 empty2
$ ls -lan /home/alex/a/b/empty
-rw-r----- 1   27   27 ...
$ ls -lan /home/alex/a/b/empty2
total 8
drwxrwxr-x 2 1000 1000 4096 Aug 26 11:46 .
drwxrwxr-x 7 1000 1000 4096 Aug 26 11:46 ..

我们看到,来自容器中/var/lib/MysqL内容和权限已复制到主机上的/home/alex/a/b/emtpy

但是使用/var/log/MysqL/home/alex/a/b/emtpy2并没有发生。在这两种情况下,主机上都存在空文件夹。在容器上-具有相同权限且不为空的文件夹。 但是在一种情况下,文件夹传播了,在一种情况下-不是。

还有什么可能会影响它?我想念什么?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)