1.拉取镜像:tomcat,mysql,redis等;
例: docker search tomcat
docker pull tomcat:8.0.52(拉取指定版本tomcat)
2.创建指定网段(可以使用默认网段,此处为了方便自己寻找,指定了特殊网段)
docker network create --subnet ip(例:172.18.0.0) (–gateway 127.18.1.1) networkName(自由指定的网段名)
3.启动镜像,生成容器
docker run -d --name tomcatName -p port(映射端口):3306 -v tomcat_volume:/usr/local/tomcat (–net=networkName --ip 指定网段) imageID(注:此段加粗字体需要自己填入对应参数,可以选择不指定网段)
4.修改mysql的配置文件,sql_mode=NO_AUTO_CREATE_USER
修改mysql容器中的etc/mysql/mysql.conf.d/mysqld.cnf文件,添加sql_mode
注:做此处修改,为了解决mysql版本产生的sql_mode=only_full_group_by数据库拷贝失败问题
5.建立数据库,创建相应数据表,函数等。修改即将部署的war包的配置文件
连接mysql配置 jdbc:mysql://mysql3303/mysqlName 可以使用容器名代替ip和端口,若不是使用
6.copy需要部署的war包到tomcat容器的webapps文件夹下
docker cp /test/test.war tomcatID(tomcat容器ID):/usr/local/webapps(tomcat容器中的webapps所在位置)
7.修改时区
docker cp /etc/localtime 容器ID:/etc/localtime 由于发布的容器存在时区误差问题,可以将宿主机本地时间代替容器时间
8.修改jre时区
若不修改jre时区,则项目运行之后可能的导致项目时间与数据库时间不符
tomcat卷所在位置:var/lib/docker/volumes/tomcat8888_volume/_data/bin 修改catalina.sh文件,
将JAVA_OPTS=%JAVA_OPTS% -Duser.timezone=GMT+08
放置到JAVA_OPTS="$JAVA_OPTS -Dorg.apache.catalina.security.SecurityListener.UMASK="后面
9.设置mysql忽略大小写
修改mysql容器中的etc/mysql/mysql.conf.d/mysqld.cnf文件,添加内容lower_case_table_names=1
10.restart
重启所有更改配置或设置的容器