文章目录

  • 背景
  • 1. 拉取nginx镜像
  • 2. 启动nginx
  • 3. 通过docker修改nginx配置
    • 1) 挂载配置文件
    • 2) 重新加载配置文件
  • 4. 配置我的域名
  • 小结

背景

   docker 容器相关技术已经成为了现在开发和运维人员的热门技术之一,docker就像一个集装箱能够将各种应用放入到集装箱里的盒子里进行统一管理,优点是: 方便、灵活、易迁移。此文介绍的是怎么使用docker部署nginx。

1. 拉取nginx镜像

docker pull nginx:latest

  latest表示最新版的nginx, 拉取到最新版本的Nginx镜像完毕后,我们就可以通过docker images来查看是否下载完毕:

2. 启动nginx

   镜像下载完毕后,我们可以就使用docker来启动一个nginx容器,启动命令如下:

docker run --name my-nginx -p 8080:80 -d nginx

参数解析:
–name: 给容器取一个别名,启动成功后会在NAMES列显示。
-p: 将服务器的8080端口映射到nginx容器的80端口。
-d: 容器将会以后台的形式来运行。
启动成功后,我们可以通过docker ps命令来查看正在运行的容器:

   run一个容器后,我们可以通过Start和stop命令来重写启动或停止容器, 后面带上容器的id或者NAMES即可:

另外我们可以通过命令进入到nginx的终端,查看nginx镜像里的配置文件。

docker exec -it nginx bash

   启动成功后,我们就可以访问nginx了, 如果用的是8080端口,服务器用的是阿里云,那么先要去配置一下安全组:

将8080端口加入访问的权限即可:

配置完毕后,再次访问http://116.62.146.90:8080/:

3. 通过docker修改nginx配置

1) 挂载配置文件

   在这里我使用了默认的nginx配置来启动容器, 接下来修改nginx.conf文件,这里需要我们在外部挂载一个配置文件nginx.conf来挂载容器里的nginx的配置文件,因为我们知道在docker里进入到nginx容器时,再去修改 /etc/nginx/nginx.conf文件是极其不方便的,想要在nginx容器外面去操作配置是极其不方便的,因此就有了挂载配置文件的方案。
   首先在docker容器的外部新建一个/data/nginx/{conf,log,conf.d}, 其中conf目录下面为nginx的配置文件,default.conf为nginx的默认配置文件,这两个文件的内容可以先从docker容器里的nginx里拿出来,此路径需要通过指令进入到nginx容器的终端才能查看到, 另外不挂载的时候才能够进入到nginx容器的终端去查看路径。
   注: 外挂时一定需要 nginx.conf和default.conf两个文件才行,并且要保证配置内容没有出错。

nginx.conf:

default.conf:

   以下这两个配置文件的路径是用docker run起来以后,我们可以在没有指定挂载的时候,进入到nginx容器终端里显示出来的路径。

文件名 在nginx容器里的路径
nginx.conf /etc/nginx/conf
default.conf /etc/nginx/conf.d/default.conf

准备好如上所需要的配置文件后,我们就可以通过如下命令启动nginx容器:

docker run --name my-nginx -p 80:80 \
-v /data/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /data/nginx/log:/var/log/nginx \
-v /data/nginx/conf.d/default.conf:/etc/nginx/conf.d/default.conf \
-d nginx

参数解析:
-v: 表示的是将容器所需要的文件进行挂载, 本例中是将nginx镜像所在容器里的/etc/nginx/nginx.conf 文件挂载到 我们自定义的 /data/nginx/conf/nginx.conf 文件。
-d: 容器以后台的方式进行运行,关闭终端后也不停止。
-p: 80:80 , 将nginx容器的80端口映射到Docker的80端口。

启动成功后,通过docker ps命令查看容器是否在运行:

如果失败了,那么用docker logs 加上返回的一串字母串查看失败的日志。

2) 重新加载配置文件

   通过上述步骤,我可以将nginx的配置文件挂载到了docker容器外,然后我们只需要在外部修改 /data/nginx/conf/nginx.conf 文件即可, 修改好后需要重新启动一下容器。

docker restart my-nginx

如果在run容器出现容器已经存在,那么可以通过以下指令删除指定的容器, 后面接容器的id或者Name, 前提是要将运行中的容器先暂停:

docker stop my-nginx
docker rm   my-nginx

4. 配置我的域名

   接下来,我想把我刚申请的域名配置到nginx里,这样就能够起到保护ip地址的作用,这样看起来更像是一个完整的网站。首先,刚通过阿里云申请的域名审批通过后,需要在域名控制台下做下域名解析,解析完毕后,方可使用该域名,可以在windows环境下通过ping指令来确定是否解析成功,该域名是否可以直接访问! 解析过程,添加阿里云服务器下的公网ip地址即可!


  windows环境下看是否能够Ping通:


发现可以ping通之后,我们就可以开始配置域名了! 修改nginx.conf文件, 我的域名是www.zhuzhu-bingbing.cn

