docker - compose 部署 Nginx
主要介绍 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的更多相关文章
- Docker Compose部署 nginx代理Tomcat集群
一.简介 使用Docker镜像部署Nginx代理的多个Tomcat集群: 使用Dockerfile构建nginx镜像 使用Dockerfile构建tomcat镜像 mysql镜像使用docker hu ...
- Docker Compose 部署Nginx服务实现负载均衡
Compose简介: Compose是Docker容器进行编排的工具,定义和运行多容器的应用,可以一条命令启动多个容器,使用Docker Compose,不再需要使用shell脚本来启动容器.Comp ...
- Docker Compose 部署前后端分离应用
部署前后端分离应用 容器化 Abp 应用 关于 Abp 应用的容器化,其实和普通的 ASP.NET Core 应用差不多,大家可以参考我此前的文章. 唯一需要注意的是:因为 Abp 解决方案中有多个项 ...
- Docker Compose部署GitLab服务,搭建自己的代码托管平台(图文教程)
场景 Docker-Compose简介与Ubuntu Server 上安装Compose: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/deta ...
- 在Docker下部署Nginx
在Docker下部署Nginx 在Docker下部署Nginx,包括: 部署一个最简单的Nginx,可以通过80端口访问默认的网站 设置记录访问和错误日志的路径 设置静态网站的路径 通过proxy_p ...
- 使用Docker Compose部署基于Sentinel的高可用Redis集群
使用Docker Compose部署基于Sentinel的高可用Redis集群 https://yq.aliyun.com/articles/57953 Docker系列之(五):使用Docker C ...
- Docker Compose部署项目到容器-基于Tomcat和mysql的项目yml配置文件代码
场景 Docker-Compose简介与Ubuntu Server 上安装Compose: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/deta ...
- 在Windows Server 2019通过Docker Compose部署Asp.Net Core
一.安装Docker Enterprise 安装文档是: https://docs.docker.com/install/windows/docker-ee/ 安装完成后,如下图 二.首先,拉取一个W ...
- 使用Docker Compose 部署Nexus后初次登录账号密码不正确,并且在nexus-data下没有admin,password
场景 Ubuntu Server 上使用Docker Compose 部署Nexus(图文教程): https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/ ...
随机推荐
- jQuery中ajax请求的六种方法(三、一):$.ajax()方法
1.基础的$.ajax()方法 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"&g ...
- EL表达式学习(一)
一.初次接触EL表达式: <%@ page language="java" import="java.util.*" pageEncoding=" ...
- 关于通用Mapper new Example使用记录
关于通用MapperExample使用记录 环境准备 需要集成 mybatis 的 generator 插件,方便自动生成 实体类和 mapper 类,还可以生成xml,不过一般我们都不用 xml b ...
- Python中的socket编程
网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket 所谓socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄,应用程序 ...
- Linux系统的日志管理、时间同步、延迟命令at
方便查看和管理 /var/log/messages ?系统服务及日志,包括服务的信息,报错等等 /var/log/secure ? ? ? ? 系统认证信息日志 /var/log/maillog ? ...
- idea无法使用中文输入法输入
问题--idea无法使用中文输入 原因:idea本身版本过高,所以需要你强制减低它的jdk版本 解决:使用配置idea环境变量解决 ps:目前适用于任何版本的jdk和idea 步骤: 1.新建一个ID ...
- 快速搭建SSM基本项目
快速搭建SSM项目基本手脚架 Maven构建项目 一般我们使用Maven来管理我们的项目: 导入相关依赖配置pom.xml: <?xml version="1.0" enco ...
- ubuntu14.04 安装MySQL 5.7
ubuntu14.04 默认在线安装MySQL 5.5 1) wget http://dev.mysql.com/get/mysql-apt-config_0.7.3-1_all.deb 2) dpk ...
- jdbcTemplate快速入门
一. c3p0和dbcp区别 二.导包 hibernate通过映射自动创建表: 三.代码实现
- linux主机安全加固-个人经验
说明:我并没有一个系统的网络安全知识体系,随笔里面提到的内容是个人在从事运维行业这几年中总结出来的一点经验,仅供大家参考. 说到linux主机安全加固,我可以想到的就是三个方向吧,基线整改.访问控制和 ...