Docker and MySQL

宿主机访问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
原文地址:https://www.cnblogs.com/daemonFlY/p/11717718.html