docker-compose部署nginx

本文详细介绍了如何使用docker-compose.yml文件来部署Nginx容器,包括配置文件的编写、镜像的构建、容器的运行、停止及删除等操作,以及如何通过数据卷挂载本地目录。
编写docker-compose.yml文件
[root@bogon nginx]# vim docker-compose.yml
version: '2.0'

services:
   nginx:
    restart: always
    image: nginx
    ports:
      - 8080:80
      - 443:443
    volumes:
      - "./conf.d:/etc/nginx/conf.d"
      - "./log:/var/log/nginx"
      - "./www:/var/www"
      - "/etc/letsencrypt:/etc/letsencrypt"

参数说明

  • version:版本号,好像我这上面2和2.0有区别,不能写成2,写成2的话,docker-compose up -d 时会报错,提示版本号要写成2.0的样子,不过有的地方我看着直接写成2也是可以的,可能是我的docker-compose版本不一致
  • service:就是要定义的docker容器
  • nginx:容器的名称
  • restart:设置为always,表明此容器应该在停止的情况下总是重启,比如,服务器启动时,这个容器就跟着启动,不用手动启动,服务器启动之后,进入到docker-compose.yml文件路径下,执行docker-compose ps可以看到,该容器正在运行
  • image:这个是需要依赖的容器,也就是nginx软件,可以到docker官方镜像上找到最新版的镜像
  • ports:这个是容器自己运行的端口号和需要暴露的端口号。比如: - 8080:80,表示容器内运行着的端口是80,把端口暴露给8080端口,从外面访问的是8080端口,就能自动映射到80端口上
  • volumes:这个是数据卷。表示数据、配置文件等存放的位置。(- . 这个表示docker-compose.yml当前目录位置开始创建这个文件)
运行构建镜像

如果配置文件没有出错,执行如下命令(在docker-compose.yml当前目录)

[root@rainbow nginx]# docker-compose up -d
Creating nginx_nginx_1 ... 
Creating nginx_nginx_1 ... done
查看容器运行状态
[root@rainbow nginx]# docker-compose ps
    Name              Command          State                     Ports                    
-----------------------------------------------------------------------------------------
nginx_nginx_1   nginx -g daemon off;   Up      0.0.0.0:443->443/tcp, 0.0.0.0:8086->80/tcp 
[root@rainbow nginx]#
启动、停止容器
[root@rainbow nginx]# docker-compose stop
Stopping nginx_nginx_1 ... done
[root@rainbow nginx]# 
  • 说明:docker-compose stop,如果没有指定容器,则会把docker-compose.yml文件中配置的所有容器停止。如果只想停止某个容器,则需要指定容器名。使用docker-compose ps列出所有容器:
[root@rainbow nginx]# docker-compose ps
    Name              Command          State                     Ports                    
-----------------------------------------------------------------------------------------
nginx_nginx_1   nginx -g daemon off;   Up      0.0.0.0:443->443/tcp, 0.0.0.0:8086->80/tcp 
[root@rainbow nginx]#

看得出,容器名为nginx,注意,是nginx,不是nginx_nginx_1。然后就可以停止容器了

[root@rainbow nginx]# docker-compose stop nginx
Stopping nginx_nginx_1 ... done
[root@rainbow nginx]# 
删除容器
[root@rainbow nginx]# docker-compose rm nginx
Going to remove nginx_nginx_1
Are you sure? [yN] y
Removing nginx_nginx_1 ... done
[root@rainbow nginx]#

在conf.d文件夹下新建 .conf 配置文件,要想配置文件生效,1 重启 容器 2 直接 docker exec -it 3ba5c4ff5a32 /etc/init.d/nginx reload (进入容器 执行相应的命令)

### 使用 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]。 --- ####
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值