Docker 运行Mysql
系统
CentOS 7
获取镜像
sudo docker pull mysql
sudo docker images
运行一个mysql镜像
sudo docker run --name first-mysql -v /data/var/mysql/:/var/lib/mysql -p 3306:3306 -e MYSQL\_ROOT\_PASSWORD=123456 -d mysql
上述命令各个参数含义:
run 运行一个容器
--name 后面是这个镜像的名称
-p 3306:3306 表示在这个容器中使用3306端口(第二个)映射到本机的端口号也为3306(第一个)
-d 表示使用守护进程运行,即服务挂在后台
查看当前运行的容器状态:
sudo docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES5b6bf6f629bf
mysql "docker-entrypoint.sh" 32 hours ago Up 5 hours 0.0.0.0:3306->3306/tcp first-mysql
想要访问mysql数据库,我的机器上需要装一个mysql-client。
sudo yum install mysql
下面我们使用mysql命令访问服务器,密码如刚才所示为123456,192.168.95.4为我这台机器的ip, 3306为刚才所示的占用本物理机的端口(不是在docker内部的端口)
mysql -h192.168.95.4 -P3306 -uroot -p123456
有时候遇到NAT iptable错误
重启dokcer
sudo systemctl restart docker
问题
无法直接使用mysql -uroot -p进行访问(待解决)