工作环境:win10专业版+VMWARE安装centos7+虚拟机centos7上安装docker容器php,nginx,mysql。
因为工作方便与效率的问题。我必须把我window工作代码项目文件夹共享给虚拟机centos7,
再通过docker run -v把共享文件挂载到容器中。这里就存在一个权限问题。所以折腾了一段时间。
第一步:window与虚拟机centos共享文件夹。
VMware的编辑虚拟机--选项--共享文件夹操作即可。可以百度查看。
然后到虚拟机通过ls /mnt查看是否有hgfs文件夹。假如有就不需要建立hgfs文件夹了。
查看共享是否有效。
vmware-hgfsclient
[root@localhost conf.d]# vmware-hgfsclient
code
Code是我共享的名字。
挂载共享文件到Linux系统
sudo vmhgfs-fuse .host:/code /mnt/hgfs
验证是否正常挂载
root@ubuntu:/home/caojj# mount -t vmhgfs .host:/F /mnt/hgfs
Error: cannot mount filesystem: No such device
root@ubuntu:/home/caojj# sudo vmhgfs-fuse .host:/F /mnt/hgfs
fuse: mountpoint is not empty
fuse: if you are sure this is safe, use the 'nonempty' mount option
这里表示为空,假如允许挂空文件,使用
00001.
sudo vmhgfs-fuse .host:/code /mnt/hgfs -o allow_other -o nonempty
(这个可以把放到/etc/rc.local,开机自动启动挂载操作,allow_other是允许别的用户读写权限,要不然该文件夹就会出现文件夹权限,特别nginx,php指向到该文件的时候就会出现问题。)
root@ubuntu:/home/caojj# cd /mnt/hgfs
root@ubuntu:/mnt/hgfs# ls
Code
修改docker的php容器,与nginx容器启动挂载文件。
方式一:修改配置文件(需停止docker服务)
1、停止docker服务
systemctl stop docker.service(关键,修改之前必须停止docker服务)
2、vim /var/lib/docker/containers/container-ID/config.v2.json
修改配置文件中的目录位置,然后保存退出
"MountPoints":{"/home":{"Source":"/docker","Destination":"/home","RW":true,"Name":"","Driver":"","Type":"bind","Propagation":"rprivate","Spec":{"Type":"bind","Source":"//docker/","Target":"/home"}}}
3、我还修改了hostconfig.json的挂载文件,之前我单独修改这个文件是不起作用的。后来我修改config.v2.json后,起到作用,我就搞不清楚这个文件需要不需要修改。但是最好同步修改比较好一些。
到/var/lib/docker/containers/容器id/下面去修改