Docker启动2个mysql容器

Docker 启动另一个Mysql容器

目的

启动2个 Mysql 容器,一个用于 A,一个用于 B

背景

  • docker 目前已有Mysql镜像
docker images

1

  • docker 目前已启动一个 Mysq 容器(用于 A,端口 3306
docker ps

image-20210207160802839

第一个 MySQL 容器暂时忽略(成功后的结果)

操作

1. 基于已有MySQL镜像创建一个容器

docker run --name self_mysql -e MYSQL_ROOT_PASSWORD=123456 -p 13307:13307 -d mysql:5.7.30

–name self_mysql:指定容器名称为self_mysql

-e MYSQL_ROOT_PASSWORD=123456: 设置默认密码为123456

-p 13307:13307: 设置端口容器和主机的端口映射

-d mysql:5.7.30: 指定镜像和tag

2. 修改远程连接权限

2.1. 进入容器
docker exec -it self_mysql /bin/bash
2.2. 连接MySQL
mysql -uroot -p123456
2.3. 设置远程连接权限
use mysql;
select host, user from user;
update user set host='%' where user='root';
grant all privileges on *.* to 'root'@'%' identified by '123456';
flush privileges;

image-20210120111202045

3. 修改MySQL端口号

编辑 /etc/mysql/my.cnf,这个看到引入了2个目录,最终修改的是 /etc/mysql/mysql.conf.d/mysqld.cnf

image-20210120111712393

修改容器中的文件有2种方式:

  • 在容器中安装vi/vim,直接编辑
apt-get update
apt-get install vim
或
yum update
yum install vim
  • 将容器的文件copy到主机,修改完成再copy回容器
# 将容器的文件copy到主机
docker cp self_mysql:/etc/mysql/mysql.conf.d/mysqld.cnf /root

# 文件在主机做修改

# 将主机的文件copy到容器
docker cp /root/my.cnf self_mysql:/etc/mysql/mysql.conf.d/

4. 重启容器

docker restart self_mysql

5. 测试连接

  • 测试端口是否连通: telnet 192.168.x.x 13307
  • MySQL client连接:mysql -uroot -h192.168.x.x -P13307 -p123456
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值