这一篇来说一个 Docker 容器启动的一个重点知识,挂载启动。但是将这个之前我们得先说另外一个东西,就是:宿主机与容器之间文件拷贝。
一、Docker 宿主机与容器之间文件拷贝
首先启动一个容器(这里我还是使用的 tomcat)
然后在宿主机 /home 下面随便上传点什么东西,比如说图片啊、zip 文件之类的,一会用于拷贝。
1. 宿主机 -> 容器
命令:docker cp 参数... 宿主机地址 容器ID:容器地址
这里我们将宿主机 /home/default.jpg 上传到容器 /usr/local/tomcat 下面,并且进行重命名一下。
然后我们进入到容器中查看一下,是不是存在一个 abc.jpg。
不难发现,这个是存在的。
2. 容器 -> 宿主机
命令:docker cp 参数... 容器ID:容器地址 宿主机地址
其实这两个命令就是一个命令,拷贝谁,谁就在前面。
我们这次把容器 /usr/local/tomcat 目录下所有东西拷贝到宿主机 /home/tomcat,这里不需要在宿主机下创建 tomcat。
可以看到,已经拷贝过来了,并且包括我们刚刚从宿主机同步过去的 default.jpg 图片。
!!!说一个重点,这里我们的操作是拷贝,也就是说哪怕我们现在把容器中的 abc.jpg 删了,也不会影响到我们刚刚拷贝到 /home/tomcat/abc.jpg 文件。
二、Docker 容器挂载目录启动
我们在说容器启动的时候,有说过一个参数:-v。
-v 就是在启动的时候将宿主机和容器的文件夹进行关联,实现数据同步(双向绑定,容器数据持久化)。这也就是说,我们以后不需要那么麻烦去进入到容器中修改一些配置啊之类的,直接在宿主机对应文件进行修改,然后会自动同步到容器中。
用法:-v /宿主机目录:/容器目录
如果是需要挂载多个,需要由多个 -v 组成。例如:-v xxx:xxx -v yyy:yyy
然后我们来访问一下这个 tomcat。
可以看到,是 404。接下来我们进入到宿主机,然后修改一下 webapps 这个文件。
可以看到,我们是在宿主机进行修改的文件,然后我们刷新页面~~~
可以看到,是没有问题的。(这里多刷新几次)这样我们以挂载目录的方式启动就完成了。
这一讲就讲到这里,有问题可以联系我:QQ 2100363119,欢迎大家访问我的个人网站:https://www.lemon1234.com