启动Docker容器时挂载宿主机的目录,可以用-v参数指定。启动一个centos容器,宿主机的/test目录挂载到容器的/soft目录,可通过以下方式指定:
# docker run -it -v /test:/soft centos /bin/bash
这样在容器启动后,容器内就会主动创建/soft的目录。-v参数中,冒号":"前面的目录是宿主机目录,后面的目录是容器内目录。
在容器中修改目录的属主和属组,对应的挂载点会被修改。演示下,先开启一个容器查看该容器内的/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 victor
victor:x:1000:1000::/home/victor:/bin/bash
victor的UID为1000,宿主机内1000对应的用户就是mycat。
[root@localhost ~]# cat /etc/passwd |grep 1000
mycat:x:1000:1000::/home/mycat:/bin/bash
以上,就是关于Docker目录挂载的相关内容,Docker作为一种容器化技术,为应用程序和其依赖项打包到一个轻量级、可移植容器中的方法,为开发测试和生产等提供在本地构建容器和生产环境。如果您使用Docker过程中还有疑惑可以来华纳云新闻中心找寻答案。