# 一、总体步骤
- 搜索镜像
- 拉取镜像
- 查看镜像
- 启动镜像 - 服务端口映射
- 停止容器
- 移除容器
# 二、安装tomcat
# 1、搜索镜像
在docker hub上面查找tomcat镜像docker search tomcat
# 2、拉取镜像
从docker hub上拉取tomcat镜像到本地docker pull tomcat
# 3、查看镜像
docker images查看是否有拉取到的tomcat
# 4、启动镜像
使用tomcat镜像创建容器实例(也叫运行镜像)docker run -it -p 8080:8080 tomcat
-p 小写,主机端口:docker容器端口
其他参数在之前都有详细笔记,这里主要解释一下-p参数,它的作用是指定端口映射,因为tomcat默认是8080端口启动服务,这里我们如果想从外部主机访问容器内tomcat的话需要指定端口映射,将内部的8080端口映射到外部主机上,当然外部主机端口不一定就是8080,我们可以根据需求进行更改。
-P 大写,随机指定一个外部主机的空闲端口进行映射。
最后我们访问过来应该就能看到tomcat的主页了,假如出现404的情况,例如:
可能是防火墙规则问题,可以去防火墙上放行指定端口或者关闭防火墙,也有可能是tomcat的webapps.dist目录问题,可以先检查一下容器是否正常启动,然后进入容器,查看webapps和webapps.dist目录,把webapps.dist目录换成webapps
# 三、安装mysql
# 1、搜索镜像
docker hub上面查找mysql镜像
# 2、拉取镜像
从docker hub上(阿里云加速器)拉取mysql镜像到本地标签为5.7
# 三、启动容器
使用mysql5.7镜像创建容器(也叫运行镜像)
注意这里我们根据官方的提示,MySQL容器创建时需要给mysql应用指定一个root密码,设置MYSQL_ROOT_PASSWORD
的值为我们自己的密码。
# 创建MySQL容器
docker run -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
# 查看运行中的容器
docker ps
# 进入到容器中
docker exec -it 容器ID /bin/bash
# 连接mysql
mysql -uroot -p
2
3
4
5
6
7
8
建库建表插入数据
因为做了端口映射,在外部主机也能根据IP和端口进行连接。
假如此时插入中文数据试试
会发现mysql报错,这是由于docker上默认字符集编码隐患,在docker里面的mysql容器实例内使用SHOW VARIABLES LIKE 'character%'
命令查看。
字符集不统一,大部分都不是utf-8,插入中文报错。
使用卷挂载的方式将mysql的配置文件目录挂载进去,并修改位置文件添加字符集设定为utf-8。
# 新建一个容器实例
docker run -d -p 3306:3306
--privileged=true
-v /zzyyuse/mysql/log:/var/log/mysql
-v /zzyyuse/mysql/data:/var/lib/mysql
-v /zzyyuse/mysql/conf:/etc/mysql/conf.d
-eMYSQL_ROOT_PASSWORD=123456
--name mysql mysql:5.7
2
3
4
5
6
7
8
在主机的/zzyyuse/mysql/conf目录下创建一个my.cnf文件,通过容器卷同步给mysql容器实例。
# my.cnf文件内容如下:
[client]
default_character_set=utf8
[mysqld]
collation_server = utf8_general_ci
character_set_server = utf8
2
3
4
5
6
重新启动mysql容器实例再重新进入并查看字符编码
再新建库新建表再插入中文测试
# 四、安装redis
后续更多安装操作包括redis容器安装部分见云原生实战章节。