docker - compose 部署 Nginx

时间:2022-09-09 09:58:07

主要介绍 docker 中 Nginx 的部署及项目目录挂载券的方法。docker 中部署一个服务,有三种方法,分别是 docker run、Dockerfile、docker-compose 。

下面用 docker-compose 方法部署 Nginx。

1、准备工作

先在主机创建工作文件夹,为了放置 Nginx 的配置文件等。创建文件夹的方法,自己搞定。

[root@dockeruat nginx]# pwd
/usr/local/nginx
[root@dockeruat nginx]# tree
.
├── conf.d
│ ├── default.conf
│── docker-compose.yml
├── etc
│ ├── cert
│ └── letsencrypt
├── html
│ └── index.html
├── logs
│ ├── access.log
│ └── error.log
├── nginx.conf
└── www
└── index.html

先随便启动一个 Nginx 容器(用第一种方法,docker run),主要是为了获取 Nginx 容器内部的配置文件。

#启动一个容器
docker run -d --name nginx nginx
# 查看 容器 获取容器ID 或直接使用名字
docker ps -a
启动容器后,容器内部会生成 Nginx 的配置文件,将其复制到本地对应文件夹内。 # 拷贝容器内 Nginx 默认配置文件到本地当前目录下的 nginx 目录($PWD 当前全路径)
# $PWD=针对上面的文件目录,/usr/local/nginx
docker cp nginx:/etc/nginx/nginx.conf $PWD/
现在,可以删除这个容器了。 # 停止容器
docker container stop nginx
# 删除容器
docker container rm nginx

2、部署容器

开始部署 Nginx 容器,就是上面提到的用第三种方式部署。

创建这个文件,docker-compose.yml 黏贴以下内容。文件放置位置,看上面的目录结构。

version: '3'
services:
nginx:
restart: always
container_name: nginx
image: nginx
ports:
- 1001:80
- 1443:443
volumes:
- /data/front:/usr/share/nginx/html
- /usr/local/nginx/www:/var/www
- /usr/local/nginx/logs:/var/log/nginx
#- /usr/local/nginx/nginx.conf/:/etc/nginx/nginx.conf #不能挂载,不知道为什么,必须手动拷贝配置文件才行
- /usr/local/nginx/etc/cert:/etc/nginx/cert
- /usr/local/nginx/conf.d:/etc/nginx/conf.d
environment:
- NGINX_PORT=80
privileged: true

启动容器

docker-compose up -d

查看创建的容器

docker ps

3、配置 Nginx 的 nginx.conf 文件

这个文件是刚才从容器里拷贝过来的,其实保留默认配置就行不用改任何内容,主要关注最后一行

最后一行表示,这个主配置文件会自动检索其子目录的下所有以 .conf 结尾的文件配置。

所以,你的项目配置可以在其子目录下创建一个以 .conf 结尾的文件来配置就行。

比如,我创建的文件:

├── conf.d

├── default.conf

root /usr/share/nginx/html;
这一行,必须这样配置,表示容器里的项目代码放置的目录。

但是,项目代码实际不用放到这里,上面已经做了数据挂载,放到本地上对应的挂载目录下即可。

读后感

来这里找我交流

QQ群:330374464
公众号:软件测试资源站(ID:testpu)
语雀:https://www.yuque.com/testpu/pro

