主要介绍 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. 队列(Queue)\双端队列(Deque)

    队列(Queue)\双端队列(Deque) 队列(Queue) 双端队列(Deque) 算法应用 队列(Queue) 特点: 和栈不同,队列的最大特点是先进先出(FIFO),就好像按顺序排队一样.对于 ...

  2. mzy git学习,初识git(一)

    GIT学习 git工作区.暂存区.本地库.远程库 工作区:实际上我们工作的地方,进行写代码或者文件的地方. 暂存区:我们执行了git add 操作之后,就会被提交到暂存区. 本地库:其实最后我们需要执 ...

  3. Servlet学习之复习

    Servlet的注册与运行(Servlet程序通常需要存储在<web应用程序目录>\WEB-INF\classes\目录中) 1.注册Servlet:在web.xml文件中,一个<s ...

  4. 【CSS复合选择器、元素显示模式、背景】前端小抄(3) - Pink老师自学笔记

    [CSS复合选择器.元素显示模式.背景]前端小抄(3) 本学习笔记是个人对 Pink 老师课程的总结归纳,转载请注明出处! 一.CSS的复合选择器 1.1 什么是复合选择器 在 CSS 中,可以根据选 ...

  5. 温故知新:老铁,WeakReference了解一下?

    本文供稿--大师兄 弱引用是个什么鬼?大白话说就是不那么强的引用(哈哈,纯属玩笑,实际可不是这样滴),那强引用又是个什么鬼?他们有什么用处?问题有点迷,君阅完这篇文章后或许你心中就有答案了-- 什么是 ...

  6. springboot @value无法赋值

    1解决方式在类上在加@Compent @Component@EnableBinding(Sink.class)public class ReceiveMessageListenerController ...

  7. RabbitMq内存分页

  8. Panel添加边框颜色和边框粗细调整

    Panel控件添加边框颜色 C# WinForm窗体控件Panel修改边框颜色以及边框宽度方法 - JiYF - 博客园 (cnblogs.com) 1.新建一个用户控件的项目,如下: 2.添加一个P ...

  9. 利用 Spring Boot 中的 @ConfigurationProperties,优雅绑定配置参数

    使用 @Value("${property}") 注释注入配置属性有时会很麻烦,尤其是当你使用多个属性或你的数据是分层的时候. Spring Boot 引入了一个可替换的方案 -- ...

  10. IPsec 9个包分析(主模式+快速模式)

    第一阶段:ISAKMP协商阶段 1.1 第一包 包1:发起端协商SA,使用的是UDP协议,端口号是500,上层协议是ISAKMP,该协议提供的是一个框架,里面的负载Next payload类似模块,可 ...