Skip to content

docker 安装 nginx

1.1 拉取镜像

使用以下命令拉取镜像,注意版本号需要根据实际情况填写

docker pull nginx:latest

1.2 获取 nginx 的配置文件

进到你想安装的目录位置
mkdir -p ./nginx/{conf,conf.d,html,logs,ssl}

启动nginx

docker run --name nginx -d -p 80:80 nginx:latest

拷贝nginx

docker cp nginx:/etc/nginx/nginx.conf ./nginx/conf/
docker cp nginx:/etc/nginx/conf.d ./nginx
docker cp nginx:/usr/share/nginx/html ./nginx

证书

放到nginx/ssl

/nginx/conf.d

default.conf

nginx
server {
    listen       80;
    listen  [::]:80;
    server_name  yangbin.site www.yangbin.site;
    return 301 https://$server_name$request_uri;
}

yangbin.site.conf

nginx
server {
    listen       443 ssl;
    server_name  yangbin.site;

    ssl_certificate /etc/nginx/ssl/yangbin.site.pem;
    ssl_certificate_key /etc/nginx/ssl/yangbin.site.key;
  
    ssl_session_cache shared:SSL:1m;
    ssl_session_timeout 5m;
  
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
    ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
  
    ssl_prefer_server_ciphers on;
  
    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
        try_files $uri $uri/ /index.html;
    }    
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
       root   html;
    }
}

1.3 关闭容器,移除容器

docker stop nginx
docker rm nginx

1.4 编写 nginx-compose.yml 文件

yaml
vi nginx-compose.yml
yaml
version: '3.8'  # 使用 Docker Compose 3.8 版本语法
services:
  nginx:
    image: nginx:latest  # 使用最新版 Nginx 镜像(可指定版本如 nginx:1.25)
    container_name: nginx  # 容器名称
    restart: always  # 总是自动重启
    ports:
      - "80:80"       # HTTP 端口映射
      - "443:443"     # HTTPS 端口映射
    volumes:
      - ./nginx/html:/usr/share/nginx/html            # 静态文件目录
      - ./nginx/conf/nginx.conf:/etc/nginx/nginx.conf  # 主配置文件(注意路径末尾无斜杠)
      - ./nginx/conf.d:/etc/nginx/conf.d               # 子配置目录
      - ./nginx/logs:/var/log/nginx                    # 日志目录
      - ./nginx/ssl:/etc/nginx/ssl                     # SSL 证书目录

1.5 启动容器

docker-compose -f nginx-compose.yml up -d