Это должна быть простая проблема. Я использую boot2docker. Если я SSH в boot2docker:nginx недоступен вне контейнера Docker
[email protected]:~$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
89ec1492d7c7 mycontainer:latest "/bin/sh -c nginx" 35 seconds ago Up 35 seconds 80/tcp, 0.0.0.0:80->1000/tcp desperate_mestorf
Тогда завиток:
[email protected]:~$ curl localhost:1000 curl: (7) Failed connect to
localhost:1000; Connection refused
[email protected]:~$ curl
localhost:80 curl: (56) Recv failure: Connection reset by peer
Curl'd на порту 80 только, чтобы убедиться, что я не схожу с ума. Затем я подключаюсь к моим контейнерам bash:
[email protected]:~$ docker exec -i -t 89ec1492d7c7 bash
[email protected]:/srv/www# curl localhost
<!DOCTYPE html><html><head><link rel="stylesheet" href="/main.css"></head><body><h1>Welcome to Harp.</h1><h3>This is yours to own. Enjoy.</h3></body></html>root
Boom! Он работает, даже попробовал это, оставив порт по умолчанию 80. Что действительно странно, у меня есть другие контейнеры в моей коробке, в которые я могу добраться. Даже за пределами моей загрузочной виртуальной машины (которую я использую только для того, чтобы вытащить еще одну вещь из уравнения). Это должно быть просто правильно?
Вы опубликовали порт на хосте при запуске своего контейнера? – xuhdev
В докер-файле у меня есть «разоблачение 80» ... Я оба разоблачил порт и не выставил порт, то же самое. Если я опубликую этот файл докеров в AWS, он отлично работает. –