В большинстве ОС номера находятся в /usr/include/sys/syscall.h
Обычно вы можете позвонить по системному вызову (номер, остальные параметры)
.
Обратите внимание, что некоторые «системные вызовы» могут отсутствовать в syscalls.h, поскольку несколько интерфейсов системных вызовов реализуются одним системным вызовом, который использует дополнительный номер для выбора по вызову из группы вызовов.
Номера системных вызовов действительны только для определенной версии конкретной ОС.
В Solaris нет стабильного интерфейса системных вызовов, но есть стабильный интерфейс выше libc. Это полностью совместимо с POSIX, поскольку POSIX намеренно не делает различий между системными вызовами и библиотечными функциями.
Есть много способов сделать это, самый простой — использовать встроенную сеть Docker.
$ docker network ls
NETWORK ID NAME DRIVER SCOPE
6ef2c6836690 bridge bridge local
db24b1e2be58 host host local
edf606d533a5 none null local
По умолчанию ваш контейнер входит в сеть bridge
, если вы не укажете иное во время docker run...
.
$ docker run -P -d -p 12345:80 nginxdemos/hello
Как только вы сделаете это, любой хост в локальной сети сможет связаться с ним, используя IP-адрес хоста Docker + порт:
$ curl -I http://192.168.56.101:12345/
HTTP/1.1 200 OK
Server: nginx/1.13.8
Date: Fri, 27 Jul 2018 08:26:02 GMT
Content-Type: text/html
Connection: keep-alive
Expires: Fri, 27 Jul 2018 08:26:01 GMT
Cache-Control: no-cache
Имейте в виду, что ваш брандмауэр хоста Docker может быть причиной того, что трафик не входит/не выходит в/из контейнера Docker. В некоторых ситуациях вам может потребоваться добавить порт (12345 хоста Docker в моем примере выше )в список разрешений, чтобы хосты за пределами хоста Docker могли получить доступ к этому порту.