Docker下常规软件安装
- 1. Docker 安装tomcat
- 1.1 docker hub上面查找tomcat镜像
- 1.2 拉取tomcat
- 1.3 启动tomcat
- 1.4 访问tomcat
- 1.4.1. 查看防火墙状态
- 1.4.2. 开启防火墙
- 1.4.3. 查看端口信息
- 1.4.4. 开启端口和重启防火墙
- 1.4.5. 重启docker
- 1.4.6. 重启tomcat
- 1.4.7. 阿里云服务器需要开放8080端口
- 1.4.8. 访问成功
- 2. Docker 安装mysql
- 2.1 Docker hub上面查找mysql镜像
- 2.2 从docker hub上(阿里云加速器)拉取mysql镜像到本地标签为5.7
- 2.3 使用mysql5.7镜像创建容器(也叫运行镜像)
- 2.3.1 根据官网命令安装
- 2.3.2 进入容器
- 2.3.3 连接mysql
- 2.3.4 创建数据库
- 2.3.5 创建数据表
- 2.3.6 插入数据
- 2.3.7 查看数据
- 2.3.8 插入中文,报错
- 2.3.9 查看字符集
- 2.3.10 问题思考
- 3. Docker 安装mysql(实战版)
- 3.1 新建mysql容器实例
- 3.2 新建my.cnf
- 3.3 写入内容
- 3.4 查看文件
- 3.5 重新启动mysql容器实例再重新进入并查看字符编码
- 3.6 结论
- 4. 安装redis
- 4.1 从docker hub上(阿里云加速器)拉取redis镜像到本地标签为6.0.8
- 4.2 入门命令
- 4.3 在CentOS宿主机下新建目录/software/redis
- 4.4 将一个redis.conf文件模板拷贝进/software/redis目录下
- 4.5 开启redis验证 可选
- 4.6 允许redis外地连接 必须
- 4.7 开启redis数据持久化
- 4.8 使用redis6.0.8镜像创建容器(也叫运行镜像)
- 4.9 测试redis-cli连接上来
- 5. 安装Ngnix
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 问题思考
- 删除容器后,里面的mysql数据如何办?
- 容器实例一删除,你还有什么? 删容器到跑路。。。。。?
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
太简单了,略~~~