docker Не удалось получить D -Соединение с шиной :Операция не разрешена

Если вы не используете Windows или AWS Linux, вам потребуется настроить интерфейс вручную.

Launching an Amazon Linux or Windows Server instance with multiple network interfaces automatically configures interfaces, private IPv4 addresses, and route tables on the operating system of the instance.

В разделе Best Practicesтакже содержится предостережение о потенциальной проблеме, связанной с наличием двух интерфейсов (или более )в одной подсети.

If you attach two or more network interfaces from the same subnet to an instance, you may encounter networking issues such as asymmetric routing. If possible, use a secondary private IPv4 address on the primary network interface instead. For more information, see Assigning a Secondary Private IPv4 Address.

Предупреждение Следующие шаги представляют собой проанализированную версию второй ссылки, указанной ниже, ymmv.

Шаги, которые я выполнил для создания вторичного интерфейса, были:

  1. Создайте файл /etc/sysconfig/network -scripts/ifcfg -eth1 со следующим:

    DEVICE=eth1
    NAME=eth1
    HWADDR=
    BOOTPROTO=dhcp
    ONBOOT=yes
    TYPE=Ethernet
    USERCTL=no
    NM_CONTROLLED=no
    
  2. Отредактируйте /etc/sysconfig/network и добавьте:

    GATEWAYDEV=eth0
    
  3. Предотвратите перезапись ваших изменений в облаке -init, отредактируйте /etc/cloud/cloud.cfg и добавьте:

    network:
     ; config: disabled
    
  4. Перезапустите сеть

    systemctl restart network
    
  5. Создать дополнительную таблицу маршрутизации

    ip route add default via  dev eth1 table 
    
  6. Добавить маршрут в новую таблицу

    ip route add  dev eth1 table 
    
  7. Установите правило в базе данных политик

    ip rule add from  lookup 1000
    
  8. Создайте файл статического маршрута /etc/sysconfig/network -scripts/route -eth1 и добавьте:

    default via  dev eth1 table 1000
     dev eth1 table 1000
    
  9. Создайте файл правил для правила -eth1 /etc/sysconfig/network -scripts/rule -eth1:

    from  lookup 
    

ПРИМЕЧАНИЕ

На шаге 4 вы можете получить сообщение об ошибке при перезапуске сети. Если вы это сделаете, переместите/переименуйте файл ifcfg-eth0и pkill dhclient. Затем мне пришлось вернуть файл ifcfg -eth0 обратно, чтобы он загружался при перезагрузке.

Ссылки

https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html

https://aws.amazon.com/premiumsupport/knowledge-center/ec2-centos-rhel-secondary-interface/

https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/MultipleIP.html#ManageMultipleIP

0
04.07.2020, 17:22
1 ответ

Когда я загружаю и запускаю centos:latest, я получаю контейнер CentOS 8 Docker, который не запускается systemd. Вам нужно будет сделать больше, чтобы заставить systemdработать, но вам действительно не нужна система инициализации, поскольку Docker предназначен для запуска одного процесса внутри своих контейнеров.

Глядя на Dockerfile агента Zabbix, созданный Zabbix , он не пытается использовать systemd.

Пробовали ли вы использовать zabbix/zabbix-agent:centos-5.0-latestи посмотреть, будет ли это работать лучше?

Обновление после комментариев:

Вот как может выглядеть ваш Dockerfile после использования этих рекомендаций:

FROM zabbix/zabbix-agent:centos-5.0-latest
ENV container docker

COPY./zbx-speedtest.sh /etc/zabbix/bin/zbx-speedtest.sh
RUN chmod +x /etc/zabbix/bin/zbx-speedtest.sh
COPY./speedtest.conf /etc/zabbix/zabbix_agentd.d/speedtest.conf

Затем вам нужно будет настроить zabbix-speedtest.serviceи zabbix-speedtest.timerдля запуска из контекста хоста, на котором вы будете развертывать контейнер Docker.

2
18.03.2021, 23:22

Теги

Похожие вопросы