Я докернизировал простой сервер OPC UA.Когда я запускаю его локально, я могу без проблем подключиться к серверу.Однако, когда я запускаю сервер в контейнере Docker, клиент отказывается подключаться.Кроме того, когда я пытаюсь установить конечную точку для сервера как opc.tcp: // localhost: 4840, сервер не будет привязываться к адресу, когда он запускается внутри контейнера.Конечная точка opc.tcp: //127.0.0.1: 4840 должна использоваться.Это не проблема при локальном запуске сервера.Следующая библиотека используется для реализации сервера https://github.com/FreeOpcUa/python-opcua и используется клиент https://github.com/FreeOpcUa/opcua-client-gui.
Я попытался установить разные конечные точки без какой-либо удачи.
Реализация сервера:
from opcua import Server, ua
server = Server()
server.set_endpoint('opc.tcp://127.0.0.1:4840')
server.set_security_policy([ua.SecurityPolicyType.NoSecurity])
server.start()
try:
while True:
i = 1
finally:
server.stop()
Dockerfile предоставляет следующий порт EXPOSE 4840
.Команда Docker run
:
docker run --rm --name server -p 4840:4840 opcua