Intereting Posts
docker: контейнер выходил при использовании опции -v Невозможно развернуть приложение ASP .net vnext на виртуальной машине на Azure с помощью Docker Не удается получить доступ к порту на хосте, отображенном на порт контейнера докеров Многоступенчатая сборка Docker Конфигурация приложения Java в Docker (Kubernetes) Драйвер Docker для Openstack Команда «users» не найдена в контейнере докеров, построенном из альпийского Контейнер MySQL Docker не сохраняет данные для нового изображения Каталог docker tomcat не найден? Как получить открытый IP-адрес из контейнера в кубернетах Разница между перезагрузкой контейнера из-за проблем с живучестью или из-за запроса на остановку Ошибка сертификата boot2docker Эластичные переменные среды Beanstalk для хоста Docker Ошибки сертификата после изменения местоположения докеров в окнах Как показать идентификатор самого старого загруженного контейнера докеров?

Не удается подключиться к контейнеру Docker от хоста

Просто используя Docker в первый раз, поэтому я, вероятно, совершу ошибку новобранец, но здесь идет. Я пытаюсь использовать reactioncommerce/reaction изображения, и, похоже, он работает правильно. Однако я не могу подключиться к серверу с хоста.

Я запускаю docker run -p :8080 -it reaction как это было предложено на странице Docker Hub , затем пытаюсь получить к нему доступ, перейдя в http://localhost:8080 в браузере на хосте, но соединение не может быть выполнено. Где я иду не так?

Я работаю на хосте Linux Mint.

Я думаю, ваша проблема будет вашим флагом -p ( publish ). Предполагая, что ваш контейнер фактически прослушивает порт 8080 – try -p 8080:8080 который отобразит localhost: 8080 в ваш контейнер. (Ну, технически он будет отображать 0.0.0.0:8080 который является всеми адресами, включая внешние)

Но я думаю, что если вы не указали что-то с левой стороны, вы получаете сопоставленный случайный номер порта – вы должны увидеть это в docker ps или с помощью команды docker port .

Когда вы запускаете docker run -it вы запускаете его в интерактивном режиме – и он должен начинать «все, что определено в файле докеров», если вы не указали иначе. Я предполагаю, что это будет услуга, которую вы хотите, но я не знаю этого приложения. Вы также можете использовать флаг -d , который запускает контейнер в фоновом режиме.

Я считаю, что эта команда будет работать:

 docker run -p 127.0.0.1:8080:8080 -it reaction 

Я попытался сделать то же самое с локальным веб-сервером, но не смог подключиться к моему контейнеру с помощью localhost пока не 127.0.0.1 адрес 127.0.0.1 в мою команду -p .

Ваш файл /etc/hosts должен иметь следующую запись:

 127.0.0.1 localhost 

Это разрешит localhost домен, позволяющий вам использовать его для доступа к вашему серверу.