Docker之docker volume 挂载到容器(Windows下,volume目录挂载在容器、四)(第十四篇)

前2篇都是相对于docker的运行环境Linux而来的,但是我们现实环境中,开发环境中都是使用的是Windows,所有很有必要学会在Windows下挂载容器,如果你自己的机器也是Linux,那就不需要担心什么了,直接和上面一样,但是你如果是Windows系统,那么就有点麻烦了,具体怎么操作,看一下我的案例吧。

首先docker容器的LinuxWindows支持并不是很高,他只对C:\Users 目录下进行挂载,其他目录都没有办法挂载,除非用VirtualBox修改这个虚拟机的共享目录设定,否则在虚拟机里只能看到C:\Users以下的文件

Docker之docker volume 挂载到容器(Windows下,volume目录挂载在容器、四)(第十四篇)

可以看到Linux系统只有关联到本地C:\Users这个目录,其他的目录都找不到,那么我们就在这个目录下进行挂载操作

 docker run -d -p 8888:8080 -v /c/Users/systemDir:/usr/local/log balance

Docker之docker volume 挂载到容器(Windows下,volume目录挂载在容器、四)(第十四篇)

我们看到已经能够完美的挂载了,其他实验方法可以自行测试。

其实Windows下最主要的是要找对位置,其他的逻辑和之前的是一样的,还是Windows下的docker是在一个Linux虚拟机环境下运行的,这一点非常重要!

volume/数据卷容器(--volumes-from)

创建的方式所谓有一点不同,就是要在挂载的文件下创建一个数据卷容器,专门用户其他容器挂载,但是操作起来和挂载差不多,就是多了一个创建db.properties 文件

比如在挂载目录/data 下面创建一个/data/dbdata,然后再在里面创建一个db.properties 文件

首先启动一个容器

docker run -it -d -p 8888:8080 -v /data/dbdata --name dbdata  balance

/data/dbdata,然后再在里面创建一个db.properties 文件

然后再起一个容器

docker run -it -d -p 9999:8080 --volumes-from dbdata jpress

使用命令docker inspect时,发现他们的Mounts下的Source都是一样的,说明它们都绑定到宿主机的同一个目录,所以当某个容器的挂载修改时,其他容器也看到了同样的效果

Dockerfile 文件构建的时候设置volume

VOLUME /data

这家就不需要每次启动容器的时候再指定挂载目录了