(七) 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首页

问题

在这里插入图片描述

解决

  1. 可能没有映射端口或者防火墙没有开端口,或者云服务器没有开安全组

    # 查看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                                 ##查看规则,这个
    
    

    在这里插入图片描述

  2. 把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个,这里找的时候可以使用/你找的东西 可以快速定位。
在这里插入图片描述

重启测试成功

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值