如何在 httpd docker 图像上关闭 HTTP

How to shut down HTTP on httpd docker image

我已经创建了一个容器 运行 apache2 http 服务器,加载了我的证书并且 https://mydomain 可以工作,但是 http://mydomain 也可以工作,如果我在浏览器上输入数字 mydomain 浏览器打开http://mydomain。有没有办法禁用http协议?我在启动容器时只使用 -p 443:443

这是我的 Dockerfile

ARG version=2.4.48-alpine

FROM httpd:$version

LABEL version=1.0

COPY ./public_html/ /usr/local/apache2/htdocs/

# run web traffic over SSL/HTTPS

COPY ./cert/srv.crt /usr/local/apache2/conf/
COPY ./cert/srv.key /usr/local/apache2/conf/

RUN ["sed", "-i", "-e", "'s/^#\(Include .*httpd-ssl.conf\)//'", "-e", "'s/^#\(LoadModule .*mod_ssl.so\)//'", "-e", "'s/^#\(LoadModule .*mod_socache_shmcb.so\)//'", "conf/httpd.conf"]


EXPOSE 443/tcp

这是docker ps的输出:

CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                          NAMES
21678d6321e4        webserver           "/bin/sh"           2 hours ago         Up About an hour    80/tcp, 0.0.0.0:443->443/tcp   webserver

我解决了重定向 httphttps 的问题,同时暴露了 80 端口。