LINUX.ORG.RU

Docker - не получается обновить debian в простейшем контейнере.

 ,


0

1
root@racknerd-457f52:~/testdocker# docker run -dt debian sleep infinity
f8bc537e3e412dd897209c61384919f46539658d32782730290935ef396b29c5
root@racknerd-457f52:~/testdocker# docker network inspect bridge
[
    {
        "Name": "bridge",
        "Id": "4fdd20eba414d4c7d253f1f070d7915f5222f8e2462ea9c2228f82384a36b75b",
        "Created": "2024-11-30T07:21:30.427539493Z",
        "Scope": "local",
        "Driver": "bridge",
        "EnableIPv6": false,
        "IPAM": {
            "Driver": "default",
            "Options": null,
            "Config": [
                {
                    "Subnet": "172.17.0.0/16",
                    "Gateway": "172.17.0.1"
                }
            ]
        },
        "Internal": false,
        "Attachable": false,
        "Ingress": false,
        "ConfigFrom": {
            "Network": ""
        },
        "ConfigOnly": false,
        "Containers": {
                        "f8bc537e3e412dd897209c61384919f46539658d32782730290935ef396b29c5": {
                "Name": "compassionate_jang",
                "EndpointID": "0320257e79fd738167e681269370a612ca45bf1a2accb1012fe622df20eedd33",
                "MacAddress": "02:42:ac:11:00:03",
                "IPv4Address": "172.17.0.3/16",
                "IPv6Address": ""
            }
        },
        "Options": {
            "com.docker.network.bridge.default_bridge": "true",
            "com.docker.network.bridge.enable_icc": "true",
            "com.docker.network.bridge.enable_ip_masquerade": "true",
            "com.docker.network.bridge.host_binding_ipv4": "0.0.0.0",
            "com.docker.network.bridge.name": "docker0",
            "com.docker.network.driver.mtu": "1500"
        },
        "Labels": {}
    }
]
root@racknerd-457f52:~/testdocker# ping 172.17.0.3
PING 172.17.0.3 (172.17.0.3) 56(84) bytes of data.
64 bytes from 172.17.0.3: icmp_seq=1 ttl=64 time=0.356 ms
64 bytes from 172.17.0.3: icmp_seq=2 ttl=64 time=0.101 ms
^C
--- 172.17.0.3 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1010ms
rtt min/avg/max/mdev = 0.101/0.228/0.356/0.127 ms
root@racknerd-457f52:~/testdocker# docker ps
CONTAINER ID   IMAGE                  COMMAND            CREATED          STATUS          PORTS
                                                                                                    NAMES
f8bc537e3e41   debian                 "sleep infinity"   55 seconds ago   Up 55 seconds
                                                                                                    compassionate_jang
root@racknerd-457f52:~/testdocker# docker exec -it f8bc537e3e41 /bin/bash
root@f8bc537e3e41:/# apt-get update
Ign:1 http://deb.debian.org/debian bookworm InRelease
Ign:2 http://deb.debian.org/debian bookworm-updates InRelease
Ign:3 http://deb.debian.org/debian-security bookworm-security InRelease
0% [Connecting to deb.debian.org]
0% [Connecting to deb.debian.org]^C

Вывод ip r на хосте

root@racknerd-457f52:~/testdocker# ip r
default via 23.95.146.1 dev eth0 onlink
10.0.0.0/24 dev wg0 proto kernel scope link src 10.0.0.1
23.95.146.0/24 dev eth0 proto kernel scope link src 23.95.146.210
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1

Вывод ip a на хосте

root@racknerd-457f52:~/testdocker# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 00:16:3c:3c:e7:06 brd ff:ff:ff:ff:ff:ff
    altname enp0s3
    altname ens3
    inet 23.95.146.210/24 brd 23.95.146.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::216:3cff:fe3c:e706/64 scope link
       valid_lft forever preferred_lft forever
3: wg0: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1420 qdisc noqueue state UNKNOWN group default qlen 1000
    link/none
    inet 10.0.0.1/24 scope global wg0
       valid_lft forever preferred_lft forever
