Назад | Перейти на главную страницу

Невозможно свернуть контейнер докеров Nginx rhel

Dockerfile:

FROM registry.access.redhat.com/rhel

WORKDIR /usr/src
RUN yum-config-manager --save --setopt=rhel-7-server-rt-beta-rpms.skip_if_unavailable=true

# Install Nginx Repository
RUN yum install -y http://nginx.org/packages/rhel/7/noarch/RPMS/nginx-release-rhel-7-0.el7.ngx.noarch.rpm

# Install 

RUN yum install -y nginx

# Clean up YUM
RUN yum clean all

# Disable Nginx to run on background
RUN echo "daemon off;" >> /etc/nginx/nginx.conf

# Expose the HTTP & HTTPS ports
EXPOSE 8080

=================================

Сборка докера

docker build -t nginxt .

=================================

Докер запустить

docker run -it -p 8080:8080  nginxt

=================================

[root@ip-20-0-0-86 friday]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED              STATUS              PORTS                    NAMES
7eaaf772b94a        nginxt              "/bin/bash"         About a minute ago   Up About a minute   0.0.0.0:8080->8080/tcp   elegant_kalam

[root@7eaaf772b94a src]# curl localhost:8080
curl: (7) Failed connect to localhost:8080; Connection refused

Образ NGINX Docker по умолчанию использует порт 80 для прослушивания HTTP-соединений.

Если вы используете EXPOSE 8080 в своем файле Docker, вы не устанавливаете этот порт для прослушивания NGINX, вы просто говорите, что мой контейнер может прослушивать подключения к порту 8080, но не NGINX использует 8080, для этого вам следует изменить конфигурацию NGINX файл.

Если вы хотите использовать порт 8080, вы можете использовать следующую команду docker:

docker run -it -p 8080:80  nginxt

Таким образом, порт 8080 на вашем хосте перенаправляется на порт 80 вашего контейнера NGINX. Также вы можете изменить EXPOSE с 8080 на EXPOSE 80 в вашем Dockerfile.

Для справки: