Docker部署nginx实现过程图文详解_nginx

来源:脚本之家  责任编辑:小易  

#docker pull nginx#docker run -itd -p 80:80 nginx 启动nginxnginx默认目2113录5261是/etc/nginx,如果要自4102定义,指定1653本地目录#docker run -itd -p 80:80 -v /usr/local/目录名:/etc/nginx nginxwww.zgxue.com防采集请勿采集本网。

1.下载nginx

下一个RAMDISK软件,一般WIN7下面设置好虚拟盘的大小,就可以使用了。设完之后记得吧windows的虚拟内存移到虚拟盘中去哦。具体设置在控制面板中。。找找就有了。

[root@localhost my.Shells]# docker imagesREPOSITORY TAG IMAGE ID CREATED SIZEdocker.io/redis latest 1e70071f4af4 6 weeks ago 106.7 MB[root@localhost my.Shells]# docker pull nginx //下载nginxUsing default tag: latestTrying to pull repository docker.io/library/nginx ... latest: Pulling from docker.io/library/nginxe7bb522d92ff: Pull complete 6edc05228666: Pull complete cd866a17e81f: Pull complete Digest: sha256:285b49d42c703fdf257d1e2422765c4ba9d3e37768d6ea83d7fe2043dad6e63d[root@localhost my.Shells]# docker imagesREPOSITORY TAG IMAGE ID CREATED SIZEdocker.io/nginx latest 3f8a4339aadd 3 weeks ago 108.5 MBdocker.io/redis latest 1e70071f4af4 6 weeks ago 106.7 MB

先去下载一个docker的nginx镜像源,建议下国内的源的镜像 ,下好以后用这个启动就好了。

2.运行nginx

这是我自己为你写的,希望可以帮助到你一点 #基于什么linux版本 FROM centos:7 #注明作者 MAINTAINER laowang #创建一个目录 RUN mkdir /web/ #切换工作目录到web文件夹 WORKDIR /web/ #安装wget插件 RUN yum -y install wget #安装nginx RUN wge

[root@localhost my.Shells]# docker run -p 8080:80 -d docker.io/nginx //将80端口映射为8080,或者80:80还是原先的80端口,不可以不写。c0462d5e18783e20f9515108fa62ab0f2ac808ea85370a7c82aee9407abf4672[root@localhost my.Shells]# netstat -anp | grep 8080 //端口已经开启了tcp6 0 0 :::8080 :::* LISTEN 2529/docker-proxy-c [root@localhost my.Shells]# docker ps //nginx已经在运行了CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMESc0462d5e1878 docker.io/nginx "nginx -g 'daemon off" 4 minutes ago Up 4 minutes 0.0.0.0:8080->80/tcp angry_mccarthy

docker run 有个-v 参数 可以挂载本地目录或文件到container中对应的目录或文件,从而实现修改nginx默认站点目录和默认配置。

3.运行结果

我是放外面跑的,因为 Nginx 一般安全性问题不大,而且要连接各个容器,可以算个 gateway 但是里面看情况也是要用的,一般用作 load balance 进容器 reload 没啥大问题啊,你可以 docker exec,也可以 kill -HUP

[root@localhost my.Shells]# ./openFirewallPort.sh //先在防火墙上开一个端口enter the port: success---openFirewallPort.sh------- echo "enter the port: " read port firewall-cmd --add-port=$port/tcp#下图已经成功访问到了

注意:

当docker运行nginx时,外界访问还是docker所在的那个IP地址,就相当于nginx在那台机器上运行一样。

但对于docker所在的那台机器来说,nginx就是附属于docker的一个镜像。若操作nginx还是由docker登录nginx容器,进行操作。

登录的nginx容器就是一个linux系统,只不过只有nginx而已,nginx按照linux默认路径安装。比如

root@c0462d5e1878:/usr/share/nginx/html# ls 这个路径就是默认的静态页面存放路径

50x.html index.html

bash命令都一样,但是vi在我机器上是不能用的,但可以使用cp、mv 等命令,因为nginx都是配置好的,不能乱改。

1)可以通过在还未登录nignx容器前,把需要的文件写好,然后复制到指定目录下:

[root@localhost my.Shells]# docker cp hello.html c0462d5e1878://usr/share/nginx/html

[root@localhost my.Shells]# docker exec -it c0462d5e1878 bash

root@c0462d5e1878:/usr/share/nginx/html# ls

50x.html hello.html index.html

2)通过主机目录映射到容器

docker run -p 80:80 -d -v $PWD/html:usr/share/nginx/html docker.io/nginx

-v $PWD/html:usr/share/nginx/html 表示把当前路径下html目录映射为usr/share/nginx/html

也就是说主机下的html就是容器下的usr/share/nginx/html

html内的文件修改和添加就等同于容器usr/share/nginx/html文件操作

外网访问就可以访问得到,就不用再登录容器操作文件了

4.停止服务

[root@localhost my.Shells]# docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMESc0462d5e1878 docker.io/nginx "nginx -g 'daemon off" 56 minutes ago Up 56 minutes 0.0.0.0:8080->80/tcp angry_mccarthy[root@localhost my.Shells]# docker stop c0462d5e1878 c0462d5e1878[root@localhost my.Shells]# docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

5.重启服务

[root@localhost my.Shells]# docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES[root@localhost my.Shells]# docker start c0462d5e1878 c0462d5e1878[root@localhost my.Shells]# docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMESc0462d5e1878 docker.io/nginx "nginx -g 'daemon off" 59 minutes ago Up 12 seconds 0.0.0.0:8080->80/tcp angry_mccarthy

6.再开启一个相同的服务