4: docker0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
    link/ether 02:42:49:90:da:96 brd ff:ff:ff:ff:ff:ff
    inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
       valid_lft forever preferred_lft forever
    inet6 fe80::42:49ff:fe90:da96/64 scope link
       valid_lft forever preferred_lft forever
6: veth967efd3@if5: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master docker0 state UP group default
    link/ether fe:55:92:b5:6b:97 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet6 fe80::fc55:92ff:feb5:6b97/64 scope link
       valid_lft forever preferred_lft forever
9: br-77acab530700: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default
    link/ether 02:42:6c:10:1e:88 brd ff:ff:ff:ff:ff:ff
    inet 172.18.0.1/16 brd 172.18.255.255 scope global br-77acab530700
       valid_lft forever preferred_lft forever
10: br-d7b9fe88d56a: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default
    link/ether 02:42:bd:e0:5a:12 brd ff:ff:ff:ff:ff:ff
    inet 172.18.0.1/16 brd 172.18.255.255 scope global br-d7b9fe88d56a
       valid_lft forever preferred_lft forever
13: br-4457b7548d9b: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default
    link/ether 02:42:7b:60:5e:48 brd ff:ff:ff:ff:ff:ff
    inet 172.18.0.1/16 brd 172.18.255.255 scope global br-4457b7548d9b
       valid_lft forever preferred_lft forever
14: br-2edc86797c3b: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default
    link/ether 02:42:19:cf:76:50 brd ff:ff:ff:ff:ff:ff
    inet 172.18.0.1/16 brd 172.18.255.255 scope global br-2edc86797c3b
       valid_lft forever preferred_lft forever
17: br-e27012a7d8bf: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default
    link/ether 02:42:9d:ed:3c:72 brd ff:ff:ff:ff:ff:ff
    inet 172.18.0.1/16 brd 172.18.255.255 scope global br-e27012a7d8bf
       valid_lft forever preferred_lft forever
18: br-90de94d62a44: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default
    link/ether 02:42:61:6f:0a:00 brd ff:ff:ff:ff:ff:ff
    inet 172.18.0.1/16 brd 172.18.255.255 scope global br-90de94d62a44
       valid_lft forever preferred_lft forever
35: br-a560e3bf3b71: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default
    link/ether 02:42:c9:cc:50:a2 brd ff:ff:ff:ff:ff:ff
    inet 172.18.0.1/16 brd 172.18.255.255 scope global br-a560e3bf3b71
       valid_lft forever preferred_lft forever
36: br-6ba2839c619a: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default
    link/ether 02:42:5d:f7:8e:3a brd ff:ff:ff:ff:ff:ff
    inet 172.18.0.1/16 brd 172.18.255.255 scope global br-6ba2839c619a
       valid_lft forever preferred_lft forever
50: veth35d6943@if49: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master docker0 state UP group default
    link/ether ba:f5:6b:18:68:98 brd ff:ff:ff:ff:ff:ff link-netnsid 1
    inet6 fe80::b8f5:6bff:fe18:6898/64 scope link
       valid_lft forever preferred_lft forever

Адреса в состоянии DOWN видимо при работе x-ui получаются, но не уверен.

Что можно сделать, чтобы в docker-е заработало обновление системы?


не получается обновить debian в простейшем контейнере.

Это не так работает. Ты берешь новый образ с более новым дебианом, опционально на его базе строишь какой-то свой кастом и из этого разворачиваешь контейнер. Получаешь «более новый дебиан».

Напоминание: контейнеры не хранят состояние. И не надо пытаться сделать обратное.

aol ★★★★★
()
Ответ на: комментарий от aol

Я столкнулся с той же проблемой (apt-get не может обновиться) при разворачивании чужого софта в докере, поэтому и решил проверить работу докера с сетью в минимальном окружении. Как это тогда можно сделать самым простым способом?

Если что, то софт вот этот https://github.com/rafalp/Misago/ А докер файл от него выглядит вот так

