docker从0到1运行mysql(最详细且绝对成功版)
前置环境
CentOS7.8
安装docker
yum install -y docker
启动docker并检查docker状态
systemctl start docker
systemctl status docker
这样即正常
设置镜像加速
修改 /etc/docker/daemon.json
文件并添加上 registry-mirrors 键值
vim /etc/docker/daemon.json
{"registry-mirrors": ["https://nz5uykfk.mirror.aliyuncs.com"]
}
配置完成之后记得重启docker
systemctl restart docker
搭建Mysql服务
1、拉取Mysql镜像
docker pull daocloud.io/library/mysql:5.7
注意!只有这条命令才能拉取!
如果是这条 docker pull mysql:5.7 会拉取失败
2、运行镜像
docker run -p 3306:3306 --name mysql57 -v ~/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --privileged=true daocloud.io/library/mysql:5.7
命令详解:
-p 代表宿主机和容器间的端口映射--name 就是为我们当前的这个容器取一个名字
-v 代表挂载数据卷,可以实现宿主机和容器目录的映射,他们之间可以实现文件信息的自动同步,这一步的目的是为了数据安全。容器如果销毁了,下次新建容器仍然可以找到之前的数据。如果没有这个配置,你的服务启动肯定是没问题的,但是如果说你把容器销毁了的话,你原有的数据就不再有了,也被销毁了
-e 是设置数据库的root初始密码
--privileged 设置可以让容器获得宿主机的root权限
daocloud.io/library/mysql:5.7 最后一个就是我们想去运行的镜像名称
等待运行即可,如果想关闭就ctrl+d
运行之后可以看看用没有mysql在运行,输入
docker ps
让它运行着,别关
我们来测试一下windows怎么用linux容器里的mysql
首先要先输入
ip a
找到centos7的ip
打开windows的navicat
localhost改成centos的ip
端口和密码看看你当时docker run的配置
连接成功!!!