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

  

  

posted @ 2020-07-07 14:41  你好啊,再见了  阅读(847)  评论(0编辑  收藏  举报