写在前面:
捣腾继续,之前把一个SpringBoot的程序安装在docker上面,参考链接:https://www.cnblogs.com/aki-stones/p/2019-11-01-note.html
最近有看Nginx的一些东西准备安装下Nginx,但是还在学习,不怎么熟悉。突然想到之前的Linux机器上面安装了mysql,是不是可以把mysql安装在docker上面。
环境:
虚拟机VMware(联网的情况下)
Java IDEA 2019.2.3
CentOS 7 64位
安装步骤:
第一步:search mysql
docker search mysql
可以看到很多mysql,选择OFFICIAL为OK的就行。如下图:
第二步:从docker中拉取镜像
docker pull mysql
等待拉取镜像成功
第三步:docker运行mysql
docker run \
--name mysqltest\
-e MYSQL_ROOT_PASSWORD= \
-p : \
-d c8ee \
--character-set-server=utf8 \
--collation-server=utf8_unicode_ci
参数说明(每一行后面的\是Linux命令换行):
-e设置容器相关参数,这里是设置root密码为123456(其他设置,可以参照官方文档:mysql-docker)
-p做端口映射,将主机的3306端口映射到容器的3306端口
-d后台启动,参数可以是镜像的IMAGE_ID(docker pull的mysql image ID 可以通过docker images查看),也可以是name:TAG,前几个字符就行。
--name 设置的docker容器的运行名字,必须是小写
最后两行是对这个容器的字符编码,和排序规则的设置
运行报错,3306端口已经被占用,需要卸载docker外面的mysql才行(估计Kill进程应该就行了),运行下面的命令查看安装软件的列表
yum installed list
卸载掉mysql主要的软件就行
yum remove mysql
卸载掉后,配置文件什么的应该还是保存的,之前修改的密码都是生效的
再次运行上面run命令
多次运行docker容器没有退出,用docker ps -a查看,存在一个同名的。
用命令删除对应容器
docker rm dc4f
dc4f为CONTAINER ID
再次运行上面的run那条命令,显示一串的字符表示启动成功
查看状态
docker ps
第四步
链接下mysql看看是否成功,输入下面命令后输入密码(因为我之前安装过mysql修改过密码,新安装的mysql需要修改密码,之前也是捣腾了很久,忘记记录了)
mysql -u root -p
安装完成
第五步
可以进入到docker容器中去查看
docker exec -it mysqltest bash
可以看到一个容器中就是一个小型的虚拟机
遇到的问题
断断续续,虚拟机没有关闭,结果打开的时候Xshell链接不上,NetworkManager 管理出错,网络连接不存在,解决办法依次执行下面的bash
systemctl stop NetworkManager systemctl disable NetworkManager systemctl start network.service
再次xshell连接,成功了。
参考:
1、Docker踩坑笔记[二]:Docker中使用MySQL(基于CentOS7)https://blog.****.net/zouguo1211/article/details/84962384
2、CentOS 初体验三: Yum 安装、卸载软件 https://blog.****.net/zhaoyanjun6/article/details/78894974
3、官方文档 https://hub.docker.com/_/mysql/
4、转载Error response from daemon: Conflict. The container name "/mysql is already in use by container https://blog.****.net/whatday/article/details/83822837
5、CentOS7 Failed to start LSB: Bring up/down解决方法 https://blog.****.net/crazy__qu/article/details/80535950
6、转载Failed to start LSB: Bring up/down解决方法 https://blog.****.net/kawnj/article/details/81667517
7、Docker 安装 MySQL https://blog.****.net/hualaoshuan/article/details/90815049
前人栽树后人乘凉,让更多的人一起乘凉。