Кастомные сети Docker или network_mode = host, какой из них выбрать? - PullRequest
0 голосов
/ 23 июня 2019

У меня есть вопрос относительно использования режима network_host.В docker_compose у меня есть 3-4 сервисов весенней загрузки, с которыми я хочу общаться друг с другом.Первоначально я использовал пользовательскую сеть для взаимосвязанности сервисов, для этого мне нужно было указывать URL-адрес хоста для каждого порта, но затем я обнаружил хост network_mode, который, на мой взгляд, стал проще для меня с меньшим изменением кода.Мой вопрос: что является лучшей практикой, чтобы иметь собственную сеть?Или мы можем использовать хост network_mode для сервисов для связи друг с другом?

Ниже приведен мой файл docker-compose.

version: '3'
services:
    redis:                                                                          
       image: redis
       ports:
           - "6379:6379"
    cas-service:
        container_name: cas-service
        image: localhost:5000/cas-service:docker-1.0
        volumes:
             -/DiGiID:/DiGiID   
        ports:
           - "8082:8082"
        depends_on:
            - redis
    eureka-service:
        container_name: eureka-service
        image: localhost:5000/eureka-service:docker-1.0
        volumes:
             -/DiGiID:/DiGiID
        ports:
           - "8301:8301"        
    user-service:
        container_name: user-service
        image: localhost:5000/user-service:docker-1.0
        volumes:
             -/DiGiID:/DiGiID
        ports:
            - "8302:8302"
        depends_on:
              - cas-service
    sftp-service:
        container_name: sftp-service
        image: localhost:5000/sftp-service:docker-1.0
        volumes:
             -/DiGiID:/DiGiID
        ports:
            - "8333:8333"
        depends_on:
              - cas-service
    product-service:
        container_name: product-service
        image: localhost:5000/product-service:docker-1.0
        volumes:
             -/DiGiID:/DiGiID
        ports:
            - "8304:8304"
        depends_on:
              - cas-service
    device-service:
        container_name: device-service
        image: localhost:5000/device-service:docker-1.0
        volumes:
             -/DiGiID:/DiGiID
        ports:
            - "8303:8303"
        depends_on:
              - cas-service
    digiid-service:
        container_name: digiid-service
        image: localhost:5000/digiid-service:docker-1.0
        volumes:
             -/DiGiID:/DiGiID
        ports:
           - "8080:8080"

Ответы [ 2 ]

1 голос
/ 23 июня 2019

Если все ваши сервисы объявлены в одном и том же файле docker-compose.yml, вам следует подключать их напрямую (имя сервиса и внутренний порт), а не через порты, отображаемые на хосте.Если они определены в разных файлах, вы все равно можете поместить их в одну и ту же сеть и соединить их по имени службы и внутреннему порту.

Если вы портируете свой docker-compose.yml, я лучше объясню для вашей ситуации.

В общем, избегайте использования сети хоста, если у вас нет другого выбора.

0 голосов
/ 23 июня 2019

Ваш сценарий выглядит хорошо для режима моста сети.Если вы используете сетевой режим хоста, он принимает свойства хоста, а затем вам необходимо изолировать хост-компьютер для устранения любых угроз безопасности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...