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论坛:

