1.解决docker 容器内访问宿主机“No route to host”的问题,在搭建redis主从哨兵时
nmcli connection modify docker0 connection.zone trusted
systemctl stop NetworkManager.service
firewall-cmd --permanent --zone=trusted --change-interface=docker0
systemctl start NetworkManager.service
nmcli connection modify docker0 connection.zone trusted
systemctl restart docker.service
docker容器间相互通信:
docker network create wp-net
docker run -d -p 3306:3306 --name wp-mysql --network wp-net --network-alias mysql -e MYSQL_ROOT_PASSWORD=123 mysql
说明:
docker run:启动容器
-d:后台运行
-p 3306:3306:将容器的3306端口映射到宿主机的3306端口上
--name wp-mysql:指定容器的名称为wp-mysql
--network wp-net:将容器加入到wp-net网络中
--network-alias mysql:指定容器在wp-net网络中的别名是mysql
-e MYSQL_ROOT_PASSWORD=123:初始化数据库root用户的密码为123
防火墙
启动: systemctl start firewalld
关闭: systemctl stop firewalld
查看状态: systemctl status firewalld
开机禁用 : systemctl disable firewalld
开机启用 : systemctl enable firewalld
docker run -p 6380:6380 -v /data/redis_data/redis2:/data --network my_net --name redis-6380 -d redis redis-server redis.conf
docker run -p 6379:6379 -v /data/redis_data/redis1:/data --network my_net --name redis-6379 -d redis redis-server redis.conf
docker run -p 6381:6381 -v /data/redis_data/redis3:/data --network my_net --name redis-6381 -d redis redis-server redis.conf
docker run -p 26379:26379 -v /data/redis_data/redis1:/data -network my_net --name redis-26379 -d redis redis-sentinel sentinel.conf
docker run -p 26380:26380 -v /data/redis_data/redis2:/data -network my_net --name redis-26380 -d redis redis-sentinel sentinel.conf
docker run -p 26381:26381 -v /data/redis_data/redis3:/data -network my_net --name redis-26381 -d redis redis-sentinel sentinel.conf