场景
Ubuntu Server 16.04 LTS上使用Docker部署Tomcat:
https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/98329796
Linux上操作Docker守护态运行:
https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/99116005
数据卷
数据卷是一个可供一个或多个容器使用的特殊目录,它绕过 UFS,提供很多有用的特性:
数据卷 可以在容器之间共享和重用
对 数据卷 的修改会立马生效
对 数据卷 的更新,不会影响镜像
数据卷 默认会一直存在,即使容器被删除
目的
启动两个容器,让这两个容器使用同一个数据卷ROOT下的index.html
实现
来到 /usr/local/docker/tomcat目录下,新建目录ROOT,并进入ROO目录,新建index.html文件。
启动容器时并设置数据卷
docker run -p 8080:8080 --name tomcat -d -v /usr/local/docker/tomcat/ROOT:/usr/local/tomcat/webapps/ROOT tomcat
注:
docker run 是启动容器的命令;-p代表端口号的映射;第一个8080是宿主机的端口;第二个8080是容器的端口;
--name 表示名字标识;-d 表示以守护态运行;-v 就是表示数据卷的设置,左边是宿主机的位置,:右边是容器的位置,这就代表
以宿主机/usr/local/docker/tomcat/ROOT的ROOT目录代替容器中/usr/local/tomcat/webapps/ROOT的ROOT目录;
tomcat代表镜像名。
列出容器
docker ps
以终端交互的方式进入容器
docker exec -it tomcat bash
可以看到此时ROOT下已经替换成了数据卷的内容,输入exit退出交互。
启动第二个容器
docker run -p 8081:8080 --name tomcat1 -d -v /usr/local/docker/tomcat/ROOT:/usr/local/tomcat/webapps/ROOT tomcat
此时将宿主机的端口号改为8081,并将镜像名字修改为tomcat1。
验证效果
在宿主机中打开两个浏览器分别输入
ip:8080和ip:8081