如果不固定ip,每次启动时,docker会动态给容器分配ip,有些时候会造成影响。

1)创建自定义docker内部网络

docker network 官方文档 (看不懂可用浏览器翻译):https://docs.docker.com/engine/reference/commandline/network_create/

# 创建一个内网redisnet1
docker network create --subnet 172.172.0.0/16 redisnet1  
# 查看
docker network ls
# 打印
docker network inspect redisnet1
# 删除
docker network rm redisnet1
  • –subnet:指定网段的 CIDR 格式的子网
    • 其中172.172.0.0/16表示子网范围为16位

docker network --help 可以查看更多关于network的操作

2)运行容器安装软件,配置网络信息
docker run 参考官方文档:https://docs.docker.com/engine/reference/commandline/run/

docker run -d --name myredis1  --network redisnet1 --network-alias myredis1 --ip 172.172.0.2 -p 6379:6379 redis

说明:

  • 加入docker内部网络--network redisnet1

  • 配置容器在内部局域网的网络别名:--network-alias redisnet1

  • 配置在内部局域网的ip地址:--ip 172.172.0.2,注意点:

    1. 设置的ip必须在内部网络的网络范围中,不然会报错,不能正常启动

    2. 根据规定:忽略子网内全为0和全为1的地址,剩下的就是有效地址

    3. 第二位172.172.0.1也会被占用,是该子网的网关,不能使用

3)验证

重启容器后,IP不会动态分配而导致变化

查看容器ip可用 docker inspect 查看打印信息的"IPAddress": "172.172.0.2"字段

# docker inspect 容器名 
docker inspect myredis1
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