root@racknerd-457f52:~/misago_docker# cat misago/Dockerfile
FROM python:3.12

ENV APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE 1
ENV PYTHONUNBUFFERED 1
ENV IN_MISAGO_DOCKER 1
ENV MISAGO_PLUGINS "/misago/plugins"

# Install dependencies in one single command/layer
RUN apt-get update && \
    apt-get install -y --allow-unauthenticated \
      vim \
      libffi-dev \
      libssl-dev \
      libjpeg-dev \
      libopenjp2-7-dev \
      locales \
      cron \
      postgresql-client-15 \
      gettext && \
    apt-get clean

# Make current directory available as "Misago" within docker
ADD . /misago
WORKDIR /misago

# Install requirements files
RUN pip install --upgrade pip && \
    pip install -r requirements.txt

# Bootstrap plugins
RUN ./.run bootstrap_plugins

# Expose port 3031 from Docker
EXPOSE 3031

# Call entrypoint script to setup
CMD ["uwsgi", "--ini", "uwsgi.ini"]
root@racknerd-457f52:~/misago_docker#
C
() автор топика
Ответ на: комментарий от C

докер файл от него выглядит вот так

ну, прекрасно, файл, как файл. docker build, docker run. готово.

если в контейнере сети нет почему-то, так это совсем другой вопрос и не надо его засорять лишним мусором о том, что не получается сделать то, что делать в принципе не нужно. таки дела.

aol ★★★★★
()
Ответ на: комментарий от anonymous

Буду знать про слои, спасибо. В своих контейнерах в один RUN буду все команды складывать. Но тут я просто чужой Dockerfile взял как есть.

C
() автор топика
Ответ на: комментарий от aol

если в контейнере сети нет почему-то, так это совсем другой вопрос

А как проверить сеть, если даже RUN apt-get install iputils-ping нельзя сделать? Не писать же отдельный скрипт на Python для деплоя в контейнер.

C
() автор топика
Ответ на: комментарий от cobold

Скопировал ping и ip в контейнер.

root@f8bc537e3e41:~# ./ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
49: eth0@if50: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
    link/ether 02:42:ac:11:00:03 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet 172.17.0.3/16 brd 172.17.255.255 scope global eth0
       valid_lft forever preferred_lft forever
root@f8bc537e3e41:~# ./ip r
default via 172.17.0.1 dev eth0
172.17.0.0/16 dev eth0 proto kernel scope link src 172.17.0.3
root@f8bc537e3e41:~# ./ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
^C
--- 8.8.8.8 ping statistics ---
78 packets transmitted, 0 received, 100% packet loss, time 78840ms

Действительно, надо с сетью в докере разбираться. Куда посмотреть?

C
() автор топика
Ответ на: комментарий от C

Может у вас iptables злодействует? Его нужно проверить, таблицу маршрутизации и tcpdump’ом посмотреть что на интерфейсах происходит. Смотреть в направлении https://www.opennet.ru/docs/RUS/LARTC/

