docker - 在 HTTPS 上运行 docker 服务

标签 docker docker-compose docker-swarm

目前,我使用以下文件运行一个简单的 docker 容器。

DockerFile

FROM microsoft/aspnet:4.7.1
WORKDIR /inetpub/wwwroot
EXPOSE 80
COPY index.html .

docker -compose.yml
version: '3.4'

services:

testapp:
  image: mytestapp:${TAG:-latest}
build:
  context: .
  dockerfile: Dockerfile

docker-compose.override.yml
version: '3.4'

services:
  testapp:
   ports:
    - "9091:80"

我使用 windows 镜像通过以下命令创建我的容器,我可以通过 http://localhost:9091/ 访问它.
docker-compose -f docker-compose.yml -f docker-compose.override.yml build

我想使用 HTTPS 而不是 http 访问我的应用程序。

我需要遵循哪些步骤?

最佳答案

  • 您需要配置您的 Web 服务器(在 docker 应用程序内)以启用 HTTPS。
  • 在 docker 上打开 SSL 端口 (443)
  • 您可以考虑使用 NGINX 作为 Web 服务器的反向代理,并在 nginx
  • 中配置 SSL
  • 另一方面,如果这是一个公共(public)站点,您可以查看letsencrypt 为您的域获取免费的SSL 证书。
  • 关于docker - 在 HTTPS 上运行 docker 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50810165/

    相关文章:

    macos - 如何在 Mac 中更改 docker 网络 IP 地址

    docker - 当docker hub不可用时,用docker部署的一种好的样式是什么?

    python - Centos Python Dockerfile 图像大小减少

    node.js - Node 进程和跨多个 Node 的复制

    python - Docker 无法识别 .env postgres 变量

    docker - docker-compose.yml覆盖删除镜像构建

    docker - 使用 Docker Compose 重新启动容器时丢失所有修改

    直到我在 Kitematic 中单击 "Enable volumes",Docker 容器才会运行

    docker - 在 swarm 中运行时无法从私有(private)注册表中推送/拉取

    docker 群 : difference between --swarm-discovery and cluster-store