docker-compose快速部署nginx

本文介绍如何使用Docker及docker-compose配置Nginx服务,包括准备工作、配置文件挂载技巧以及常用命令操作等。适合希望快速部署并运行Nginx服务的读者。

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

一、概述

bitnami镜像

https://registry.hub.docker.com/r/bitnami/nginx

准备

目前docker-compose创建nginx脚本不支持直接挂载文件,只能挂载文件夹,通常我们需要挂载nginx.conf文件,所以必须先在宿主机上生成同名文件。

# 先用docker创建nginx,复制对应文件
mkdir -p nginx/conf nginx/conf.d && cd nginx
docker run --name nginx-demo -d nginx
# 复制文件
docker cp nginx-demo:/etc/nginx/nginx.conf ./conf/nginx.conf
docker cp nginx-demo:/etc/nginx/conf.d/default.conf ./conf.d/default.conf
docker cp nginx-demo:/usr/share/nginx/html .
# 删除容器
docker stop nginx-demo && docker rm nginx-demo

否则报错:

[root@VM_80_127_linux nginx]# docker-compose up -d 
Starting nginx ... error

ERROR: for nginx  Cannot start service nginx: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: error during container init: error mounting "/opt/software/docker/nginx/conf/nginx.conf" to rootfs at "/etc/nginx/nginx.conf": mount/opt/software/docker/nginx/conf/nginx.conf:/etc/nginx/nginx.conf (via/proc/self/fd/6), flags: 0x5000: not a directory: unknown: Are you trying to mount a directory onto a file (or vice-versa)? Check if the specified host path exists and is the expected type

二、docker-compose

vim docker-compose.yml

version: '3.1'

services:
  nginx:
    image: nginx
    container_name: nginx
    environment:
      - TZ=Asia/Shanghai
    ports:
      - 11086:11086
    volumes:
      - ./conf.d:/etc/nginx/conf.d
      - ./conf/nginx.conf:/etc/nginx/nginx.conf
      - ./logs:/var/log/nginx
      - ./html:/etc/nginx/html

三、基础命令

# 启动
docker-compose up -d
# 列表
docker-compose ps
# 日志
docker-compose logs nginx
# 停止
docker-compose down
### 使用 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]。 --- ####
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码上富贵

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值