Docker安装常规软件
- 一、安装tomcat
- 1、docker hub上面查找tomcat镜像
- 2、从docker hub上拉取tomcat镜像到本地
- 3、docker images查看是否有拉取到的tomcat
- 4、使用tomcat镜像创建容器实例
- 5、访问Tomcat首页
- 6、拉取这个版本不需要去修改Webapps目录(免修改版)
- 二、Mysql安装
- 1、简单入门(不使用)
- 1、docker hub上面查找mysql镜像
- 2、从docker hub上拉取mysql镜像到本地
- 3、创建容器
- 4、在Windows上使用Mysql工具连接
- 5、插入中文数据问题
- 6、容器挂掉后数据丢失
- 2、实际用的(下次直接用这的命令)
- 1、新建mysql容器实例
- 2、宿主机新建my.cnf通过容器卷同步给容器
- 3、重新启动mysql容器实例再重新进入并查看字符编码
- 4、再新建库新建表再插入中文测试
- 5、结论
- 三、Redis安装
- 1、从docker hub上(阿里云加速器)拉取redis镜像到本地标签为6.0.8
- 2、在CentOS宿主机下新建目录/app/redis
- 3、将一个redis.conf文件模板拷贝进/app/redis目录下
- 4、使用redis6.0.8镜像创建容器
- 5、测试redis-cli连接上来
- 6、证明docker启动使用了我们自己指定的配置文件
总体步骤
一、安装tomcat
1、docker hub上面查找tomcat镜像
docker search tomcat
2、从docker hub上拉取tomcat镜像到本地
docker pull tomcat
3、docker images查看是否有拉取到的tomcat
docker images tomcat
4、使用tomcat镜像创建容器实例
docker run -d -p 8080:8080 --name t1 tomcat
参数
- -p 小写,主机端口:docker容器端口
- -P 大写,随机分配端口,不指定就由系统分配
- i:交互
- t:终端
- d:后台
5、访问Tomcat首页
问题
解决
-
可能没有映射端口或者防火墙没有开端口,或者云服务器没有开安全组
# 查看firewall服务状态 systemctl status firewalld # 开启、重启、关闭、firewalld.service服务 # 开启 service firewalld start # 重启 service firewalld restart # 关闭 service firewalld stop # 查看防火墙规则 firewall-cmd --list-all # 查看全部信息 firewall-cmd --list-ports # 只看端口信息 # 开启端口 开端口命令:firewall-cmd --zone=public --add-port=8080/tcp --permanent 重启防火墙:systemctl restart firewalld.service 命令含义: --zone #作用域 --add-port=80/tcp #添加端口,格式为:端口/通讯协议 --permanent #永久生效,没有此参数重启后失效 #常用的firewall命令常用命令介绍 1 firewall-cmd --state ##查看防火墙状态,是否是running 2 firewall-cmd --reload ##重新载入配置,比如添加规则之后,需要执行此命令 3 firewall-cmd --get-zones ##列出支持的zone 4 firewall-cmd --get-services ##列出支持的服务,在列表中的服务是放行的 5 firewall-cmd --query-service ftp ##查看ftp服务是否支持,返回yes或者no 6 firewall-cmd --add-service=ftp ##临时开放ftp服务 7 firewall-cmd --add-service=ftp --permanent ##永久开放ftp服务 8 firewall-cmd --remove-service=ftp --permanent ##永久移除ftp服务 9 firewall-cmd --add-port=80/tcp --permanent ##永久添加80端口 10 firewall-cmd --remove-port=80/tcp --permanent ##永久移除80端口 11 firewall-cmd --list-ports ##查看已经开放的端口 12 iptables -L -n ##查看规则,这个
-
把webapps.dist目录换成webapps
因为新版的Tomcat的webapps目录是空的,我们给它删了并且给文件夹webapps.dist更名
浏览器访问测试 :服务器公网IP:8080
6、拉取这个版本不需要去修改Webapps目录(免修改版)
docker pull billygoo/tomcat8-jdk8
docker run -d -p 8080:8080 --name mytomcat8 billygoo/tomcat8-jdk8
二、Mysql安装
1、简单入门(不使用)
1、docker hub上面查找mysql镜像
docker search mysql
2、从docker hub上拉取mysql镜像到本地
这里指定了 5.7 的版本
docker pull mysql:5.7
3、创建容器
DockerHub官网命令
使用mysql镜像
运行前检查下是否有端口冲突,防止mysql已经在宿主机上运行了占用端口
docker run -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
docker ps
docker exec -it 容器ID /bin/bash
mysql -uroot -p
建库建表插入数据
create database db01;
use db01;
create table t1(id int,name varchar(20));
insert into t1 values(1,'guai');
select * from t1;
4、在Windows上使用Mysql工具连接
记得放行宿主机 3306 端口以及服务器安全组
5、插入中文数据问题
原因
docker上默认字符集编码隐患
docker里面的mysql容器实例查看,内容如下:
SHOW VARIABLES LIKE 'character%';
默认数据库的编码是 拉丁 所以乱码
6、容器挂掉后数据丢失
因为没有挂载容器卷所以实例停止后,数据就会丢失,显然这是不可能让其发生的
2、实际用的(下次直接用这的命令)
1、新建mysql容器实例
这里挂载了三个,日志,数据,配置文件
docker run -d -p 3306:3306 --privileged=true -v /guai/mysql/log:/var/log/mysql -v /guai/mysql/data:/var/lib/mysql -v /guai/mysql/conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=123456 --name mysql mysql:5.7
2、宿主机新建my.cnf通过容器卷同步给容器
在这个 my.cnf
里面添加这些内容
[client]
default_character_set=utf8
[mysqld]
collation_server = utf8_general_ci
character_set_server = utf8
3、重新启动mysql容器实例再重新进入并查看字符编码
SHOW VARIABLES LIKE 'character%';
4、再新建库新建表再插入中文测试
create database db01;
use db01;
create table t1(id int,name varchar(20));
insert into t1 values(1,'guai');
select * from t1;
再次插入中文成功
5、结论
结论:docker安装完MySQL并run出容器后(记得挂载容器卷),建议请先修改完字符集编码后再新建mysql库-表-插数据
三、Redis安装
服务器开放安全组以及防火墙,但是建议用其他端口映射,因为很容易被挖矿
开端口命令:firewall-cmd --zone=public --add-port=6379/tcp --permanent
重启防火墙:systemctl restart firewalld.service
查看开放端口:firewall-cmd --list-ports
1、从docker hub上(阿里云加速器)拉取redis镜像到本地标签为6.0.8
docker pull redis:6.0.8
2、在CentOS宿主机下新建目录/app/redis
mkdir -p /app/redis
3、将一个redis.conf文件模板拷贝进/app/redis目录下
因为之前安装过 Redis 所以有这个配置文件,所以直接复制就行,没有的阿里云盘分享
https://www.aliyundrive.com/s/GLGbZ8V9dat
然后修改一下配置文件
4、使用redis6.0.8镜像创建容器
docker run -p 6380:6379 --name myr3 --privileged=true -v /app/redis/redis.conf:/etc/redis/redis.conf -v /app/redis/data:/data -d redis:6.0.8 redis-server /etc/redis/redis.conf
这里如果启动后 Docker ps 不出来,大概率是配置文件出现错误,可以选择去github上更换版本接近的配置文件,这样就可以显示,或者使用命令docker logs 容器名或者容器id
去查看报错信息进行修改,但是比较麻烦
5、测试redis-cli连接上来
docker exec -it myr3 /bin/bash
redis-cli
6、证明docker启动使用了我们自己指定的配置文件
我们用的配置文件,数据库默认是16个
然后修改我们宿主机的配置文件,会同步给docker容器里面的配置。
修改完记得重启容器
修改为17个,这里找的时候可以使用/你找的东西
可以快速定位。
重启测试成功