Docker 常用软件安装与镜像发布

Docker 安装 MySQL

mark

下面将使用 Docker 来安装 Mysql,先搜索,然后拉取:

1
docker pull mysql:5.7
1
2
3
4
5
docker run -p 3306:3306--name mysql \
-v /root/mysql/conf:/etc/mysql/conf.d \
-v /root/mysql/logs:/logs \
-v /root/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 -d mysql
1
2
3
docker ps  # 查看运行容器 

docker exec -it 容器 ID /bin/bash # 进入容器

解决外部工具连接不上的问题

1
2
3
4
5
6
7
ALTER USER 'root'@'%' IDENTIFIED BY '123456' PASSWORD EXPIRE NEVER;

Query OK, 0 rows affected (0.02 sec)

FLUSH PRIVILEGES;

Query OK, 0 rows affected (0.01 sec)

Docker 安装 MySQL 需要注意的问题:

1、搜索时在 https://hub.docker.com/ 这个网站进行搜索,比如搜索 MySQL

mark

下面就有版本号,默认是最新的,也就是 latest

2、这条命令的意思

1
2
3
4
5
docker run -p 3306:3306--name mysql \
-v /root/mysql/conf:/etc/mysql/conf.d \
-v /root/mysql/logs:/logs \
-v /root/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 -d mysql

其实很近简单 —restart=always 是让容器在 Docker 服务启动后也跟随启动,我的 Docker 设置的是开机启动,所以开机后一旦 Docker 服务启动,mysql 容器也会启动,通过 - v 命令添加了三个容器卷,分别是~/mysql/conf、~/mysql/logs、~/mysql/data ,这样的话我们在宿主机上就可以配置 MySQL、查看 log、以及备份数据!

Docker 安装 Tomcat

同样的安装 Tomcat 也是先查找,然后直接根据自己的版本号直接 docker pull tomcat: 标签

1
2
3
4
docker run -it -p 8080:8080 --name tomcat \
-v /root/tomcat/webapps:/usr/local/tomcat/webapps \
-v /root/tomcat/logs:/usr/local/tomcat/logs \
tomcat /bin/bash

这个 Tomcat 需要手动启动,所以使用 -it 模式进入 bin 目录 start.sh 才可以开启 Tomcat,另外,如果像上面这个路径去添加容器卷的话,webapp 和 logs 目录会清空,我是直接把 webapps 的东西 copy 进去就好了!

Docker 安装 Redis

同样的安装 redis 也是先查找,然后直接根据自己的版本号直接 `docker pull redis: 标签

1
2
3
4
docker run -p 6379:6379 
-v /root/redis/data:/data \
-v /root/redis/conf/redis.conf:/usr/local/etc/redis/redis.conf
-d redis:3.2 redis-server /usr/local/etc/redis/redis.conf --appendonly yes

在主机 /root/redis/conf/redis.conf 目录下新建 redis.conf 文件 vim /root/redis/conf/redis.conf/redis.conf

测试 redis-cli 连接和测试持久化文件生成

docker exec -it 容器编号 redis-cli

mark

Docker 镜像发布到阿里云

mark

镜像的生成方法,编写 DockerFile,这个在上一篇文章 DockerFile 已经说过了。或者从容器生成一个新的镜像:

1
docker commit [OPTIONS] 容器 ID [REPOSITORY [:TAG]]

登录到阿里云的镜像服务:https://cr.console.aliyun.com/cn-hangzhou/instances/repositories

创建一个命名空间,创建本地仓库:

mark

将镜像推送到阿里云,推送方式阿里云文档里面就有

mark

按照提示操作,先登录

mark

登录成功后,由于我之前没还没制作镜像,现在开始制作镜像并且推送镜像

mark

出现下面这种,即说明推送完毕(其实这和 Pull 是一样的,镜像分层都是一层一层的结构)

mark

在阿里云执行搜索,一定要是公有仓库才能搜到,下面看看我的 Redis

mark
mark

这样就和那些 mysql 镜像一样了,可以直接下载,先删除本地的镜像,然后再拉取
mark