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下的管理页面,需要修改两个地方:
- 打开/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+" /> - 打开conf/tomcat-users.xml,添加节点(原来的说明节点注释掉了)
<role rolename="manager-gui"/>
<user password="admin" username="tomcat" roles="manager-gui" />
》做卷挂载的时候,如果配置文件要挂载,那么一定文件夹内不能空,如果空的话,会把容器中的内容给整没。容器就运行不起来
这个原理可以理解为,容器在生成默认文件时,看到挂载进来文件夹了,就不会再创建了,不然把挂载进来的东西给盖掉,就不能复用数据了。