📋 核心要点
  • 三步起服务:docker search nginx 查找 → docker pull nginx 拉取 → docker run -p 10080:80 -d nginx 启动
  • -p 10080:80 把宿主机 10080 端口映射到容器 80 端口,访问 http://127.0.0.1:10080
  • docker cp 从容器拷出默认配置,再通过 -v 挂载本地目录实现配置/网页/日志持久化
  • 挂载三要素:nginx.conf(主配置)、conf.d(站点配置)、www(网页目录)、logs(日志)
  • 相关:Docker的一些常用操作

命令部署一个 nginx 服务

Bash
docker search nginx
  • 拉取最新 nginx 镜像
Bash
docker pull nginx
  • 使用 nginx 默认配置启动一个容器实例
Bash
docker run --rm --name nginx-test -p 10080:80 -d nginx
  • 查看 docker 容器是否启动
Bash
docker ps
  • 查看启动效果(注意端口是 10080)

    • 浏览器输入 http://127.0.0.1:10080
    • 命令行输入 curl http://localhost:10080

nginx 部署时,用本地文件映射到容器

1. 创建目录并从容器拷出默认配置

Bash
$ cd /home/nginx
$ mkdir www conf logs
$ docker cp nginx-test:/etc/nginx/nginx.conf /home/nginx/conf/nginx.conf
$ docker cp nginx-test:/etc/nginx/conf.d /home/nginx/conf/

拷贝后目录结构:

Bash
/home/nginx
├── www                 # 网页文件目录
├── conf
   ├── nginx.conf      # 主配置文件
   └── conf.d          # 站点配置目录
└── logs                # 日志目录

2. 挂载本地目录启动容器

Bash
docker run --rm -d -p 10080:80 --name nginx-test \
  -v /home/nginx/www:/usr/share/nginx/html \
  -v /home/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
  -v /home/nginx/conf/conf.d:/etc/nginx/conf.d \
  -v /home/nginx/logs:/var/log/nginx \
  nginx

挂载说明:

宿主机路径容器路径作用
/home/nginx/www/usr/share/nginx/html网页根目录
/home/nginx/conf/nginx.conf/etc/nginx/nginx.conf主配置
/home/nginx/conf/conf.d/etc/nginx/conf.d站点配置
/home/nginx/logs/var/log/nginx日志