1. 下载 MySQL 镜像( 参考地址:https://c.163.com/hub#/m/repository/?repoId=2955 )
docker pull hub.c.163.com/library/mysql:latest
2. 查看镜像
docker images
3. 运行 MySQL 容器
# 建立挂载的数据卷
mkdir -p /var/cnmp/mysql/data
# 虚拟机 3306 端口和容器里的3306端口对应,虚拟机路径和容器里路径对应
docker run -p 3306:3306 --name mysql -v /var/cnmp/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d --privileged=true hub.c.163.com/library/mysql:latest
如果启动容器失败,报错信息docker: Error response from daemon: driver failed programming external connectivity on endpoint mysql (949f2fe8ae852fac20a2a985a123bad71035c62f36a8a101cf5d00d0dd16fe47): (iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 3306 -j DNAT --to-destination 172.17.0.2:3306 ! -i docker0: iptables: No chain/target/match by that name.
解决办法是:
重启docker
systemctl restart docker
并删除已创建的镜像
如此,mysql部署成功
4. 进入 Mysql 容器
# 这里的 mysql ,docker ps 查询后,写 CONTAINER ID 或者 IMAGE NAMES 都行
docker exec -it mysql bash
# 此时已经进入容器,登录容器内数据库
mysql -uroot -p123456
# 在操作容器里数据的同时,数据也进到了 /var/cnmp/mysql/data 目录里,两边是同步的!