拉取 nginx 最新版镜像,然后简单启动一个 nginx 容器:

docker pull nginx:latest
docker run --name nginx01 -d -p 80:80 nginx

这样就安装并运行好了 nginx,可以使用浏览器访问 ip 地址即可看到 nginx 服务。

如果要对 nginx 进行配置,就需要通过交互模式进入容器:

docker exec -it nginx01 bash 

在容器内部就可以访问到完整的 nginx 程序文件,可以找到:

html文件目录:/usr/share/nginx/html

nginx.conf 配置文件:/etc/nginx/nginx.conf

default.conf 配置文件:/etc/nginx/conf.d/default.conf

log日志文件目录:/var/log/nginx

ssl配置目录:/ssl

每一次都要进入容器内部去编辑配置文件有些不方便,而且还需要在容器内部安装 vi 或 vim,所以最好将容器与主机磁盘进行挂载。

挂载之前,我们在主机上创建好 nginx 文件目录:

sudo mkdir -p /home/docker/nginx/{log,ssl,html,conf/conf.d}
sudo chmod -R 755 /home/docker/nginx/html

然后通过 docker cp 命令将容器内的 nginx 配置文件 copy 到刚创建的主机文件目录中:

docker cp nginx01:/etc/nginx/nginx.conf /home/docker/nginx/conf/nginx.conf
docker cp nginx01:/etc/nginx/conf.d/default.conf /home/docker/nginx/conf/conf.d/default.conf

接着,我们停止并删除 nginx01 容器:

docker stop nginx01
docker rm nginx01

好了,我们要重新启动一个 nginx 容器了:

docker run --name nginx02 -d
--restart=always
--privileged=true
-v /home/docker/nginx/html:/usr/share/nginx/html
-v /home/docker/nginx/conf/nginx.conf:/etc/nginx/nginx.conf
-v /home/docker/nginx/conf/conf.d/default.conf:/etc/nginx/conf.d/default.conf
-v /home/docker/nginx/log:/var/log/nginx
-v /home/docker/nginx/ssl:/ssl/
-p 443:443 -p 80:80
nginx

使用 --privileged=true 参数,容器内的 root 用户才拥有真正的 root 权限,否则容器内的 root 只是主机上的一个普通用户。

使用 -v path1:path2 参数,其中 path1 是主机的磁盘地址,path2 是 docker 容器的虚拟磁盘地址,可以定义多个 -v 映射多个文件夹。

最后,通过 docker ps 命令查看 nginx 容器是否已成功运行。

通常,我们在 nginx 中部署项目的时候,都喜欢在 conf.d/ 目录下创建新的配置文件(如:xxx.conf),但在 docker 中,你需要注意新建的 xxx.conf 文件是否被成功映射,否则可能就无法被 nginx 正常读取到,也就无法生效。

一个简单的记录,希望有所帮助!

