docker-compose部署Nginx

本文介绍了如何使用Docker启动Nginx,并通过挂载宿主机目录实现配置文件、网页内容和日志的持久化。首先,临时启动Nginx容器并拷贝默认配置,然后创建持久化目录,通过`docker run`命令指定挂载路径启动容器。此外,还展示了如何使用`docker-compose`进行容器编排,方便管理和更新配置。在修改配置后,使用`docker-compose up -d --force-recreate`重新创建容器以应用更改。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

docker挂载文件时会覆盖掉容器里面的目录,因此需准备一份默认的配置文件

准备配置文件

  • 临时启动nginx容器,拷出默认配置文件
# 启动nginx
docker run -d --name tmp-nginx nginx:latest

# 拷出默认配置文件
mkdir -p /root/nginx/{config,data,logs}
docker cp tmp-nginx:/etc/nginx /root/nginx/config/ 
docker cp tmp-nginx:/usr/share/nginx/html /root/nginx/data/
docker cp tmp-nginx:/var/log/nginx /root/nginx/logs/ 
  • 删除临时容器
docker rm -f tmp-nginx

docker方式启动

  • 持久化目录须为绝对路径
docker run -d --name nginx -p 80:80 \
-v /root/nginx/config/nginx/:/etc/nginx \
-v /root/nginx/data/html:/usr/share/nginx/html \
-v /root/nginx/logs/:/var/log/nginx \
nginx:latest
  • 测试,修改欢迎页面
cd /root/nginx/data/html
echo "hello nginx" > index.html
  • 访问

image-20220311093150528

docker-compose方式启动

  • 进入工作目录/root/nginx,创建docker-compose编排文件(挂载目录一致)
vim docker-compose.yml
version: '3'
services:
  nginx:
    image: nginx         # 镜像
    container_name: nginx # 容器名
    restart: always      # 开机自动重启
    ports:               # 端口号绑定(宿主机:容器内)
      - 80:80
    volumes:             # 目录映射(宿主机:容器内)
      - ./config/nginx/:/etc/nginx
      - ./data/html:/usr/share/nginx/html
      - ./logs/:/var/log/nginx
  • 启动
docker-compose up -d
  • 停止
docker-compose down
  • 若修改配置,需重新创建容器
docker-compose up -d --force-recreate
### 使用 Docker-Compose 部署 Nginx 的教程 #### 1. 安装 DockerDocker Compose 在使用 `docker-compose` 前,需先安装 Docker 并单独安装 Docker Compose。可以通过以下命令下载并安装 Docker Compose: ```bash curl -L https://github.com/docker/compose/releases/download/1.21.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose chmod +x /usr/local/bin/docker-compose ``` 此操作会将指定版本的 Docker Compose 下载到 `/usr/local/bin/docker-compose` 路径下,并赋予可执行权限[^1]。 #### 2. 编写 docker-compose.yml 文件 为了部署 Nginx,需要创建一个名为 `docker-compose.yml` 的文件。以下是该文件的一个简单示例配置: ```yaml version: '3' services: nginx: image: nginx:latest container_name: my_nginx_container ports: - "80:80" volumes: - ./html:/usr/share/nginx/html - ./conf.d:/etc/nginx/conf.d restart: always ``` 在此配置中: - `image: nginx:latest` 表示使用官方最新的 Nginx 镜像。 - `container_name: my_nginx_container` 设置容器名称为 `my_nginx_container`。 - `ports: - "80:80"` 将主机的端口 80 映射到容器内的端口 80。 - `volumes:` 挂载本地目录至容器内部路径,其中 `./html` 是本地静态网页文件夹,而 `./conf.d` 则用于存储自定义的 Nginx 配置文件[^3]。 #### 3. 启动和停止服务 完成上述配置后,可以运行以下命令来启动 Nginx 服务: ```bash docker-compose up -d ``` 这将以分离模式(后台运行)启动服务。如果要停止服务,则可以运行如下命令: ```bash docker-compose down ``` 通过这些简单的步骤即可成功利用 Docker Compose 来管理 Nginx 实例及其关联资源[^2]。 --- ####
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值