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

Docker安装MySQL

mark

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

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

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

1ALTER USER 'root'@'%' IDENTIFIED BY '123456' PASSWORD EXPIRE NEVER;
2
3Query OK, 0 rows affected (0.02 sec)  
4
5FLUSH PRIVILEGES; 
6
7Query OK, 0 rows affected (0.01 sec)  

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

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

mark

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

2、这条命令的意思

1docker run -p 3306:3306--name mysql \
2-v /root/mysql/conf:/etc/mysql/conf.d \
3-v /root/mysql/logs:/logs \
4-v /root/mysql/data:/var/lib/mysql  \
5-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:标签

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

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

Docker安装Redis

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

1docker run -p 6379:6379 
2-v /root/redis/data:/data \
3-v /root/redis/conf/redis.conf:/usr/local/etc/redis/redis.conf  
4-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已经说过了。或者从容器生成一个新的镜像:

1docker 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