ugoday ★★★★★
()
Ответ на: комментарий от ugoday
root@racknerd-457f52:~# iptables -L -v
Chain INPUT (policy ACCEPT 777K packets, 1325M bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain FORWARD (policy ACCEPT 315 packets, 22384 bytes)
 pkts bytes target     prot opt in     out     source               destination
    0     0 ACCEPT     all  --  br-6ba2839c619a !br-6ba2839c619a  anywhere             anywhere
    0     0 ACCEPT     all  --  br-6ba2839c619a br-6ba2839c619a  anywhere             anywhere
    0     0 ACCEPT     all  --  br-a560e3bf3b71 !br-a560e3bf3b71  anywhere             anywhere
    0     0 ACCEPT     all  --  br-a560e3bf3b71 br-a560e3bf3b71  anywhere             anywhere
    0     0 ACCEPT     all  --  br-90de94d62a44 !br-90de94d62a44  anywhere             anywhere
    0     0 ACCEPT     all  --  br-90de94d62a44 br-90de94d62a44  anywhere             anywhere
    0     0 ACCEPT     all  --  br-e27012a7d8bf !br-e27012a7d8bf  anywhere             anywhere
    0     0 ACCEPT     all  --  br-e27012a7d8bf br-e27012a7d8bf  anywhere             anywhere
    0     0 ACCEPT     all  --  br-2edc86797c3b !br-2edc86797c3b  anywhere             anywhere
    0     0 ACCEPT     all  --  br-2edc86797c3b br-2edc86797c3b  anywhere             anywhere
    0     0 ACCEPT     all  --  br-4457b7548d9b !br-4457b7548d9b  anywhere             anywhere
    0     0 ACCEPT     all  --  br-4457b7548d9b br-4457b7548d9b  anywhere             anywhere
    0     0 ACCEPT     all  --  br-d7b9fe88d56a !br-d7b9fe88d56a  anywhere             anywhere
    0     0 ACCEPT     all  --  br-d7b9fe88d56a br-d7b9fe88d56a  anywhere             anywhere
    0     0 ACCEPT     all  --  br-77acab530700 !br-77acab530700  anywhere             anywhere
    0     0 ACCEPT     all  --  br-77acab530700 br-77acab530700  anywhere             anywhere

Chain OUTPUT (policy ACCEPT 667K packets, 673M bytes)
 pkts bytes target     prot opt in     out     source               destination
root@racknerd-457f52:~# netstat -rn
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
0.0.0.0         23.95.146.1     0.0.0.0         UG        0 0          0 eth0
10.0.0.0        0.0.0.0         255.255.255.0   U         0 0          0 wg0
23.95.146.0     0.0.0.0         255.255.255.0   U         0 0          0 eth0
172.17.0.0      0.0.0.0         255.255.0.0     U         0 0          0 docker0
root@racknerd-457f52:~#

С ходу ничего серьезного не видно. А tcpdump-ом смотреть интерфейс docker0 ?

C
() автор топика
Ответ на: комментарий от cobold

Что можно сделать, чтобы в docker-е заработало обновление системы?

Но уже выяснили, что причина - неработающая сеть в докере. Как ее поправить? Какие настройки у хоста и у докера глянуть?

C
() автор топика
Ответ на: комментарий от C

Или я чего не понял, или у вас какой-то косяк в районе цепочки FORWARD. Обратитесь к документации вашей сборки линукса (к слову, что у вас?).

А tcpdump-ом смотреть интерфейс docker0 ?

Я в таких случаях смотрю весь путь прохождения пакетов в прямом и обратном направлении. Как минимум, это интерфейс в контейнере, docker0 и eth0. Если, например, на docker0 пакет появился, а до eth0 не дошёл, то это одна история, а если из eth0 ушёл, а обратно не вернулся — другая. В общем, загружаешь в мозг сетевой стек линукса, смотришь какие пакеты куда ходят и почему, в процессе выяснения, как правило, находишь причину потери пакетов.

ugoday ★★★★★
()
Ответ на: комментарий от C

В первом комментарии тебе написали что в работающем контейнере не нужно обновлять систему. Нужно собрать новую версию образа контейнера, погасить контейнер запущенный из старого образа, запустить контейнер из нового образа. Таков путь

cobold ★★★★★
()
Ответ на: комментарий от C

По дефолту docker добавляет правила MASQUERADE

Возможно, ты вручную что-то менял в файрволе и до них дело не доходит

А смотреть нужно другую таблицу. не mangle, а nat iptables -nvx -L -t nat

router ★★★★★
()
Ответ на: комментарий от ugoday

Сделал вот такой эксперимент - запустил ping в докере и tcpdump на eth0 и docker0

root@racknerd-457f52:~# tcpdump -i eth0 |grep one.one.one.one
tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), snapshot length 262144 bytes
13:47:57.263779 IP racknerd-457f52.47681 > one.one.one.one.domain: 151+ A? play.samsungcloud.com. (39)
13:47:57.265321 IP one.one.one.one.domain > racknerd-457f52.47681: 151 9/0/0 CNAME scloud-p2uw2-ext.elb.samsungcloud.com., A 52.26.51.246, A 52.11.211.89, A 34.212.48.142, A 34.216.121.132, A 52.43.212.92, A 54.185.190.34, A 44.224.76.103, A 52.26.102.101 (202)
13:47:57.725746 IP 172.17.0.3 > one.one.one.one: ICMP echo request, id 10, seq 80, length 64
13:47:58.407260 IP dns.google.domain > racknerd-457f52.55900: 23781 1/0/0 PTR one.one.one.one. (67)
13:47:58.749669 IP 172.17.0.3 > one.one.one.one: ICMP echo request, id 10, seq 81, length 64
13:47:59.773537 IP 172.17.0.3 > one.one.one.one: ICMP echo request, id 10, seq 82, length 64
13:48:00.797470 IP 172.17.0.3 > one.one.one.one: ICMP echo request, id 10, seq 83, length 64
13:48:01.821527 IP 172.17.0.3 > one.one.one.one: ICMP echo request, id 10, seq 84, length 64
13:48:02.845550 IP 172.17.0.3 > one.one.one.one: ICMP echo request, id 10, seq 85, length 64
13:48:03.869566 IP 172.17.0.3 > one.one.one.one: ICMP echo request, id 10, seq 86, length 64
13:48:04.893582 IP 172.17.0.3 > one.one.one.one: ICMP echo request, id 10, seq 87, length 64
13:48:05.917571 IP 172.17.0.3 > one.one.one.one: ICMP echo request, id 10, seq 88, length 64
13:48:06.941579 IP 172.17.0.3 > one.one.one.one: ICMP echo request, id 10, seq 89, length 64
13:48:07.965551 IP 172.17.0.3 > one.one.one.one: ICMP echo request, id 10, seq 90, length 64
13:48:08.989594 IP 172.17.0.3 > one.one.one.one: ICMP echo request, id 10, seq 91, length 64
13:48:10.013493 IP 172.17.0.3 > one.one.one.one: ICMP echo request, id 10, seq 92, length 64
root@racknerd-457f52:~# tcpdump -i docker0
tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on docker0, link-type EN10MB (Ethernet), snapshot length 262144 bytes
13:49:41.149431 IP 172.17.0.3 > one.one.one.one: ICMP echo request, id 10, seq 181, length 64
13:49:42.173417 IP 172.17.0.3 > one.one.one.one: ICMP echo request, id 10, seq 182, length 64
13:49:43.197449 IP 172.17.0.3 > one.one.one.one: ICMP echo request, id 10, seq 183, length 64
13:49:44.221456 IP 172.17.0.3 > one.one.one.one: ICMP echo request, id 10, seq 184, length 64
13:49:45.245480 IP 172.17.0.3 > one.one.one.one: ICMP echo request, id 10, seq 185, length 64
13:49:46.269507 IP 172.17.0.3 > one.one.one.one: ICMP echo request, id 10, seq 186, length 64
13:49:47.293447 IP 172.17.0.3 > one.one.one.one: ICMP echo request, id 10, seq 187, length 64
13:49:48.317480 IP 172.17.0.3 > one.one.one.one: ICMP echo request, id 10, seq 188, length 64