Docker 中如何安装配置 Nginx的更多相关文章

  1. (转)windows 下安装配置 Nginx 详解

    windows 下安装配置 Nginx 详解 本文转自https://blog.csdn.net/kingscoming/article/details/79042874 nginx功能之一可以启动一 ...

  2. Angularjs学习---ubuntu12.04中karma安装配置

    Angularjs学习---ubuntu12.04中karma安装配置中常见的问题总结   karma启动时出现了很多问题: 1.安装karma前提条件 安装karma首先要安装nodejs,npm然 ...

  3. ELK 6安装配置 nginx日志收集 kabana汉化

    #ELK 6安装配置 nginx日志收集 kabana汉化 #环境 centos 7.4 ,ELK 6 ,单节点 #服务端 Logstash 收集,过滤 Elasticsearch 存储,索引日志 K ...

  4. Linux中redis安装配置及使用详解

    Linux中redis安装配置及使用详解 一. Redis基本知识 1.Redis 的数据类型 字符串 , 列表 (lists) , 集合 (sets) , 有序集合 (sorts sets) , 哈 ...

  5. Xdebug在PHP中的安装配置

    Xdebug在PHP中的安装配置涉及php.ini配置文件的修改. 1  首先需要下载Xdebug,根据安装的PHP版本,选择合适的Xdebug版本, 2  安装Xdebug将下载的php_xdebu ...

  6. CentOS中安装配置Nginx

    一.安装Nginx '首先我们需要在nginx官网中下载nginx安装包,在这就下载最新版 nginx-1.13.7版本 下载完成以后我们进入下载页面进行查看 下载文件目录为 home/userNam ...

  7. centos中安装配置nginx完成之后主机无法访问

    原因 VMware中安装centos7,安装配置完成nginx后,主机无法访问.虚拟机没有放行Nginx默认端口80. 解决办法 首先:开启 web 端口 firewall-cmd --permane ...

  8. Docker简介与安装配置

    目录 Docker简介 什么是Docker 为啥要用容器 Docker Engine Docker架构说明 Docker安装 Docker版本介绍 Ubuntu安装docker-ce CentOS7安 ...

  9. deepin 15.3 安装配置nginx

    1.安装nginx sudo apt-get install nginx 2.配置nginx sudo gedit /etc/nginx/sites-enabled/default 找到:index ...

随机推荐

  1. 基于zookeeper实现分布式锁和基于redis实现分布所的区别

    1,实现方式不同 zookeeper实现分布式锁:通过创建一个临时节点,创建的成功节点的服务则抢占到分布式锁,可做业务逻辑.当业务逻辑完成,连接中断,节点消失,继续下一轮的锁的抢占. redis实现分 ...

  2. Collections.sort详解

    Collections.sort(list, new PriceComparator());的第二个参数返回一个int型的值,就相当于一个标志,告诉sort方法按什么顺序来对list进行排序. Com ...

  3. Synchronized锁机制和ReentrantLock

    Synchronized Java中的每个对象都可以作为锁. 普通同步方法,锁是当前实例对象. 静态同步方法,锁是当前类的class对象. 同步代码块,锁是括号中的对象. 锁的内部机制 一般锁有4种状 ...

  4. 谈谈surging 与多语言混合微服务构思

    1.前言 微服务架构已成为目前互联网架构的趋势,关于微服务的讨论,几乎是各大技术论坛.技术大会的热门话题.而Surging是高性能的模块化微服务引擎,是大家首选微服务引擎架构之一,而针对于框架有个突出 ...

  5. A - Investment

    A - Investment John never knew he had a grand-uncle, until he received the notary's letter. He learn ...

  6. stylus--安装及使用方法

    stylus介绍 Stylus 是一个CSS的预处理框架,2010年产生,来自Node.js社区,主要用来给Node项目进行CSS预处理支持,所以 Stylus 是一种新型语言,可以创建健壮的.动态的 ...

  7. python通过pymysql实现数据库的增删改查

    今天实现了python对于数据库的增删改查工作: 具体的每一步的数据库的增删盖茶自己都实验过了. 掌握了基本的数据库操作语言.然后就是对于tuple()的认识. 以及对于查询语句中的:fetchone ...

  8. Golang微信支付跳过X509验证

    游戏支付提交到微信的post: 微信: https://pay.weixin.qq.com/wiki/doc/api/micropay.php?chapter=23_4 错误信息: err:Post ...

  9. Java第三十三天,IO操作(续集),字符转换流

    计算机都是以二进制码格式存储文件的,但是在读写文件的过程中,每个应用程序都有自己的编码格式.FileWrite和FileRead类是通过查询系统默认码表进行读写的,因此在自己的系统上能够实现编码的智能 ...

  10. 2020-3-3 20175110王礼博 《网络对抗技术》Exp1 PC平台逆向破解

    目录 1.实践目标与基础知识 2.直接修改程序机器指令,改变程序执行流程 3.通过构造输入参数,造成BOF攻击,改变程序执行流 4.注入Shellcode并执行 5.实验收获与感想 6.什么是漏洞?漏 ...