В сети Docker я пытаюсь установить связь между двумя контейнерами, используя python-сокеты (для отправки пакетов).Проверка связи работает, но библиотека сокетов python не работает.
Ошибка:
line 6: conn, addr = sock.connect(('172.168.1.2', 4000))
TypeError: 'NoneType' object is not iterable
Первый файл python3 receive.py запускается в container1.Затем python3 send.py запускается в контейнере 2. Контейнер 1 выводит «принято», а затем больше ничего.Контейнер 2 ошибки, как указано выше.
Эта сеть представляет собой пользовательскую сеть с собственной подсетью и шлюзом по умолчанию.Эта ошибка не возникает с тем же самым точным кодом, когда я использую его для подключения к своему Raspberry Pi, но это ошибки с взаимодействием контейнера.
Весь код:
Контейнер1:
import socket
def receive():
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind(("", 4000))
s.listen(2)
conn, addr = s.accept()
print("accepted")
print(bytes.decode(conn.recv(1024)))
Контейнер 2:
import socket
def send():
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
command = "bridge test!"
conn, addr = sock.connect(('172.168.1.2', 4000))
conn.sendall(command)
Для настройки сети:
docker network create --subnet 172.168.1.0/24 testNetwork
docker network connect testNetwork container1
docker network connect testNetwork container2
Я получил IP-адреса контейнеров от Docker Inspect (плюс проверка связи работает) Пожалуйста, помогите!Спасибо!