Docker学习7 - Docker常规安装简介 (tomcat/mysql/redis)
1.总体步骤
1.搜索镜像
2.拉取镜像
3.查看镜像
4.启动镜像
5.服务端口映射
6.停止容器
7.移除容器
2.安装tomcat
1.docker hub上面查找tomcat镜像:
docker search tomcat

2.从docker hub上拉取tomcat镜像到本地:
docker pull tomcat

3.docker images查看是否有拉取到的tomcat:
docker image tomcat

4.使用tomcat镜像创建容器实例(也叫运行镜像):
docker run -it -p 8080:8080 tomcat
-p 小写,主机端口:docker容器端口
-P 大写,随机分配端口
i:交互
t:终端
d:后台

5.访问猫首页
问题

解决:可能没有映射端口或者没有关闭防火墙

6.把webapps.dist目录换成webapps,先成功启动tomcat
docker run -d -p 主机端口:容器端口 镜像名称

7.查看webapps 文件夹查看为空

8.免修改版说明
docker pull billygoo/tomcat8-jdk8 docker run -d -p 8080:8080 --name mytomcat8 billygoo/tomcat8-jdk8

3.安装mysql
1.docker hub上面查找mysql镜像

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

3.使用mysql5.7镜像创建容器(也叫运行镜像)
命令出处,哪里来的?

简单版,使用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

建库建表插入数据

外部Win10也来连接运行在dokcer上的mysql容器实例服务

docker上默认字符集编码隐患
中文乱码

docker里面的mysql容器实例查看,内容如下:
SHOW VARIABLES LIKE 'character%'

删除mysql容器
删除容器后,里面的mysql数据如何办
容器实例一删除,你还有什么? 删容器到跑路。。。。。?
实战版
新建mysql容器实例
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 -e MYSQL_ROOT_PASSWORD=123456 --name mysql mysql:5.7

新建my.cnf
通过容器卷同步给mysql容器实例
[client] default_character_set=utf8 [mysqld] collation_server = utf8_general_ci character_set_server = utf8

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


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


结论
- 之前的DB 无效
- 修改字符集操作+重启mysql容器实例
- 之后的DB 有效,需要新建
结论:docker安装完MySQL并run出容器后,建议请先修改完字符集编码后再新建mysql库-表-插数据

假如将当前容器实例删除,再重新来一次,之前建的db01实例还有吗?trytry
4.安装redis
从docker hub上(阿里云加速器)拉取redis镜像到本地标签为6.0.8

入门命令
命令提醒:容器卷记得加入--privileged=true
Docker挂载主机目录Docker访问出现cannot open directory .: Permission denied
解决办法:在挂载目录后多加一个--privileged=true参数即可
1.在CentOS宿主机下新建目录/app/redis

建目录:
mkdir -p /app/redis
2.将一个redis.conf文件模板拷贝进/app/redis目录下

3./app/redis目录下修改redis.conf文件
- 开启redis验证 可选 requirepass 123
- 允许redis外地连接 必须 注释掉 # bind 127.0.0.1

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

- 开启redis数据持久化 appendonly yes 可选
- 使用redis6.0.8镜像创建容器(也叫运行镜像)

- 测试redis-cli连接上来

docker exec -it 运行着Rediis服务的容器ID redis-cli
- 请证明docker启动使用了我们自己指定的配置文件
修改前

我们用的配置文件,数据库默认是16个
修改后

宿主机的修改会同步给docker容器里面的配置。
记得重启服务
测试redis-cli连接上来第2次


浙公网安备 33010602011771号