Skip to content

1. docker nginx https 配置

注册域名(自行 阿里云 APP - 运维 - 域名注册)

  1. 底部点击运维 - 域名注册
  1. 域名注册 页面,输入自己喜欢的域名按照流程注册即可

域名 ICP 备案(自行 阿里云 APP - 运维 - ICP 备案)

  1. 底部点击运维 - ICP备案
  1. ICP 备案 添加自己的网站信息 - 需要正确书写 网站情况,需要工信部审核通过才可以(一般需要 3~5 个工作日)

阿里云域名解析(首次)

  1. 阿里云网站登录后

  2. 右上角 - 点击控制台

  3. 搜索 域名

  4. 点击 控制台 - 域名

    alt text

阿里云 ssl 证书申请(免费)

  1. 阿里云网站登录后

  2. 右上角 - 点击控制台

  3. 搜索 ssl

  4. 点击 数字证书管理服务(原SSL证书)alt text

  5. 点击左边 ssl 证书

  6. 免费证书

  7. 创建证书 alt text

  8. 输入域名名称 - 勾选 快捷签发 - 提交审核

    alt text

    alt text

下载 nginx ssl 证书

选择 nginx 相关证书下载

nginx 添加 ssl 证书

  1. 创建 nginx.conf 文件:
nginx
server {
    listen 443 ssl;  # 监听 443 端口并启用 SSL
    server_name yourdomain.com;  # 为特定域名设置服务器

    # 指定 SSL 证书和密钥文件的位置
    ssl_certificate /etc/nginx/ssl/yourdomain.com.crt;  # SSL 证书文件
    ssl_certificate_key /etc/nginx/ssl/yourdomain.com.key;  # SSL 密钥文件

    # 配置网站的根目录和首页文件
    location / {
        root /usr/share/nginx/html;  # 网站的根目录
        index index.html;  # 网站的默认首页文件
    }
}
  1. 创建 Dockerfile
dockerfile
# 使用最新的官方 Nginx 镜像作为基础镜像
FROM nginx:latest

# 将本地的 Nginx 配置文件复制到镜像中的 Nginx 配置目录
COPY ./nginx.conf /etc/nginx/nginx.conf

# 将 SSL 证书和密钥文件复制到镜像中的指定位置
COPY ./yourdomain.com.crt /etc/nginx/ssl/yourdomain.com.crt
COPY ./yourdomain.com.key /etc/nginx/ssl/yourdomain.com.key

# 将容器的 443 端口暴露出来,供外部访问 HTTPS 服务
EXPOSE 443
  1. 构建和运行 Docker 容器
bash
# 构建 Docker 镜像,镜像名为 my-nginx-https,基于当前目录下的 Dockerfile
docker build -t my-nginx-https .

# 在后台运行一个 Docker 容器,容器名为 my-nginx-https,将主机的 443 端口映射到容器的 443 端口
docker run -d -p 443:443 my-nginx-https
  1. docker-compose.yml 文件
yml
version: "3.8" # 使用 Docker Compose 文件版本 3.8
services:
  nginx:
    image: my-nginx-https # 使用上面构建的 Docker 镜像
    ports:
      - "443:443" # 将容器的 443 端口映射到主机的 443 端口
    volumes:
      - ./ssl:/etc/nginx/ssl # 将主机的 ./ssl 目录映射到容器的 /etc/nginx/ssl 目录
      - ./site:/usr/share/nginx/html # 将主机的 ./site 目录映射到容器的网站根目录
    restart: always # 如果容器退出,总是尝试重启容器

这里的 volumes 配置允许你将 SSL 证书和网站内容从宿主机挂载到容器中,这样就可以不必每次证书或网站内容更新时重新构建镜像。这样做也方便了证书的更新和网站内容的管理。

请确保你的目录结构中包含了正确的 SSL 证书路径和网站内容的路径。此外,docker-compose.yml 文件应该放在包含 ssl 和 site 文件夹的同一目录下。这样,Docker Compose 就可以正确地映射这些卷到你的容器中。

部署到云服务器

要使用 Docker Compose 运行定义在 docker-compose.yml 文件中的服务,你首先需要确保已经安装了 Docker Compose。接下来,你可以在包含 docker-compose.yml 文件的目录中运行以下命令:

启动服务

  • 启动所有服务(在后台运行):

    bash
    docker-compose up -d

    这个命令会读取 docker-compose.yml 文件,并启动里面定义的所有服务。-d 标志意味着容器将在后台运行。

  • 启动特定服务(如果你的 docker-compose.yml 文件中定义了多个服务):

    bash
    docker-compose up -d <服务>

    替换 <服务名> 为你想要启动的服务名称。

查看服务状态

  • 查看正在运行的服务状态:
    bash
    docker-compose ps
    这个命令会列出所有在当前 Docker Compose 项目下运行的容器的状态。

停止服务

  • 停止所有服务:
    bash
    docker-compose down
    这个命令会停止所有服务并删除所有相关容器。注意,这不会删除挂载的卷,除非你额外使用 -v 参数。

查看日志

  • 查看服务的日志:
    bash
    docker-compose logs
    这个命令会显示所有服务的日志输出。如果你只想查看某个特定服务的日志,可以使用:
    bash
    docker-compose logs <服务>

这些基本命令应该可以帮助你管理使用 Docker Compose 定义的容器。 通过这些命令,你可以轻松控制容器的启动、停止、监控状态以及访问日志。

云服务器端口放行

进入轻应用服务器实例 - 设置端口放行