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安装Oracle_11g的方法

    Docker安装Oracle_11g的方法

    这篇文章主要介绍了Docker安装Oracle_11g的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-04-04
  • Docker搭建Zookeeper&Kafka集群的实现

    Docker搭建Zookeeper&Kafka集群的实现

    这篇文章主要介绍了Docker搭建Zookeeper&Kafka集群的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-08-08
  • Docker上部署 nps 和 npc 实现内网穿透

    Docker上部署 nps 和 npc 实现内网穿透

    本文介绍了如何使用Docker部署nps和npc实现内网穿透。nps是一款高性能的内网穿透代理服务器,npc是nps的客户端,可以将内网服务映射到公网上。通过Docker的容器化技术,可以方便地部署和管理nps和npc,同时保证了应用的隔离性和安全性。
    2023-04-04
  • Dockerfile文件详解

    Dockerfile文件详解

    Dockerfile是一个用来构建镜像的文本文件,文本内容包含一条条构建镜像所需的指令和说明。本文详细讲解了Dockerfile文件,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-06-06
  • Docker关于Dockerfile的使用解读

    Docker关于Dockerfile的使用解读

    这篇文章主要介绍了Docker关于Dockerfile的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-02-02
  • Docker中的compose简介

    Docker中的compose简介

    Docker Compose 是 Docker 官方编排(Orchestration)项目之一,负责快速在集群中部署分布式应用,这篇文章主要介绍了Docker之compose介绍,需要的朋友可以参考下
    2023-02-02
  • docker之如何设置日志文件大小及个数

    docker之如何设置日志文件大小及个数

    这篇文章主要介绍了docker之如何设置日志文件大小及个数问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-05-05
  • Docker 阿里云镜像仓库CR使用小结

    Docker 阿里云镜像仓库CR使用小结

    阿里云提供了免费的容器镜像服务,更重要的是支持公开和私有仓库,本文主要介绍了Docker 阿里云镜像仓库CR使用小结,具有一定的参考价值,感兴趣的可以了解一下
    2024-02-02
  • Docker 搭建 Tomcat 运行环境的方法

    Docker 搭建 Tomcat 运行环境的方法

    这篇文章主要介绍了Docker 搭建 Tomcat 运行环境的方法,Docker与虚拟机及搭建过程,介绍的非常详细,需要的朋友可以参考下
    2016-10-10
  • 详解mac下通过docker搭建LEMP环境

    详解mac下通过docker搭建LEMP环境

    本篇文章主要介绍了详解mac下通过docker搭建LEMP环境,详细介绍了nginx,mysql,php的安装配置,有兴趣的可以来了解一下。
    2017-03-03

最新评论