Skip to content

已阅读

0%
通过Docker Compose部署Nginx

通过Docker Compose部署Nginx

Docker

通过Docker Compose部署Nginx

标签:
Docker Linux Docker Compose Nginx
发布于 2022年8月20日

参考资料

json
{
  "title": "Nginx Docs",
  "desc": "Drone is a self-service Continuous Integration platform for busy development teams.",
  "logo": "/assets/svg/common/nginx.svg",
  "link": "https://docs.nginx.com/nginx/admin-guide/installing-nginx/installing-nginx-docker/",
  "background": "#fff"
}
json
{
  "title": "Deploying NGINX and NGINX Plus on Docker",
  "desc": "Deploy NGINX and NGINX Plus as the Docker container.",
  "logo": "/assets/svg/common/nginx.svg",
  "link": "https://docs.nginx.com/nginx/admin-guide/installing-nginx/installing-nginx-docker/",
  "background": "#fff"
}

先决条件

  1. 创建挂载目录 mkdir -p /你的位置/nginx/{conf,conf.d,html,logs,cert}
  2. 下载镜像 docker pull nginx

运行并拷贝文件到宿主机

  1. 运行

    shell
    docker run -i -t nginx
  2. 查看CONTAINER ID

    shell
    docker ps -a
  3. 拷贝

    shell
    docker cp CONTAINER ID:/etc/nginx/nginx.conf /你的位置/nginx/conf/nginx.conf
    docker cp CONTAINER ID:/etc/nginx/conf.d/default.conf /你的位置/nginx/conf.d/default.conf

编写Docker Compose.yml文件,文件内容如下👇

yml
version: "3"

networks:
  my-net:
    external: true

services:
  nginx:
    image: nginx:latest
    container_name: nginx
    volumes:
      - /data/nginx/conf/nginx.conf:/etc/nginx/nginx.conf 
      - /data/nginx/conf.d/default.conf:/etc/nginx/conf.d/default.conf 
      - /data/nginx/logs:/var/log/nginx
      - /data/nginx/html:/usr/share/nginx/html
      - /data/nginx/cert:/etc/nginx/cert
    restart: always
    networks:
      - my-net
    ports:
      - "80:80"
      - "443:443"

解释

  • my-net提前构建的网络的名称,external: true使用外部网络,也就是说使用我之前创建好的网络
  • volumes::前宿主机地址,后容器地址
    • /data/nginx/conf/nginx.conf:/etc/nginx/nginx.conf:挂载配置文件
    • /data/nginx/conf.d/default.conf:/etc/nginx/conf.d/default.conf:挂载配置文件
    • /data/nginx/logs:/var/log/nginx:挂载日志
    • /data/nginx/html:/usr/share/nginx/html:挂载静态页面
    • /data/nginx/cert:/etc/nginx/cert:挂载ssl地址

注意

因为为拷贝默认的 html 目录,所以访问 localhost 时显示 403 Forbidden,如果想显示 nginx 默认页面可以在挂载前先拷贝一份默认的 html docker cp CONTAINER ID:/usr/share/nginx/html /你的位置/html /data/** 此处我用的是绝对路径,请根据自己情况修改,假设文件目录为

丨-- nginx     丨-- conf     丨-- conf.d     丨-- logs     丨-- heml     丨-- cert 且 docker-compose.yml 在 nginx 目录下,可以将 /data/nginx 改为 ./

执行命令

shell
docker compose up -d

访问服务器地址/ip如图👇

我对原有页面进行了翻译正常是英文的

Last updated: