无法卷曲Nginx rhel docker容器

无法卷曲Nginx rhel docker容器

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 构建

docker build -t nginxt .

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

Docker 运行

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

答案1

NGINX Docker 镜像默认使用端口 80 来监听 http 连接。

如果您在 Dockerfile 中使用 EXPOSE 8080,则您没有设置 NGINX 监听的端口,您只是说嘿我的容器可能监听到端口 8080 的连接,但 NGINX 不会使用 8080,因此您应该更改 NGINX 配置文件。

如果您想使用端口 8080,则可以使用以下 docker 命令:

docker run -it -p 8080:80  nginxt

这样,主机上的 8080 端口就会转发到 NGINX 容器的 80 端口。您也可以在 Dockerfile 中将 EXPOSE 从 8080 更改为 EXPOSE 80。

供你参考:

相关内容