Docker 构建 Tomcat
构建 Tomcat
- 拉取镜像
docker pull tomcat
- 在路径
/usr/local/docker/myshop/ROOT
创建index.html- 如果没有对应的文件夹,则新建
vi index.html
# 内容为 hello Word!
- 运行容器
docker run -p 8080:8080 --name tomcat -d -v /usr/local/docker/myshop/ROOT:/usr/local/tomcat/webapps/ROOT tomcat
命令说明:
- -p 8080:8080:将容器的8080端口映射到主机的8080端口
- -v /usr/local/docker/myshop/ROOT:/usr/local/tomcat/webapps/ROOT:将主机中当前目录下的ROOT挂载到容器的/ROOT
证明数据卷内容共享
- Docker 实战之数据卷相关内容,查看我之前的相关文章
- 启动tomcat1
docker run -p 8081:8080 --name tomcat1 -d -v /usr/local/docker/myshop/ROOT:/usr/local/tomcat/webapps/ROOT tomcat
- 访问
http://192.168.25.129:8081/
、http://192.168.25.129:8080/
地址,得到的内容相同 - 证明了数据卷可以共享
- 验证完,停掉tomcat、tomcat1 容器,并删除这两个容器
Docker 构建 MySQL
- 拉取镜像
docker pull mysql:5.7.22
- 运行容器:
docker run -p 3306:3306 --name mysql \
-v /usr/local/docker/mysql/conf:/etc/mysql \
-v /usr/local/docker/mysql/logs:/var/log/mysql \
-v /usr/local/docker/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
-d mysql:5.7.22
-
命令参数:
- -p 3306:3306:将容器的3306端口映射到主机的3306端口
- -v /usr/local/docker/mysql/conf:/etc/mysql:将主机当前目录下的 conf 挂载到容器的 /etc/mysql
- -v /usr/local/docker/mysql/logs:/var/log/mysql:将主机当前目录下的 logs 目录挂载到容器的 /var/log/mysql
- -v /usr/local/docker/mysql/data:/var/lib/mysql:将主机当前目录下的 data 目录挂载到容器的 /var/lib/mysql
- -e MYSQL_ROOT_PASSWORD=123456:初始化root用户的密码
-
使用SQLyog连接成功
-
将容器里的文件复制到宿主机
docker cp mysql:/etc/mysql .
- 这条命令的意思就是:将mysql容器里
/etc/mysql
文件夹下的内容 复制到 宿主机的当前文件夹
部署项目到容器
- 上传本地的打包的ssm.zip到/usr/local/docker/myshop/ROOT所在的目录下
- 如果没有对应的文件夹,则新建
- 解压缩ssm.zip
unzip ssm.zip
- 删除ssm.zip
rm -rf ssm.zip
- 以挂载数据卷的方式在容器中启动项目
docker run -p 8080:8080 --name myshop -v /usr/local/docker/myshop/ROOT:/usr/local/tomcat/webapps/ROOT -d tomcat
- 查看项目日志
docker logs myshop
- 浏览器访问
http://192.168.25.129:8080/
成功访问…
你知道的越多,你不知道的越多。
有道无术,术尚可求,有术无道,止于术。
如有其它问题,欢迎大家留言,我们一起讨论,一起学习,一起进步