docker网络与docker-compose固定IP

Docker有三种网络模式:Brigde,host,none。Brigde是常用的网络模式,但是Docker0的默认IP是172.17.0.0/24这个网段开始,使用这个IP可能会和公司内网络冲突,造成网络故障。会造成没办法ssh到服务器。

因此使用docker首先要对网络自定义。
一、可以改变docker0的IP,方法:通过bip可以指定docker0,
如下:

[root@localhost ~]# vim /etc/docker/daemon.json 

"registry-mirrors":["https://registry.docker-cn.com"],
"data-root":"/data/docker",
"bip":"100.10.0.1/24"

[root@localhost ~]# docker network ls
NETWORK ID     NAME                  DRIVER    SCOPE
ac43d5d67a7b   bridge                bridge    local
a94bec924c12   host                  host      local
5f6ad59d300c   jmnet                 bridge    local
3a6b63c404c6   none                  null      local
[root@localhost ~]# docker inspect ac43d5d67a7b  | grep Subnet
                    "Subnet": "100.10.0.0/24",
[root@localhost ~]# docker inspect ac43d5d67a7b  | grep Gateway
                    "Gateway": "100.10.0.1"
[root@localhost ~]# ifconfig 

docker网络与docker-compose固定IP_第1张图片
二、也可以创建一个自己的网络,后绪容器依靠创建的网络来启动容器。

[root@localhost docker]# docker network create jmnet --subnet 100.10.1.0/24 --gateway 100.10.1.1
[root@localhost docker]# docker network ls
NETWORK ID     NAME      DRIVER    SCOPE
ba0ff675dfb0   bridge    bridge    local
f89d97fee01d   host      host      local
c94ef4292ef6   jmnet     bridge    local
8fd770ed6a8c   none      null      local

[root@localhost ~]# docker inspect jmnet | grep Subnet 
                    "Subnet": "100.10.1.0/24",
[root@localhost ~]# docker inspect jmnet | grep Gateway
                    "Gateway": "100.10.1.1"
[root@localhost ~]# 

三、使用docker-compose来启动容器,怎么固定IP呢
方法:

[root@localhost ~]# vim /docker-compose.yml

version: '3'

services:
  app:
    container_name: ""
    image: 
    restart: always
    ports:
      - 9001:3000
    volumes:

    environment:

    networks:
      extnetwork:
        ipv4_address: 100.10.10.2
networks:
  extnetwork:
    ipam:
      config:
        - subnet: 100.10.10.0/24
          gateway: 100.10.10.1

你可能感兴趣的:(docker,docker)