А вот когда пингуешь не с докера - то reply приходит нормально с 1.1.1.1

root@racknerd-457f52:~# tcpdump -i eth0 |grep one.one.one.one
tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), snapshot length 262144 bytes
13:51:06.800246 IP racknerd-457f52 > one.one.one.one: ICMP echo request, id 11, seq 1, length 64
13:51:06.800984 IP one.one.one.one > racknerd-457f52: ICMP echo reply, id 11, seq 1, length 64
13:51:07.040345 IP dns.google.domain > racknerd-457f52.35782: 56505 1/0/0 PTR one.one.one.one. (67)
13:51:07.801362 IP racknerd-457f52 > one.one.one.one: ICMP echo request, id 11, seq 2, length 64
13:51:07.801858 IP one.one.one.one > racknerd-457f52: ICMP echo reply, id 11, seq 2, length 64
13:51:08.829477 IP racknerd-457f52 > one.one.one.one: ICMP echo request, id 11, seq 3, length 64
13:51:08.829884 IP one.one.one.one > racknerd-457f52: ICMP echo reply, id 11, seq 3, length 64
13:51:09.853489 IP racknerd-457f52 > one.one.one.one: ICMP echo request, id 11, seq 4, length 64
13:51:09.853966 IP one.one.one.one > racknerd-457f52: ICMP echo reply, id 11, seq 4, length 64