docker - compose 部署 Nginx的更多相关文章

  1. Docker Compose部署 nginx代理Tomcat集群

    一.简介 使用Docker镜像部署Nginx代理的多个Tomcat集群: 使用Dockerfile构建nginx镜像 使用Dockerfile构建tomcat镜像 mysql镜像使用docker hu ...

  2. Docker Compose 部署Nginx服务实现负载均衡

    Compose简介: Compose是Docker容器进行编排的工具,定义和运行多容器的应用,可以一条命令启动多个容器,使用Docker Compose,不再需要使用shell脚本来启动容器.Comp ...

  3. Docker Compose 部署前后端分离应用

    部署前后端分离应用 容器化 Abp 应用 关于 Abp 应用的容器化,其实和普通的 ASP.NET Core 应用差不多,大家可以参考我此前的文章. 唯一需要注意的是:因为 Abp 解决方案中有多个项 ...

  4. Docker Compose部署GitLab服务,搭建自己的代码托管平台(图文教程)

    场景 Docker-Compose简介与Ubuntu Server 上安装Compose: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/deta ...

  5. 在Docker下部署Nginx

    在Docker下部署Nginx 在Docker下部署Nginx,包括: 部署一个最简单的Nginx,可以通过80端口访问默认的网站 设置记录访问和错误日志的路径 设置静态网站的路径 通过proxy_p ...

  6. 使用Docker Compose部署基于Sentinel的高可用Redis集群

    使用Docker Compose部署基于Sentinel的高可用Redis集群 https://yq.aliyun.com/articles/57953 Docker系列之(五):使用Docker C ...

  7. Docker Compose部署项目到容器-基于Tomcat和mysql的项目yml配置文件代码

    场景 Docker-Compose简介与Ubuntu Server 上安装Compose: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/deta ...

  8. 在Windows Server 2019通过Docker Compose部署Asp.Net Core

    一.安装Docker Enterprise 安装文档是: https://docs.docker.com/install/windows/docker-ee/ 安装完成后,如下图 二.首先,拉取一个W ...

  9. 使用Docker Compose 部署Nexus后初次登录账号密码不正确,并且在nexus-data下没有admin,password

    场景 Ubuntu Server 上使用Docker Compose 部署Nexus(图文教程): https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/ ...

随机推荐

  1. jdbc中的细节

    JDBC 架构:JDBC 的 API 支持两层和三层处理模式进行数据库的访问,但是一般的JDBC架构由两层处理模式组成.(1)JDBC API:提供了应用程序对 JDBC 管理器的连接(2)JDBC ...

  2. [转]Oracle分页之三:利用PagerView来实现无刷新GridView

    本文转自:http://www.cnblogs.com/scy251147/archive/2011/04/16/2018355.html 接上面一节,上面还存在问题就是分页控件使用的仍然是服务器端控 ...

  3. frameset框架下,刷新整个页面

    <a href="index.jsp" target="_parent">  index.jsp主frameset页面

  4. 网页计算器,(类,隐藏域,style&equals;display:block等)

    第一个文件:表单文件 <html> <head><meta http-equiv="content-type" content="text/ ...

  5. &lpar;9&rpar;集合之Set,HashSet,TreeSet

    TreeSet子类 注意事项: 1.向TreeSet添加元素的时候,如果元素本身具备了自然顺序的特性,那么就按照元素自然顺序的特性进行排序存储 2.往TreeSet添加元素的时候,如果元素本身不具备自 ...

  6. 树莓派&period;设置无线网卡为AP工作模式&lpar;pi2和pi3&rpar;

    树莓派2的设置办法: 1. 安装NetworkManager管理工具(可选),以支持nmcli命令 sudo apt-get install -y network-manager 2. 安装hosta ...

  7. centos7配置svn钩子hooks脚本自动同步代码到项目目录

    由于项目需要,svn提交后的代码希望再测试服务器上测试,每次提交后还要手动去svn update一次 十分麻烦,配置好svn钩子以后就省去了这些麻烦. 进入svn版本库目录找到hooks目录找到文件p ...

  8. kill -3 获取threaddump信息

    有些Java应用服务器是在控制台上运行,如Weblogic,为了方便获取threaddump信息,在weblogic启动的时候,会将其标准输出重 定向到一个文件,用"nohup ./star ...

  9. Android的bitmap和优化

    内存管理是个永恒的话题! 内存溢出:就是分配的内存不足以放下数据项序列.如在一个域中输入的数据超过了它的要求就会引发数据溢出问题,多余的数据就可以作为指令在计算机上运行.就是你要求分配的内存超出了系统 ...

  10. 更换ubuntu apt-get源

    原文地址:http://www.cnblogs.com/zhangpengshou/p/3591387.html 为了优化ubuntu软件安装/更新速度,我测试了国内几家apt源的速度,发现北京交大的 ...