Docker学习7 - Docker常规安装简介 (tomcat/mysql/redis)

1.总体步骤

1.搜索镜像

2.拉取镜像

3.查看镜像

4.启动镜像

5.服务端口映射

6.停止容器

7.移除容器

 

2.安装tomcat

1.docker hub上面查找tomcat镜像:

1
docker search tomcat

 

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

1
docker pull tomcat

 

 

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

1
docker image tomcat

 

4.使用tomcat镜像创建容器实例(也叫运行镜像):

1
docker run -it -p 8080:8080 tomcat

 

-p 小写,主机端口:docker容器端口

-P 大写,随机分配端口

i:交互

t:终端

d:后台

 

5.访问猫首页

问题

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

 

6.把webapps.dist目录换成webapps,先成功启动tomcat

1
docker run -d -p 主机端口:容器端口 镜像名称

 

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

 

8.免修改版说明

1
2
3
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镜像

1
2
3
4
5
6
7
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容器实例查看,内容如下:

1
SHOW VARIABLES LIKE 'character%'

 

删除mysql容器

删除容器后,里面的mysql数据如何办

容器实例一删除,你还有什么? 删容器到跑路。。。。。?

 

实战版

新建mysql容器实例

1
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容器实例

1
2
3
4
5
6
7
8
9
[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

 

建目录:

1
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连接上来

 

1
docker exec -it    运行着Rediis服务的容器ID    redis-cli

  

  • 请证明docker启动使用了我们自己指定的配置文件

修改前

 

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

修改后

 

宿主机的修改会同步给docker容器里面的配置。

记得重启服务

测试redis-cli连接上来第2次

 

posted @   suphowe  阅读(44)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示

目录导航