1. 使用docker-compose运行tomcat容器:
1>. 创建要运行tomcat容器的yml文件(tomcat.yml):
[root@centos7 ~]# mkdir /dockercompose
[root@centos7 ~]# cd /dockercompose/
[root@centos7 dockercompose]# vim tomcat.yml
version: '3.1' ##指定该docker-compose的版本
services:
tomcat: ##指定服务名称为tomcat
restart: always ##设置重启策略为always
image: tomcat ##指定使用的镜像名
container_name: tomcat ##指定容器名
ports: ##指定映射的端口(宿主机端口:容器内部端口)
- 8080:8080
volumes: ##指定容器中指定目录的数据持久化挂载到宿主机的目录
- /data/tomcat/webapps:/usr/local/tomcat/webapps
environment: ##设置环境变量
TZ: Asia/Shanghai
2>. 运行tomcat.yml文件:
##将tomcat.yml文件放在前台运行
[root@centos7 dockercompose]# docker-compose -f tomcat.yml up
##将tomcat.yml文件放在后台运行
[root@centos7 dockercompose]# docker-compose -f tomcat.yml up -d
选项: -d: 表示在后台运行docker compose文件
-f: 若文件名不是" docker-compose.yml ",则要通过-f选项指定文件名
3>. 因为这里做了宿主机和容器目录的映射,因此需要将容器中的/usr/local/tomcat/webapps.dist目录下的所有文件复制到容器中的/usr/local/tomcat/webapps目录下,才可以访问到tomcat主页。
[root@centos7 dockercompose]# docker exec -it tomcat bash ##进入名为tomcat的容器
root@efe0da4cc822:/usr/local/tomcat# cp -r webapps.dist/* webapps/ ##复制数据
root@efe0da4cc822:/usr/local/tomcat# ls webapps
ROOT docs examples host-manager manager
root@efe0da4cc822:/usr/local/tomcat# exit ##退出容器
4>. 访问宿主机的8080端口进行检测:

2. 使用docker-compose运行mysql,adminer,jpress容器:
1>. 创建要运行mysql,adminer,jpress容器的yml文件(mysql.yml):
[root@centos7 dockercompose]# vim mysql.yml
version: '3.1' ##指定docker-compose文件的版本
services:
mysql: ##指定服务名为mysql
restart: always ##设置重启策略为always
image: mysql:5.7 ##指定要运行的镜像为mysql:5.7
container_name: mysql ##指定容器名
ports: ##指定映射的端口(宿主机端口:容器内部端口)
- 3306:3306
environment: ##设置环境便变量
TZ: Asia/Shanghai ##设置时区
MYSQL_ROOT_PASSWORD: 123456 ##设置数据库登录密码
command: ##设置容器运行时执行的命令
--character-set-server=utf8mb4
--collation-server=utf8mb4_general_ci
--explicit_defaults_for_timestamp=true
--lower_case_table_names=1
--max_allowed_packet=128M
--sql_mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO"
volumes: ##指定容器中指定目录的数据持久化挂载到宿主机的数据卷
- mysql-data:/var/lib/mysql
adminer: ##指定服务名为adminer
image: adminer ##指定要运行的镜像为adminer adminer是一个mysql数据库的web工具
container_name: adminer ##指定容器名
restart: always ##设置重启策略为always
ports: ##指定映射的端口(宿主机端口:容器内部端口)
- 8081:8080
depends_on: ##设置容器的依赖关系,该adminer容器关联mysql容器
- mysql
jpress: ##指定服务名为jpress
image: jpressio/jpress ##指定要运行的镜像为jpressio/jpress
container_name: jpress ##指定容器名
ports: ##指定映射的端口(宿主机端口:容器内部端口)
- 8082:8080
restart: always ##设置重启策略为always
links: ##设置容器之间的链接,将mysql容器链接到jpress容器
- mysql
volumes: ##指定宿主机上的数据卷
mysql-data:
2>. 运行mysql.yml文件:若宿主机中没有文件中用到的镜像,则会先拉取镜像后再运行。

3>. 访问宿主机8081端口,检测adminer容器的web的页面:

4>. 输入登录信息进行登录:

5>. 创建数据库jpress:
6>. 创建用户jpress,密码随便:
7>. 访问宿主机的8082端口,检测jpress容器并搭建jpress论坛:


本文通过docker-compose详细介绍了如何启动和配置tomcat及mysql容器,包括创建yml配置文件,运行容器,设置宿主机与容器的目录映射,以及通过adminer创建数据库和用户,最后成功访问jpress论坛。
6万+

被折叠的 条评论
为什么被折叠?