[root@localhost my.Shells]# docker run -p 8081:80 -d docker.io/nginx //再开启一个服务,端口为80811fd8a0b5d138203150f1cdbfb9690235159159881785a4654abb04c7c96c5b18[root@localhost my.Shells]# docker ps //会有两个进程,一个8080,一个8081CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES1fd8a0b5d138 docker.io/nginx "nginx -g 'daemon off" 4 seconds ago Up 3 seconds 0.0.0.0:8081->80/tcp suspicious_hypatiac0462d5e1878 docker.io/nginx "nginx -g 'daemon off" About an hour ago Up 4 minutes 0.0.0.0:8080->80/tcp angry_mccarthy

上图访问的是新开启的8081服务注意:新启动的服务和原先的服务是两个容器,原先的hello.html在新服务中是没有的

7.卸载服务

[root@localhost my.Shells]# docker ps //此时8080和8081都在运行CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES1fd8a0b5d138 docker.io/nginx "nginx -g 'daemon off" 4 minutes ago Up 4 minutes 0.0.0.0:8081->80/tcp suspicious_hypatiac0462d5e1878 docker.io/nginx "nginx -g 'daemon off" About an hour ago Up 8 minutes 0.0.0.0:8080->80/tcp angry_mccarthy[root@localhost my.Shells]# docker stop 1fd8a0b5d138 //停下80811fd8a0b5d138[root@localhost my.Shells]# docker ps //就剩8080还在运行CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMESc0462d5e1878 docker.io/nginx "nginx -g 'daemon off" About an hour ago Up 9 minutes 0.0.0.0:8080->80/tcp angry_mccarthy[root@localhost my.Shells]# docker ps -a //可以看到8080在运行,8081已经ExitedCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES1fd8a0b5d138 docker.io/nginx "nginx -g 'daemon off" 5 minutes ago Exited (0) 7 seconds ago suspicious_hypatiac0462d5e1878 docker.io/nginx "nginx -g 'daemon off" About an hour ago Up 9 minutes 0.0.0.0:8080->80/tcp angry_mccarthy[root@localhost my.Shells]# [root@localhost my.Shells]# docker rm 1fd8a0b5d138 //移除这个进程进行了,注意运作着的进程是无法rm的,要先stop1fd8a0b5d138

dockercommitdockercommit是往版本控制系统里提交一次变更。使用这种方式制作镜像,本质上是运行一个基础镜像,然后在基础镜像上进行软件安装和修改,#dockerpullnginx#dockerrun-itd-p80:80nginx启动nginxnginx默认目录2113是/etc/nginx,如果要5261自定义,指定本地4102目录#dockerrun-itd-p80:80-v/usr/local/目录名1653:/etc/nginxnginx内容来自www.zgxue.com请勿采集。


  • 本文相关:
  • nginx文件强制下载的配置方法
  • 详解nginx惊群问题的解决方式
  • nginx cookie有效期讨论小结
  • nginx的完整配置详解及实例代码
  • nginx服务器配置性能优化方案
  • 使用nginx做负载均衡的模块解读
  • 在nginx服务器上安装配置博客程序typecho的教程
  • 使用nginx反向代理与proxy_cache缓存搭建cdn服务器的配置方法
  • 详解在使用cdn加速时nginx获取用户ip的配置方法
  • 利用nginx实现反向代理node.js的方法详解
  • docker 怎么配置nginx 文件路径
  • docker 怎么配置nginx 文件路径
  • 如何挂在外部的配置文件到docker中的nginx
  • 如何对 docker 容器里的 nginx 进行热更新
  • 如何访问docker中的nginx
  • 如何制作docker nginx镜像
  • dockerfile启动centos nginx怎么写
  • 如何修改docker的nginx容器的配置
  • Nginx 是放在 docker 里面跑,还是放在宿主机上跑
  • docker nginx 容器怎么reload
  • 网站首页网页制作脚本下载服务器操作系统网站运营平面设计媒体动画电脑基础硬件教程网络安全星外虚拟主机华众虚拟主机linuxwin服务器ftp服务器dns服务器tomcat nginxzabbix云和虚拟化服务器其它首页服务器docker部署nginx并修改配置文件的实现方法使用docker部署nginx+flask+mongo的应用尝试docker+nginx部署单页应用方法docker容器化部署尝试——多容器通信(node+mongodb+nginx)docker nginx 部署多个项目的示例方法使用docker搭建django,nginx,r,python部署环境的方法docker新手实践及部署nginx的步骤详解centos7 docker nginx部署及运行详解docker搭建 nginx+php+mysql 环境并部署wordpress实践nginx文件强制下载的配置方法详解nginx惊群问题的解决方式nginx cookie有效期讨论小结nginx的完整配置详解及实例代码nginx服务器配置性能优化方案使用nginx做负载均衡的模块解读在nginx服务器上安装配置博客程序typecho的教程使用nginx反向代理与proxy_cache缓存搭建cdn服务器的配置方法详解在使用cdn加速时nginx获取用户ip的配置方法利用nginx实现反向代理node.js的方法详解nginx提示:500 internal servernginx 多站点配置方法集合权限问题导致nginx 403 forbiddenginx fastcgi错误primary scripnginx服务器的反向代理proxy_pasnginx 403 forbidden的解决办法nginx伪静态配置和常用rewrite伪详解nginx服务器中配置超时时间的nginx下301重定向域名的方法小结windows下nginx+php5的安装与配置nginx使用ssl模块配置支持https访问的方法nginx反向代理一个80端口下配置多个微信项nginx session丢失问题处理解决方法浅析nginx配置文件中的变量的编写使用nginx上传文件大小报错500的解决办法linux安装nginx步骤详解详解nginx 对访问量的控制nginx利用lua+redis实现动态封禁ip的方法实现nginx中使用php-fpm时记录php错误日志详解nginx惊群问题的解决方式
    免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved