在docker上安装运行mysql实例

ps:实验环境是:CentOS Linux release 7.3  64位
1.获取mysql镜像
从docker hub的仓库中拉取mysql镜像
docker pull mysql
查看镜像
docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
docker.io/mysql     5.7                 b4e78b89bcf3        9 days ago          412.3 MB
 
2.运行一个mysql容器
运行一个mysql实例的命令如下:
docker run --name first-mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql
5b6bf6f629bfe46b4c8786b555d8db1947680138b2de1f268f310a15ced7247a
上述命令各个参数含义:
run            运行一个容器
--name         后面是这个镜像的名称
-p 3306:3306   表示在这个容器中使用3306端口(第二个)映射到本机的端口号也为3306(第一个)
-d             表示使用守护进程运行,即服务挂在后台
查看当前运行的容器状态:
docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
fe41e155a6ca        mysql               "docker-entrypoint.sh"   46 minutes ago      Up 46 minutes       0.0.0.0:3306->3306/tcp   first-mysql
想要访问docker的mysql数据库,我的机器上需要装一个mysql-client。
yum install mysql -y
下面我们使用mysql命令访问服务器,密码如刚才所示为123456,192.168.1.20为我这台机器的ip, 3306为刚才所示的占用本物理机的端口(不是在docker内部的端口)
mysql -h192.168.1.20 -P3306 -uroot -p123456
访问的结果如下:
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.00 sec)
 
3.运行第二个mysql实例
docker run --name second-mysql -p 3307:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql
5404fb11f29cba07b991f34056d6b40ed0888aa905a45e637e396d071bd7f331
docker ps
CONTAINER ID    IMAGE        COMMAND         CREATED       STATUS       PORTS          NAMES
5404fb11f29c    mysql        "docker-entrypoint.sh"  12 seconds ago   Up 11 seconds    0.0.0.0:3307->3306/tcp  second-mysql
5b6bf6f629bf    mysql        "docker-entrypoint.sh"  43 minutes ago   Up 43 minutes    0.0.0.0:3306->3306/tcp  first-mysql
如上所示,两个实例都正常运行了,为了访问第二个容器,我们指定端口3307登录到这个mysql的client。
mysql -h192.168.1.20 -P3307 -uroot -p123456
访问的结果如下:
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.00 sec)
 

原文地址:https://www.cnblogs.com/manger/p/7611309.html