@zlodiak

Почему докер-контейнер не отображает страничку?

По простейшему туториалу пытаюсь сделать доступноц в браузере html-страничку. В качестве сервера использую nginx:alpine.

Руками создаю html-страничку. В этом же каталоге создаю Dockerfile:
FROM nginx:alpine
COPY . /usr/share/nginx/html

билдю так:
/nginx $ docker build -t webserver-image:v1 .
Sending build context to Docker daemon  3.584kB
Step 1/2 : FROM nginx:alpine
 ---> bfba26ca350c
Step 2/2 : COPY . /usr/share/nginx/html
 ---> b54c91e64bfc
Successfully built b54c91e64bfc
Successfully tagged webserver-image:v1


Образ создаётся без ошибок:
docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
webserver-image     v1                  b54c91e64bfc        16 seconds ago      20.5MB


Проблема в том, что не могу посмотреть эту страничку через браузер:
kalinin@md ~/python/nginx $ docker run -d -p 80:80 webserver-image:v1
a672d7837f64a95d41815fc8ab931870fc2545d6118987bb173c798e049e2ea7
docker: Error response from daemon: driver failed programming external connectivity on endpoint wizardly_hermann (aa134f246786be398ba332286db88d73f04f5d1047996420eddb5c91282f8ce5): Error starting userland proxy: listen tcp 0.0.0.0:80: listen: address already in use.
kalinin@md ~/python/nginx $ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
kalinin@md ~/python/nginx $ docker run -d -p 8000:8000 webserver-image:v1
af08f8ef18e1fb06fe190612c20b89430eeadd8e0d42184f65483616c7bb938e
kalinin@md ~/python/nginx $ curl docker
curl: (6) Could not resolve host: docker
kalinin@md ~/python/nginx $ curl localhost:8000
curl: (56) Recv failure: Соединение разорвано другой стороной


Помогите пожалуйста понять в чём ошибка
  • Вопрос задан
  • 2352 просмотра
Решения вопроса 1
deepblack
@deepblack
Error response from daemon
Что-то пошло не так.

docker run hello-world запускается?

docker run -d -p 80:80 webserver-image:v1 тут 80 порт
curl localhost:8000 тут 8000 порт

docker run -d -p 8000:80 webserver-image:v1
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Stqs
senior software developer
zlodiak,
без обид но ваши действия напоминают судорожные бессистемные попытки подобрать пароль к какому-то замку
почему вы вначале пробуете порт -p 80:80 и потом пробуете -p 8000:8000? где логика? вы пытаетесь подобрать порт случайным образом? разве вы не знаете/понимаете какой именно порт вам нужен?
то же самое дальше

$ curl docker
curl: (6) Could not resolve host: docker
$ curl localhost:8000
curl: (56) Recv failure: Соединение разорвано другой стороной

вы пытаетесь случайным образом угадать что именно можно дать в качестве аргумента для curl что б получить ответ?

давайте по порядку
имедж вы собрали
далее вы пытаетесь запустить контейнер
$ docker run -d -p 80:80 webserver-image:v1
a672d7837f64a95d41815fc8ab931870fc2545d6118987bb173c798e049e2ea7
docker: Error response from daemon: driver failed programming external connectivity on endpoint wizardly_hermann (aa134f246786be398ba332286db88d73f04f5d1047996420eddb5c91282f8ce5): Error starting userland proxy: listen tcp 0.0.0.0:80: listen: address already in use.

что именно тут непонятно? есть же google translate в конце концов
пока мы не поймем что именно вам тут непонятно - дальше двигаться смысла нет
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы