docker安装mysql5.7、mysql8.0
--------------------------
docker network create mynet
容器A
docker run --network mynet xxxxxxxxxx
docker run --network mynet --network-alias mynet_name
容器B
在容器A里
ping mynet_name
可访问容器B
--------------------------
其实因为一个DOCKER里有别的应用,这时候需要连通mysql,可以使用内网的方式连通,加快速度,所以需要使用内网
1、排取镜像
我的实际用法是:docker pull mysql:5.7
但是有的
docker pull docker.io/mysql:5.7.18
可以直接指定版本,未试过!
docker pull mysql:5.7
2、创建主宿机映射目录
mkdir -p /opt/docker/mysql/etc/mysql #配置文件映射 mkdir -p /opt/docker/mysql/data #数据文件映射
3、随便运行一个容器,然后将里面的配置方便拷出来
docker run -di --name=mymysql -p 33306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7 docker cp mymysql:/etc/mysql /opt/docker/mysql/etc
4、删掉这个要拷的docker
docker stop mymysql docker rm mymysql
5、运行容器
docker run -di --name=mysql57 -v /opt/docker/mysql/etc/mysql:/etc/mysql -v /opt/docker/mysql/data:/var/lib/mysql -p 3357:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7
内网版:
docker run --restart=on-failure:10 --network mynet -di --name=mysql57 -v /opt/docker/mysql/etc/mysql:/etc/mysql -v /opt/docker/mysql/data:/var/lib/mysql -p 33070:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7.18
6、拉8.0的mysql
docker pull mysql:8.0
7、创建映射文件
mkdir -p /opt/docker/mysql80/etc/mysql #配置文件映射 mkdir -p /opt/docker/mysql80/data #数据文件映射
8、随便生成一个容器来拷贝文件
docker run -di --name=mymysql -p 33306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:8.0 docker cp mymysql:/etc/mysql /opt/docker/mysql80/etc
修改配置文件
[mysqld] port = 3308 service_id=1 pid-file = /var/run/mysqld/mysqld.pid socket = /var/run/mysqld/mysqld.sock datadir = /var/lib/mysql secure-file-priv= NULL log-error=/var/lib/mysql/error.log log-bin=/var/lib/mysql/mysql-bin.log expire_logs_days=30
9、删掉这个要拷的docker
docker stop mymysql docker rm mymysql
10、运行容器
docker run -di --name=mysql80 -v /opt/docker/mysql80/etc/mysql:/etc/mysql -v /opt/docker/mysql80/data:/var/lib/mysql -p 3380:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:8.0
内网版
docker run --restart=on-failure:10 --network mynet -di --name=mysql80 -v /opt/docker/mysql80/etc/mysql:/etc/mysql -v /opt/docker/mysql80/data:/var/lib/mysql -p 33080:3308 -e MYSQL_ROOT_PASSWORD=123456 mysql:8.0