主要介绍 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

最新文章

  1. .Net环境下的缓存技术介绍
  2. centos6.5下安装mysql
  3. Autofac IContainer 测试
  4. Mysql tablespace
  5. Android开发之详解五大布局
  6. 开源分布式实时计算引擎 Iveely Computing 之 本地调试Topology(4)
  7. Windows下Git Bash中文乱码
  8. RT-Thread的线程间同步
  9. 超详细的Xcode代码格式化教程,可自定义样式。
  10. (2) 假设字符串类似这样的aba和aab就相等,现在随便给你二组字符串,请编程比较他们看是否相等
  11. dataset导出成excel
  12. crawler_爬虫代理方案
  13. 4D(DRG、DLG、DOM、DEM)数据 概念
  14. Linux环境下Swap配置方法
  15. [JLOI2015]城池攻占 左偏树
  16. Linux学习之CentOS(二十)------vi/vim 按键说明
  17. 使用item来封装数据:
  18. 基金 、社保和QFII等机构的重仓股排名评测
  19. Linux目录结构下部
  20. ubuntu16.04下idea、webstorm等开发工具不能输入中文问题

热门文章

  1. Vue状态管理模式---Vuex
  2. 解决Openstack Dashboard无法获取实例故障
  3. VMware虚拟机 + ubuntu16.04 Linux OpenCV打不开摄像头解决办法
  4. bat 使用ftp进行文件上传
  5. adb 常用命令大全(4)- 应用管理
  6. openswan协商流程之(四):main_inI2_outR2()
  7. WinUI 3学习笔记(3)—— ComboBox & DropDownButton & SplitButton
  8. Vue中使用 iview 之-踩坑日记
  9. 【第十五篇】- Maven 依赖管理之Spring Cloud直播商城 b2b2c电子商务技术总结
  10. netty系列之:在netty中处理CORS