一.tomcat
1.拉取tomcat
docker pull 192.168.32.130:8083/tomcat //通过配置的nexus仓库拉取
2.运行tomcat镜像
docker run -d -p 8080:8080 --name=tomcat 192.168.32.130:8083/tomcat:latest
3.登录tomcat
解决方法:① 进入tomcat容器,删除webapps目录,将webapps.dist重命名为webapps
②拉取tomcat镜像 billygoo/tomcat8-jdk8
docker pull 192.168.32.130:8083/billygoo/tomcat8-jdk8
二.mysql
1.拉取mysql
docker pull 192.168.32.130:8083/mysql:5.7 //通过配置的nexus仓库拉取
2.运行mysql
ps -ef |grep mysql //查询宿主机是否安装mysql,3306端口是否被占用
docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 --name=mysql 192.168.32.130:8083/mysql:5.7
-e MYSQL_ROOT_PASSWORD=123456 //设置环境变量
3.进入mysql容器,登录mysql,进行操作
4.通过工具连接mysql
5.插入中文数据报错( docker默认字符集编码隐患)
注意:是在mysql容器中执行:SHOW VARIABLES LIKE 'character%'; (在工具中执行会发现编码自动改为utf-8,但是database编码还是latin1)
6.删除容器后,mysql里面的数据无法保存(通过配置容器数据卷来解决数据和编码问题)
docker run -d -p 3306:3306 --privileged=true
-v /wuqirui/mysql/log:/var/log/mysql
-v /wuqirui/mysql/data:/var/lib/mysql
-v /wuqirui/mysql/conf:/etc/mysql/conf.d
-e MYSQL_ROOT_PASSWORD=123456
--name=mysql 192.168.32.130:8083/mysql:5.7
新建my.cnf #通过容器卷同步给mysql容器实例(/wuqirui/mysql/conf目录)
[client] #针对客户端的设置
default_character_set=utf8 #指定字符以及字符的编码(mariadb默认是拉丁文)
[mysqld] #针对服务端的设置
collation_server=utf8_general_ci #指定字符的比较规则
character_set_server=utf8 #指定字符以及字符的编码
重新启动mysql容器实例再重新进入并查看字符编码
docker restart mysql
docker exec -it containerID /bin/bash
mysql -uroot -p
SHOW VARIABLES LIKE 'character%';
7.验证数据持久化和中文编码
新建库建表再插入中文数据进行测试,插入中文数据成功
show databases;
create database db01;
use db01;
create table t1(id int,name varchar(20));
insert into t1 values(1,'z3');
将当前容器实例删除,启动一个新容器,查询数据是否存在
结论:数据存在。
三. redis
1.redis(无挂载容器卷)
firewall-cmd --zone=public --add-port=6379/tcp --permanent #开通端口6379
firewall-cmd --reload #重启防火墙
docker run -d -p 6397:6397 --name=redis 192.168.32.130:8083/redis:6.0.8
2.redis(挂载容器卷)
①在宿主机新建目录/wuqirui/redis
②将一个redis.conf文件模板拷贝进/wuqirui/redis目录下
③修改/wuqirui/redis目录下redis.conf文件
④创建容器
docker run -d -p 6379:6379
-v /wuqirui/redis//redis.conf:/etc/redis/redis.conf
-v /wuqirui/redis/data:/data
--privileged=true --name=redis 192.168.32.130:8083/redis:6.0.8
redis-server /etc/redis/redis.conf #redis启动时去执行/etc/redis/redis.conf
⑤测试redis-cli连接
⑥证明docker启动使用了我们指定的配置文件
四.nginx
见高级篇Portainer