docker-compose管理容器network与ip问题

 更新时间:2024年01月09日 11:09:30   作者:binbreaze  
这篇文章主要介绍了docker-compose管理容器network与ip问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

docker-compose管理容器时,通常需要设定network,指定容器的ip,这样容器在启动时会通过指定的ip与宿主机桥接网络通信,同样可以通过ip实现容器之间的通信。

新建docker的network桥接网络

docker network create docker1 -o com.docker.network.bridge.name=docker1 -o com.docker.network.bridge.host_binding_ipv4=0.0.0.0 --driver=bridge --subnet=172.20.0.0/16 --gateway=172.20.0.1
  • docker1 桥接网卡名称
  • subnet 子网掩码
  • gateway 网关

查看新建网桥

docker network ls

docker network inspect docker1

docker容器

docker-compose.yml管理多个容器

version: '2'
networks:
  docker1:               ### 自建的network
    external: true
services:
 mgnt:
  image: mgnt
  container_name: mgnt
  hostname: mgnt
  restart: always
  command: supervisord -n -c /code/mgnt/supervisord.conf
  volumes:
   - /opt/mgnt/conf/serverConfig.json:/code/mgnt/frontend/static/serverConfig.json 
   - /opt/mgnt/conf/oem:/code/mgnt/frontend/static/img/oem
   - /opt/mgnt/conf/oem.json:/code/mgnt/frontend/static/oem.json
   - /opt/mgnt/conf/settings.py:/code/mgnt/backend/server/settings.py 
   - /opt/mgnt/conf/supervisord.conf:/code/mgnt/supervisord.conf 
   - /opt/mgnt/conf/redis/redis.conf:/etc/redis.conf 
   - /opt/mgnt/conf/license:/etc/fass/license
  ports:
   - "8000:8000"
   - "80:80"
  depends_on:
   - mgnt_mysql 
   - influxdb
  networks:
    docker1:
      ipv4_address: 172.20.0.3               ###容器固定ip 
 
 mgnt_mysql:
  image: mgnt_mysql
  container_name: mgnt_mysql
  hostname: mgnt_mysql
  restart: always
  ports:
   - 3308:3306
  volumes:
   - /opt/mgnt/data:/var/lib/mysql 
   - /opt/mgnt/conf/mysql/my.cnf:/etc/my.cnf 
   - /opt/mgnt/conf/mysql/conf.d:/etc/mysql/conf.d 
   - /opt/mgnt/conf/mysql/mysql.conf.d:/etc/mysql/mysql.conf.d 
  environment:
   - MYSQL_PORT=3306 
   - MYSQL_DATABASE=mgnt 
   - MYSQL_USER=admin 
   - MYSQL_PASSWORD=sysadmin 
   - MYSQL_ROOT_PASSWORD=sysadmin 
  networks:
    docker1:
      ipv4_address: 172.20.0.2
 influxdb:
  image: influxdb:alpine
  container_name: influxdb
  hostname: influx
  restart: always
  volumes:
    - /var/lib/influxdb:/var/lib/influxdb
  ports:
   - "8086:8086"
  networks:
    docker1:
      ipv4_address: 172.20.0.4

开启容器后docker1网桥内容

