docker-compose简单实例

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

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

 

 

 

 

 

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值