- A+
- https://www.studenty.cn/?p=1111
建立镜像
- docker pull mysql:5.7 # 拉取 mysql 5.7
- docker pull mysql # 拉取最新版mysql镜像
- $ sudo docker images
- sudo docker run -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
- –name:容器名,此处命名为mysql
- -e:配置信息,此处配置mysql的root用户的登陆密码
- -p:端口映射,此处映射 主机3306端口 到 容器的3306端口
- duso docker run -p 3306:3306 --name mysql \
- -v /usr/local/docker/mysql/conf:/etc/mysql \
- -v /usr/local/docker/mysql/logs:/var/log/mysql \
- -v /usr/local/docker/mysql/data:/var/lib/mysql \
- -e MYSQL_ROOT_PASSWORD=123456 \
- -d mysql:5.7
- -v:主机和容器的目录映射关系,":"前为主机目录,之后为容器目录
- docker container ls
- 可以看到容器ID,容器的源镜像,启动命令,创建时间,状态,端口映射信息,容器名字
连接mysql
- sudo docker exec -it mysql bash
- mysql -uroot -p123456
我们在创建容器的时候已经将容器的3306端口和主机的3306端口映射到一起,所以我们应该访问:
- host: 127.0.0.1
- port: 3306
- user: root
- password: 123456
防火墙阻拦:
- # 开放端口:
- $ systemctl status firewalld
- $ firewall-cmd --zone=public --add-port=3306/tcp -permanent
- $ firewall-cmd --reload
- # 关闭防火墙:
- $ sudo systemctl stop firewalld
需要进入docker本地客户端设置远程访问账号
- $ sudo docker exec -it mysql bash
- $ mysql -uroot -p123456
- mysql> grant all privileges on *.* to root@'%' identified by "password";