[
    {
        "Name": "docker1",
        "Id": "d1f2a4c0afe4b418e855dacc68f7fe3991d93b51c1ebd049ce1c5c81b598ae24",
        "Created": "2021-02-01T02:41:48.327058853-05:00",
        "Scope": "local",
        "Driver": "bridge",
        "EnableIPv6": false,
        "IPAM": {
            "Driver": "default",
            "Options": {},
            "Config": [
                {
                    "Subnet": "172.20.0.0/16",
                    "Gateway": "172.20.0.1"
                }
            ]
        },
        "Internal": false,
        "Attachable": false,
        "Ingress": false,
        "ConfigFrom": {
            "Network": ""
        },
        "ConfigOnly": false,
        "Containers": {
            "53b25b5832b6757f81653e2ed6f5a237d59950825c9e9015272dbd0ff673da5e": {
                "Name": "mgnt",
                "EndpointID": "0ed1a8d0d6cf444320e0fe985d2bcfcf70d80111b37928eb1519045f8ffa0336",
                "MacAddress": "02:42:ac:14:00:03",
                "IPv4Address": "172.20.0.3/16",            ### 容器ip
                "IPv6Address": ""
            },
            "b3623f6a04d56f7ade8022d289fbbd4fbd3409a5da1c08cd9293511b656481a5": {
                "Name": "mgnt_mysql",
                "EndpointID": "f05cf474e861e86e8cd7dfa6a5bdc43368c6af3b01e22d657f92b0a2ace913f1",
                "MacAddress": "02:42:ac:14:00:02",
                "IPv4Address": "172.20.0.2/16",           ### 容器ip
                "IPv6Address": ""
            },
            "e99f3d048e384732c12673989aea3814ecbf873e5850d87b36fe70d016861293": {
                "Name": "influxdb",
                "EndpointID": "17a3874417ee95b91c421a4beb281df067682eaf46e4f37ab929f76866b6c795",
                "MacAddress": "02:42:ac:14:00:04",
                "IPv4Address": "172.20.0.4/16",         ### 容器ip
                "IPv6Address": ""
            }
        },
        "Options": {
            "com.docker.network.bridge.host_binding_ipv4": "0.0.0.0",
            "com.docker.network.bridge.name": "docker1"
        },
        "Labels": {}
    }
]

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Docker部署Nginx并修改配置文件的两种方式

    Docker部署Nginx并修改配置文件的两种方式

    这篇文章主要给大家介绍了关于Docker部署Nginx并修改配置文件的两种方式,文中通过实例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2023-01-01
  • 通过Docker部署Redis 6.x集群的方法

    通过Docker部署Redis 6.x集群的方法

    这篇文章主要介绍了通过Docker部署Redis 6.x集群的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • Docker拉取镜像过慢解决方法

    Docker拉取镜像过慢解决方法

    这篇文章主要给大家介绍了关于Docker拉取镜像过慢的解决方法,如果在拉取Docker镜像时遇到速度较慢的问题可以参考本文的办法,文中通过代码示例介绍的非常详细,需要的朋友可以参考下
    2023-08-08
  • docker部署vue项目的实现步骤

    docker部署vue项目的实现步骤

    本文主要介绍了docker部署vue项目的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-07-07
  • Docker部署Spring-boot项目的示例代码

    Docker部署Spring-boot项目的示例代码

    这篇文章主要介绍了Docker部署Spring-boot的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-12-12
  • Docker 简单部署 ElasticSearch的实现方法

    Docker 简单部署 ElasticSearch的实现方法

    这篇文章主要介绍了Docker 简单部署 ElasticSearch的实现方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-09-09
  • 详解Centos7 下建立 Docker 桥接网络

    详解Centos7 下建立 Docker 桥接网络

    本篇文章主要介绍了详解Centos7 下建立 Docker 桥接网络,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-01-01
  • Docker安装Keycloak开源身份认证服务的图文教程

    Docker安装Keycloak开源身份认证服务的图文教程

    Keycloak是一款开源的认证授权平台,本文就来介绍一下Docker安装Keycloak开源身份认证服务的图文教程,具有一定的参考价值,感兴趣的可以了解一下
    2024-03-03
  • Docker网络及容器通信原理详解

    Docker网络及容器通信原理详解

    这篇文章主要介绍了Docker网络及容器通信原理详解的相关资料,并通过启动几个容器来探究Docker网络及容器通信,需要的朋友可以参考下
    2022-11-11
  • 容器管理工具 Rancher的安装与使用

    容器管理工具 Rancher的安装与使用

    这篇文章主要介绍了容器管理工具 Rancher的安装与使用,通过本文学习可以掌握基于Rancher的应用部署、扩容缩容操作,本文实例图文相结合给大家介绍的非常详细,需要的朋友可以参考下
    2022-08-08

最新评论