Docker下常规软件安装

本文详细介绍了在Docker环境下安装和配置Tomcat, MySQL和Redis的过程,包括端口映射、防火墙设置、数据持久化及字符集调整等关键步骤,旨在提供一套实战教程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. Docker 安装tomcat

1.1 docker hub上面查找tomcat镜像

 docker search tomcat

1.2 拉取tomcat

 docker pull tomcat:8.0.53

1.3 启动tomcat

docker run -it -p 8080:8080 tomcat:8.0.53
docker run -it -p 8080:8080 --name tomcat-8 tomcat:8.0.53

1.4 访问tomcat

出现了无法访问情况。

1.4.1. 查看防火墙状态

systemctl status firewalld

1.4.2. 开启防火墙

systemctl start firewalld

1.4.3. 查看端口信息

firewall-cmd --list-ports  # 只看端口信息

1.4.4. 开启端口和重启防火墙

开端口命令:firewall-cmd --zone=public --add-port=8080/tcp --permanent
重启防火墙:systemctl restart firewalld.service

1.4.5. 重启docker

systemctl restart docker 

1.4.6. 重启tomcat

 docker restart 73f1990b9b40

1.4.7. 阿里云服务器需要开放8080端口

在这里插入图片描述

1.4.8. 访问成功

在这里插入图片描述

2. Docker 安装mysql

2.1 Docker hub上面查找mysql镜像

docker search mysql 

2.2 从docker hub上(阿里云加速器)拉取mysql镜像到本地标签为5.7

docker pull mysql:5.7

2.3 使用mysql5.7镜像创建容器(也叫运行镜像)

2.3.1 根据官网命令安装

https://hub.docker.com/_/mysql

官网命令:
docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag

docker run -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7

出现错误

docker: Error response from daemon: driver failed programming external connectivity on endpoint dazzling_goldstine (3c71e2b0978077270348fcaf218f5c6f831316ea04a50046eabce8238e4d723d): Error starting userland proxy: listen tcp4 0.0.0.0:3306: bind: address already in use.

问题原因,宿主机阿里云服务器上也启动了mysql
在这里插入图片描述
所以docker内的mysql换一个端口3336

docker run -p 3306:3336 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7

启动成功

2.3.2 进入容器

 docker exec -it 55a5e792eeb3 /bin/bash

2.3.3 连接mysql

 mysql -uroot -p

2.3.4 创建数据库

 create database db01;

2.3.5 创建数据表

use db01;
create table t1(id int,name varchar(100));

2.3.6 插入数据

 insert into t1 values(1, 'chent');

2.3.7 查看数据

 select * from t1;

在这里插入图片描述

2.3.8 插入中文,报错

在这里插入图片描述

2.3.9 查看字符集

SHOW VARIABLES LIKE 'character%'

2.3.10 问题思考

  1. 删除容器后,里面的mysql数据如何办?
  2. 容器实例一删除,你还有什么? 删容器到跑路。。。。。?

3. Docker 安装mysql(实战版)

3.1 新建mysql容器实例

docker run -d -p 3336:3306 --privileged=true -v /software/mysql/log:/var/log/mysql -v /software/mysql/data:/var/lib/mysql -v /software/mysql/conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=123456  --name mysql mysql:5.7

3.2 新建my.cnf

 vim my.cnf

3.3 写入内容

[client]
default_character_set=utf8
[mysqld]
collation_server = utf8_general_ci
character_set_server = utf8

3.4 查看文件

 cat my.cnf

在这里插入图片描述

3.5 重新启动mysql容器实例再重新进入并查看字符编码

在这里插入图片描述
字符集已经修改

3.6 结论

之前的DB 无效

修改字符集操作+重启mysql容器实例

之后的DB 有效,需要新建

结论:docker安装完MySQL并run出容器后,建议请先修改完字符集编码后再新建mysql库-表-插数据

4. 安装redis

4.1 从docker hub上(阿里云加速器)拉取redis镜像到本地标签为6.0.8

docker pull redis:6.0.8

4.2 入门命令

 docker run -d -p 6379:6379 --name redis6 redis:6.0.8

命令提醒:容器卷记得加入–privileged=true

4.3 在CentOS宿主机下新建目录/software/redis

[root@iZbp10sz66ubwpbh2bw9jbZ ~]# cd /software
[root@iZbp10sz66ubwpbh2bw9jbZ software]# mkdir redis
[root@iZbp10sz66ubwpbh2bw9jbZ software]# ls
mysql  redis
[root@iZbp10sz66ubwpbh2bw9jbZ software]# cd redis
[root@iZbp10sz66ubwpbh2bw9jbZ redis]# 

4.4 将一个redis.conf文件模板拷贝进/software/redis目录下

在这里插入图片描述

/software/redis目录下修改redis.conf文件

4.5 开启redis验证 可选

requirepass 123

4.6 允许redis外地连接 必须

 注释掉 # bind 127.0.0.1

在这里插入图片描述

daemonize no

将daemonize yes注释起来或者 daemonize no设置,因为该配置和docker run中-d参数冲突,会导致容器一直启动失败

在这里插入图片描述

4.7 开启redis数据持久化

 appendonly yes  可选

在这里插入图片描述

4.8 使用redis6.0.8镜像创建容器(也叫运行镜像)

docker run  -p 6379:6379 --name myredis6 --privileged=true -v /software/redis/redis.conf:/etc/redis/redis.conf -v /software/redis/data:/data -d redis:6.0.8 redis-server /etc/redis/redis.conf

很遗憾,没起来
在这里插入图片描述
用docker logs 查看日志

在这里插入图片描述
意思是配置文件,第七行,有个空格

在这里插入图片描述
删除空格,重新启动

在这里插入图片描述

4.9 测试redis-cli连接上来

docker exec -it myredis6 redis-cli

在这里插入图片描述

5. 安装Ngnix

太简单了,略~~~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

东北亚大中华区首席搬砖工具人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值