Assign different IPs to different Docker container

I need to run two containers each containing a script binding on a specific (public) IP (11.11.11.22 and 11.11.11.23)

The docker host itself is on 10.10.10.222.

  • gitlab docker compose not available
  • Docker swarm TLS Failed to validate pending node
  • how to restrict number of service replicas in docker to 1
  • How to rename a Bluemix namespace (container registry)?
  • How to push a docker image to a private repository
  • use docker-client api to start container in Java project
  • I have the subnet 11.11.11.20/27, my gateway is 11.11.11.21

    If it matters my server is at SoftLayer.

    docker-compose.yml

    version: '2'
    services:
      nginx-0:
        image: nginx:1.10
        ports:
          - 11.11.11.22:80:80
        networks:
          app_net:
            ipv4_address: 11.11.11.22
    
      nginx-1:
        image: nginx:1.10
        ports:
          - 11.11.11.23:80:80
        networks:
          app_net:
            ipv4_address: 11.11.11.23
    
    networks:
      app_net:
        driver: bridge
        ipam:
          driver: default
          config:
          - subnet: 11.11.11.20/27
            gateway: 11.11.11.21
    

    ip a


    3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
        link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff
        inet 10.10.10.222/27 brd 10.10.10.223 scope global eth1
           valid_lft forever preferred_lft forever
        inet 11.11.11.22/32 brd 11.11.11.22 scope global eth1:0
           valid_lft forever preferred_lft forever
        inet 11.11.11.23/32 brd 11.11.11.23 scope global eth1:1
           valid_lft forever preferred_lft forever
    

    ips inside container docker exec nginx-0 ip a

    6: eth0@if7: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
        link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff
        inet 11.11.11.22/27 scope global eth0
           valid_lft forever preferred_lft forever
    

    If I curl the two IPs i get an “curl: (52) Empty reply from server”

    Any other IP in my range will return “Failed to connect…”

    Is there any solution to do this?

    Thanks in advance!
    Dominik

  • Can not scale service to multiple container when binding host port in docker-compose.yml
  • Use toaster to view yocto builds
  • How to configure docker containers so that I can access them outside the host
  • How to mount a Windows's folder in Docker using Powershell (or CMD)?
  • Docker: Manually Pushing to an Automated Build Repo
  • Run a service automatically in a docker container
  • One Solution collect form web for “Assign different IPs to different Docker container”

    I figured it out.

    I had to remove the interface on the host.

    ipconfig eth0:0 down
    ipconfig eth0:1 down
    

    I also removed it from the /etc/networking/interfaces

    Docker will be the best open platform for developers and sysadmins to build, ship, and run distributed applications.