(结合官方提供文档操作)
启动dokcer服务,并且设置为开机启动
启动docker服务
service docker start
设置为开机启动
systemctl enable docker
设置网络
创建网络 (容器之间内网相通)
docker network create --subnet=172.18.0.0/16 mynetwork
官网文档 /engine/reference/commandline/network_create/#related-commands
redis容器(/r/bitnami/redis/)
命令 (连接内网,ip为172.18.0.11,redis密码为redis123 ,数据进行持久化 )
docker run -d --name redis --net mynetwork --ip 172.18.0.11 -e REDIS_PASSWORD=redis123 -v /root/redis/redis-persistence:/bitnami/redis -v /etc/localtime:/etc/localtime:ro --privileged=true bitnami/redis:latest
运行命令前执行否则会报错
chmod 777 redis-data/
mysql容器
创建容器(连接内网,ip为172.18.0.12,root用户密码为root123 ,数据进行持久化 )
docker run --name mysql --net mynetwork --ip 172.18.0.12 -v /root/mysql/datadir:/var/lib/mysql -v /etc/localtime:/etc/localtime:ro -e MYSQL_ROOT_PASSWORD=root123 -d mysql:latest --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
文件授权
chcon -Rt svirt_sandbox_file_t /root/mysql/datadir
进入容器【先把sql脚本放入映射的目录】
docker exec -it mysql /bin/bash
连接上数据库,执行sql脚本
create database test default character set utf8 collate utf8_general_ci;use test ; set names utf8; source /var/lib/mysql/test .sql
tomcat容器
创建容器(使用nginx,所以没有对外开放端口,可使用 -p 对外开放端口)
docker run -d --name tomcat--net mynetwork --ip 172.18.0.5 -v /root/tomcat/war/token:/bitnami/tomcat/data -v /root/tomcat/logs/token:/opt/bitnami/tomcat/logs -v /etc/localtime:/etc/localtime:ro --privileged=true bitnami/tomcat:latest
权限问题解决
chown -R 1000 /root/tomcat
时区问题
docker容器中运行的java应用打出的日志时间和通过date -R方式获取的容器标准时间有八个小时时间差。 java应用和容器时间不一致,相差8个小时。这时需要大家进入容器修改tomcat目录下的 lib/catalina 文件找到 JAVA_OPTS,增加下面设置:
JAVA_OPTS="$JAVA_OPTS -Dfile.encoding=UTF8 -Duser.timezone=GMT+08"