docker启动容器做集群时需要固定ip,否则每次重启都会重新分配ip就会很坑
docker 查看已有的网桥:
docker network ls
我已经新建了一个,没有新建的话只有下面三个,因为docker有默认的网桥,name为bridge的那个就是,在新建容器时不能指定ip,所以需要新建自己的网桥
docker network create -d bridge --subnet=192.168.210.0/24 --gateway=192.168.210.1 -o parent=eth0 cc
参数意义:-o parent=eth0 通过宿主机的eth0访问外网
cc 是网桥名字
--subnet=192.168.210.0/24 中网段 210 自定义即可,都可以
创建完就是上面那个样子
额外补充:查看已创建网桥的网段: docker network inspect bridge
然后创建mysql容器
创建目录
/my/mysql/conf
/my/mysql/data
首先从已经有的测试用mysql容器复制出my.cnf文件放在/my/mysql/conf下,根据需要自定义配置文件
这里放上我的一个
[mysqld]
server-id=2
log_bin=master-bin
log_bin-index=master-bin.index
# 允许最大连接数
max_connections=200
# 允许连接失败的次数。
max_connect_errors=10
# 服务端使用的字符集默认为UTF8
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
datadir = /var/lib/mysql
#log-error = /var/log/mysql/error.log
# By default we only accept connections from localhost
#bind-address = 127.0.0.1
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
docker run -di --name=msql_master --net=cc --ip=192.168.210.3
-v /my/mysql/conf:/etc/mysql/mysql.conf.d/
-v /my/mysql/data:/var/lib/mysql
-p 3306:3306
-e MYSQL_ROOT_PASSWORD=123456
mysql:5.7
参数意义:
两个-v,一个是配置文件,一个是mysql数据文件方便在宿主机上操作
-e 是设置密码