Получается, с докера пакеты уходят, но обратно на ping с докера ответа нет. Только почему?

C
() автор топика
Ответ на: комментарий от router

О, точно. Действительно, чистил правила. Masquerade есть, но не на докер интерфейсе

root@racknerd-457f52:~# iptables -nvx -L -t nat
Chain PREROUTING (policy ACCEPT 21144 packets, 1380060 bytes)
    pkts      bytes target     prot opt in     out     source               destination
   19535  1142165 DOCKER     all  --  *      *       0.0.0.0/0            0.0.0.0/0            ADDRTYPE match dst-type LOCAL

Chain INPUT (policy ACCEPT 19546 packets, 1142753 bytes)
    pkts      bytes target     prot opt in     out     source               destination

Chain OUTPUT (policy ACCEPT 13694 packets, 1596798 bytes)
    pkts      bytes target     prot opt in     out     source               destination
       0        0 DOCKER     all  --  *      *       0.0.0.0/0           !127.0.0.0/8          ADDRTYPE match dst-type LOCAL

Chain POSTROUTING (policy ACCEPT 13756 packets, 1600902 bytes)
    pkts      bytes target     prot opt in     out     source               destination
       0        0 MASQUERADE  all  --  *      !br-6ba2839c619a  172.18.0.0/16        0.0.0.0/0
       0        0 MASQUERADE  all  --  *      !br-a560e3bf3b71  172.18.0.0/16        0.0.0.0/0
       0        0 MASQUERADE  all  --  *      !br-90de94d62a44  172.18.0.0/16        0.0.0.0/0
       0        0 MASQUERADE  all  --  *      !br-e27012a7d8bf  172.18.0.0/16        0.0.0.0/0
       0        0 MASQUERADE  all  --  *      !br-2edc86797c3b  172.18.0.0/16        0.0.0.0/0
       0        0 MASQUERADE  all  --  *      !br-4457b7548d9b  172.18.0.0/16        0.0.0.0/0
       0        0 MASQUERADE  all  --  *      !br-d7b9fe88d56a  172.18.0.0/16        0.0.0.0/0
       0        0 MASQUERADE  all  --  *      !br-77acab530700  172.18.0.0/16        0.0.0.0/0

Chain DOCKER (2 references)
    pkts      bytes target     prot opt in     out     source               destination
       0        0 RETURN     all  --  br-6ba2839c619a *       0.0.0.0/0            0.0.0.0/0
       0        0 RETURN     all  --  br-a560e3bf3b71 *       0.0.0.0/0            0.0.0.0/0
       0        0 RETURN     all  --  br-90de94d62a44 *       0.0.0.0/0            0.0.0.0/0
       0        0 RETURN     all  --  br-e27012a7d8bf *       0.0.0.0/0            0.0.0.0/0
       0        0 RETURN     all  --  br-2edc86797c3b *       0.0.0.0/0            0.0.0.0/0
       0        0 RETURN     all  --  br-4457b7548d9b *       0.0.0.0/0            0.0.0.0/0
       0        0 RETURN     all  --  br-d7b9fe88d56a *       0.0.0.0/0            0.0.0.0/0
       0        0 RETURN     all  --  br-77acab530700 *       0.0.0.0/0            0.0.0.0/0
root@racknerd-457f52:~#
C
() автор топика