#user  nobody;
worker_processes  1;#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;#pid        logs/nginx.pid;events {worker_connections  1024;
}http {include       mime.types;default_type  application/octet-stream;#log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '#                  '$status $body_bytes_sent "$http_referer" '#                  '"$http_user_agent" "$http_x_forwarded_for"';#access_log  logs/access.log  main;sendfile        on;#tcp_nopush     on;#keepalive_timeout  0;keepalive_timeout  65;#gzip  on;client_max_body_size 1024m;client_body_buffer_size 10m;client_header_buffer_size 10m;proxy_buffers 4 128k;proxy_busy_buffers_size 128k;server {listen       80;server_name  www.zhuzhu-bingbing.cn;#charset koi8-r;#access_log  logs/host.access.log  main;location / {root   /usr/share/nginx/html;index  index.html index.htm;}}
}


访问www.zhuzhu-bingbing.cn, 出现如下画面表示域名生效:

小结

   以上步骤为docker部署nginx应用的完整流程,配置文件需要外挂这点调试了蛮久, 希望通过此篇文章帮助到刚入坑的小伙伴!

Docker部署nginx、配置域名相关推荐

  1. 阿里云ECS部署Nginx配置域名访问

    目录 前言 环境 具体步骤 服务器 域名 SSL证书 Nginx配置 前言 记录下阿里云服务器建站的过程(回回建,回回忘,尴尬...) 环境 ECS(Centos7.6)+ Nginx 具体步骤 服务 ...

  2. docker部署nginx 并实现反向代理 配置多个域名多个端口

    文章目录 docker部署nginx 并实现反向代理 配置多个域名多个端口 1. 安装nginx: 2. 以终端的方式打开镜像容器 default.conf: nginx.conf: 3. 在linu ...

  3. 使用docker部署nginx搭建简单的idea-2019 jrebel插件激活服务器

    使用docker部署nginx搭建简单的idea-2019 jrebel插件激活服务器 前言 之前用的jrebel激活方式一直都是用的 *lanyus* 大神的 [jrebel激活](http://i ...

  4. docker初体验:docker部署nginx负载均衡集群

    Docker 是一个用于开发,交付和运行应用程序的开放平台.Docker 使您能够将应用程序与基础架构分开,从而可以快速交付软件.今天来为大家演示一下docker部署nginx负载均衡集群 环境 ce ...

  5. docker部署nginx并且挂载文件夹和文件

    docker部署nginx并且挂载文件夹和文件 2018年05月30日 10:18:32 丢你刘某 阅读数:2315 这段时间在研究docker,在部署nginx时遇到了坑,最主要的问题是在挂载文件和 ...

  6. 在用docker部署nginx时,出现curl: (6) Could not resolve host: localhsot; 未知的错误

    在用docker部署nginx时,出现错误 问题一 问题 分析 解决 问题二 问题 分析 解决 问题一 问题 使用curl www.baidu.com命令出现 curl: (6) Could not ...

  7. docker部署nginx+tomcat架构

    使用docker部署nginx+tomcat架构 架构说明: 使用nginx+tomcat实现动态/静态(资源请求)分离和负载均衡. 配置docker镜像仓库:/etc/docker/daemon.j ...

  8. 阿里云/腾讯云服务器上部署Nginx,域名,SSL证书

    你将会从这篇文章中学到: 在服务器上部署Nginx. 域名的购买. 添加域名,让域名解析到你的服务器上. 教你如何添加SSL证书. 在你的服务器上面配置Nginx,实现http和https的访问. 如 ...

  9. Docker部署Nginx集群

    背景 Nginx作为负载均衡工具在企业开发中,特别是分布式开发中十分常见,下面来看看腾讯云服务器中在CentOS7.6系统中使用Docker部署Nginx集群的具体步骤 环境 Linux:CentOS ...

最新文章

  1. Leangoo团队敏捷开发实现过程
  2. JAVA进制及进制之间的转换
  3. Stream流的收集操作
  4. 操作系统复习笔记 02-03 OS Structure 操作系统结构
  5. 多媒体视频知识入门贴zt(一)
  6. CodeSmith应用(四):实现选择路径对话框
  7. SQLServer批量倒入目录文件
  8. 【Spring】Spring 父子容器
  9. ABP官方文档翻译 1.5 多租户
  10. C++Primer Plus第6版C Primer Plus第6版 中文版免费分享啦
  11. 51单片机 模块化编程
  12. 阿里巴巴java方向笔试题 带详细答案
  13. 升级ios13后,iPhone手机新增了截长屏功能,实用又方便
  14. 新闻分类:多分类问题
  15. mysql数据库有什么应用场景_科普:云数据库MySQL的几种应用场景
  16. HDU - 3174(计算几何)
  17. 小程序获取用户openid,php获取微信小程序openid的方法
  18. 【搬家】写一个技术博客
  19. 主动防病毒产品及实测篇
  20. 在线EXCEL编辑器-Luckysheet

热门文章

  1. 前端路由 与 后端路由
  2. 中国看风水最好的大师有哪些【转载】
  3. vue渲染后端文本不换行问题
  4. H264视频编码成MP4文件
  5. 如何为xshll设置背景图片以及透明度?你要的是不是这种效果?
  6. 2014南京迎青奥会之开通有轨电车
  7. GIT创建分支时,分支名称前缀大写如何处理?
  8. java 检查bytebuf长度_ByteBuf分析
  9. Java项目:SSM宠物商城带后台管理系统
  10. SSIS中的容器和数据流—数据转换(Transformations)