Не удается подключиться к гостевому docker контейнеру с хоста через порт 1300 с помощью Netcat - PullRequest
0 голосов
/ 01 февраля 2020

Я пытался ответить на этот вопрос: Как подключиться к netcat, работающему в docker контейнере?

У меня есть

C:\Users\Chloe\workspace\spinsci>docker container ls
CONTAINER ID        IMAGE               COMMAND                 CREATED             STATUS              PORTS                    NAMES
0df9daa8d8cc        b7bd807e363a        "/bin/sh -c /bin/ash"   9 seconds ago       Up 6 seconds        0.0.0.0:1300->1300/tcp   optimistic_newton

C:\Users\Chloe\workspace\spinsci>docker exec -it 0df9daa8d8cc /bin/ash
/ # nc -l -p 1300

На моем хост-компьютере, Я пытаюсь подключиться, и это не удается:

$ nc -vv localhost 1300
nc: connect to localhost port 1300 (tcp) failed: Connection refused
nc: connect to localhost port 1300 (tcp) failed: Connection refused

$ nc 127.0.0.1 1300
$ nc 0.0.0.0 1300
$ telnet localhost 1300
Trying ::1...
Connection failed: Connection refused
Trying 127.0.0.1...
telnet: Unable to connect to remote host: Connection refused

Мой Dockerfile просто

FROM alpine:latest
EXPOSE 1300
CMD /bin/ash

Запуск docker inspect 0df9daa8d8cc Выход

...
    "HostConfig": {
        "PortBindings": {
            "1300/tcp": [
                {
                    "HostIp": "",
                    "HostPort": "1300"
                }
            ]
        },
...
    "NetworkSettings": {
        "Ports": {
            "1300/tcp": [
                {
                    "HostIp": "0.0.0.0",
                    "HostPort": "1300"
                }
            ]
        },
...
        "Networks": {
                "Gateway": "172.17.0.1",
                "IPAddress": "172.17.0.2",

Использование Docker Ящик для инструментов (Двигатель 19.03.5) потому что Windows 8.1.

1 Ответ

0 голосов
/ 01 февраля 2020

Docker Toolbox запускается docker на виртуальной машине linux, работающей в virtualbox. Виртуальная машина имеет свой собственный виртуальный NI C с другим IP-адресом. Он должен отображаться в списке windows адаптеров на панели управления (или с ipconfig), и по умолчанию IP-адрес находится в 192.168.99.x su bnet. Таким образом, правильная команда на хосте будет nc 192.168.99.x 1300, где x - это любое реальное значение из вашей текущей настройки.

...