Docker常规应用安装

11/18/2023 docker容器

# 一、总体步骤

  1. 搜索镜像
  2. 拉取镜像
  3. 查看镜像
  4. 启动镜像 - 服务端口映射
  5. 停止容器
  6. 移除容器

# 二、安装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
1
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
1
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
1
2
3
4
5
6


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


再新建库新建表再插入中文测试

# 四、安装redis

后续更多安装操作包括redis容器安装部分见云原生实战章节。