V
V
VladimirKrasnov2021-01-21 11:33:57
Docker
VladimirKrasnov, 2021-01-21 11:33:57

How can two containers be linked in Docker?

I'm into docker and I've run into a problem. I have a container with RabbitMQ, and for it to work in the config, you need to specify the external ip of the application, this is my App container. So this external ip is dynamic and you constantly have to change the rabbit config with your hands, which is not very convenient. Is it possible to somehow set a static ip for app or link them?

version: '3'
services:
    #PHP Service
    app:
        build:
            context: .
            dockerfile: Dockerfile
        image: digitalocean.com/php
        container_name: app
        restart: unless-stopped
        tty: true
        environment:
            SERVICE_NAME: app
            SERVICE_TAGS: dev
        working_dir: /var/www
        volumes:
            - ./:/var/www
            - ./docker/php/local.ini:/usr/local/etc/php/conf.d/local.ini
        networks:
            - postgres
    #Nginx Service
    webserver:
        image: nginx:alpine
        container_name: webserver
        restart: unless-stopped
        tty: true
        ports:
            - "80:80"
            - "443:443"
        volumes:
            - ./:/var/www
            - ./docker/nginx/conf.d/:/etc/nginx/conf.d/
        networks:
            - postgres
    #Redis
    redis:
        image: 'redis:alpine'
        ports:
            - "6379:6379"
    #PostgreSQL        
    postgres:
        container_name: postgres_container
        image: postgres
        hostname: postgres
        environment:
            POSTGRES_DB: postgres
            POSTGRES_USER: postgres
            POSTGRES_PASSWORD: secret
            PGDATA: /data/postgres
        volumes:
            - postgres:/data/postgres
        ports:
            - "5432:5432"
        networks:
            - postgres
        restart: unless-stopped
  
    pgadmin:
        container_name: pgadmin_container
        image: dpage/pgadmin4
        environment:
            PGADMIN_DEFAULT_EMAIL: ${PGADMIN_DEFAULT_EMAIL:[email protected]}
            PGADMIN_DEFAULT_PASSWORD: ${PGADMIN_DEFAULT_PASSWORD:-admin}
        volumes:
            - pgadmin:/root/.pgadmin
        ports:
            - "${PGADMIN_PORT:-5050}:80"
        networks:
            - postgres
        restart: unless-stopped  
        depends_on: 
            - postgres     
    #RabbitMQ
    rabbit:
        image: "rabbitmq:3-management"
        hostname: "rabbit"
        environment:
            RABBITMQ_ERLANG_COOKIE: "SWQOKODSQALRPCLNMEQG"
            RABBITMQ_DEFAULT_USER: "rabbitmq"
            RABBITMQ_DEFAULT_PASS: "rabbitmq"
            RABBITMQ_DEFAULT_VHOST: "/"
        ports:
            - "15672:15672"
            - "5672:5672"
        labels:
            NAME: "rabbitmq"    
        networks:
            - postgres     
    #ElasticSearch
    elasticsearch:
        image: docker.elastic.co/elasticsearch/elasticsearch:5.4.3
        ports:
            - "9200:9200"
            - "9300:9300"
        networks:
            - postgres                      
#Docker Networks
networks:
  postgres:
    driver: bridge
volumes:
    postgres:
    pgadmin:

Answer the question

In order to leave comments, you need to log in

1 answer(s)
D
Dmitry Shitskov, 2021-01-21
@Zarom

Specify the name of the service as ip in the config - in this case, app

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question