003-DockerCompose部署积累

运行MySQL

version: '3'
services: 
  mysql: 
    container_name: mysql
    restart: always
    image: mysql:5.7
    ports: 
      - "3306:3306"
    volumes: 
      - ./mysql/conf:/etc/mysql/conf.d
      - ./mysql/logs:/logs
      - ./mysql/data:/var/lib/mysql
    command: [
      'mysqld',
      '--innodb-buffer-pool-size=80M',
      '--character-set-server=utf8mb4',
      '--collation-server=utf8mb4_unicode_ci',
      '--default-time-zone=+8:00',
      '--lower-case-table-names=1'
    ]
    environment: 
      MYSQL_ROOT_PASSWORD: 123456

 

运行Tomcat

version: '3'
services: 
  tomcat: 
    container_name: tomcat
    restart: always
    image: tomcat:9.0
    ports: 
      - "8100:8080"
    user: root
    # 使容器内的root拥有真正的root权限,这样比如执行systemctl命令时,是可以执行的
    privileged: true
    environment:
      TZ: Asia/Shanghai
    volumes: 
      - ./tomcat/webapps:/usr/local/tomcat/webapps
      - ./tomcat/logs:/usr/local/tomcat/logs
      # 如果想将配置文件也挂载出来的话,那么就需要先在配置中加入配置文件,不然的话,内部的tomcat运行时,会认为没有配置,从而结束运行
      - ./tomcat/conf:/usr/local/tomcat/conf

》如果一个tomcat要部署多个站点,可以把原本tomcat下的内容放上,便于管理和使用;

》同时,如果需要放开tomcat下的管理页面,需要修改两个地方:

  1. 打开/webapps/manager/META-INF/目录下context.xml文件【注意不是conf/目录下的context.xml文件】,修改节点值 

    <Valve className="org.apache.catalina.valves.RemoteAddrValve"
    allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1|\d+\.\d+\.\d+\.\d+" />

  2. 打开conf/tomcat-users.xml,添加节点(原来的说明节点注释掉了) 

    <role rolename="manager-gui"/>
    <user password="admin" username="tomcat" roles="manager-gui" />

》做卷挂载的时候,如果配置文件要挂载,那么一定文件夹内不能空,如果空的话,会把容器中的内容给整没。容器就运行不起来

这个原理可以理解为,容器在生成默认文件时,看到挂载进来文件夹了,就不会再创建了,不然把挂载进来的东西给盖掉,就不能复用数据了。

 

posted on 2022-10-30 17:05  走调的钢琴  阅读(40)  评论(0编辑  收藏  举报