宿主机访问Docker容器的MySQL
1. 配置宿主机的MySQL
systemctl stop mysqld # 关闭宿主机MySQL服务,或者 service mysql stop
cd /etc/mysql/
sudo vi my.cnf
bind-address=0.0.0.0 # 在[mysqld]下面配置
systemctl start mysqld # 启动宿主机MySQL服务,或者service mysqld restart
2. 配置Docker容器
2.1 Docker安装、配置MySQL
docker pull mysql:5.7 # 拉取镜像
docker run -d --name mysql_db_01 -p 10086:3306 -e MYSQL_ROOT_PASSWORD=1234 mysql:5.7 # 创建容器
# 10086是容器外部端口号,只要不被占用可以任意指定。3306是容器内部端口,mysql在不更改其配置文件时默认只会监听3306端口。
docker start mysql_db_01 # 运行容器
docker exec -it mysql_db_01 bash # 进入容器内部
mysql -u root -p # 访问容器内部MySQL
2.2 Docker其他配置
# 如何查看docker容器的IP?
# 添加 ifconfig 命令
apt update
apt install ifconfig
```bash
# 可以看到docker容器的IP是:172.17.0.2,然而宿主机的Docker连接IP是 172.17.0.1,所以在Docker容器内部:
mysql -h 172.17.0.1 -uroot -p # Docker访问宿主机MySQL