1. 下载nginx

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

2. 运行nginx

[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 NAMES
c0462d5e1878 docker.io/nginx "nginx -g 'daemon off" 4 minutes ago Up 4 minutes 0.0.0.0:8080->80/tcp angry_mccarthy

3. 运行结果

[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) 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 ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c0462d5e1878 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 ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

5. 重启服务

[root@localhost my.Shells]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
[root@localhost my.Shells]# docker start c0462d5e1878
c0462d5e1878
[root@localhost my.Shells]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c0462d5e1878 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
//再开启一个服务,端口为8081
1fd8a0b5d138203150f1cdbfb9690235159159881785a4654abb04c7c96c5b18
[root@localhost my.Shells]# docker ps //会有两个进程,一个8080,一个8081
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1fd8a0b5d138 docker.io/nginx "nginx -g 'daemon off" 4 seconds ago Up 3 seconds 0.0.0.0:8081->80/tcp suspicious_hypatia
c0462d5e1878 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 NAMES
1fd8a0b5d138 docker.io/nginx "nginx -g 'daemon off" 4 minutes ago Up 4 minutes 0.0.0.0:8081->80/tcp suspicious_hypatia
c0462d5e1878 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 //停下8081
1fd8a0b5d138
[root@localhost my.Shells]# docker ps //就剩8080还在运行
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c0462d5e1878 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已经Exited
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1fd8a0b5d138 docker.io/nginx "nginx -g 'daemon off" 5 minutes ago Exited (0) 7 seconds ago suspicious_hypatia
c0462d5e1878 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的,要先stop
1fd8a0b5d138

docker部署nginx的更多相关文章

  1. Docker部署Nginx并修改配置文件

    Docker部署Nginx并修改配置文件 一.拉取nginx镜像 docker pull nginx 二.在宿主机中创建挂载目录 mkdir -p /data/nginx/{conf,conf.d,h ...

  2. Docker部署Nginx应用(2)

    Docker部署Nginx应用(2) 1.拉取Nginx镜像 [root@localhost ~]# docker pull nginx Using default tag: latest lates ...

  3. docker(部署常见应用):docker部署nginx

    上回说到centos安装docker. 这次用实战,docker部署运行常见的应用. docker常用命令 参看:docker命令大全.这里不做赘述. docker部署nginx 1.docker h ...

  4. 使用docker部署nginx+tomcat架构(3):使用docker-compose简化部署操作

    经历了之前的两篇,我们已经大体上了解了docker部署容器的过程. 使用docker部署nginx+tomcat架构 使用docker部署nginx+tomcat架构():访问mysql数据库 不过, ...

  5. 使用docker部署nginx+tomcat架构(2):访问mysql数据库

    上一篇完成了通过docker部署nginx+tomcat的基础软件架构,但是距离一个真正可用的软件架构还差得很远.其中最重要的一点是缺少数据库这个角色的存在,那么本篇就来完善这一点. 废话少说,直接进 ...

  6. 【原创】大数据基础之Mesos+Marathon+Docker部署nginx

    一 安装 安装docker:https://www.cnblogs.com/barneywill/p/10343091.html安装mesos:https://www.cnblogs.com/barn ...

  7. docker 部署nginx 使用keepalived 部署高可用

    一.体系架构 在Keepalived + Nginx高可用负载均衡架构中,keepalived负责实现High-availability (HA) 功能控制前端机VIP(虚拟网络地址),当有设备发生故 ...

  8. docker 部署 nginx+php+mysql

    系统:centos7 使用root账户 开放80端口 firewall-cmd --zone=public --add-port=80/tcp --permanent 安装docker yum ins ...

  9. 【转载】Docker部署nginx并修改配置文件

    docker 部署个nginx docker run \ --name nginx-health-web-pc \ -d -p 6800:80 \ -v /usr/docker/nginx/html: ...

  10. 使用docker部署nginx+tomcat架构

    架构说明: 使用nginx+tomcat实现动态/静态(资源请求)分离和负载均衡. 参考文档: https://www.runoob.com/docker/docker-tutorial.html 配 ...

随机推荐

  1. android网页打印,安卓网页打印,h5页面打印,浏览器打印,js打印工具

    Android设备打印比较麻烦,一般设备厂商都提供原生app开发的SDK,我们web开发者为难了,不会原生开发啊 给大家提供一个思路,实现web加壳,利用打印浏览器实现 简单来说就是把我们的web页面 ...

  2. android默认开启adb调试方法分析

    用adb调试android时,每次接入usb线,都会提示一个确认打开usb调试功能的窗口,有时候,我们需要默认打开usb调试功能.或者无需弹出对话框,直接默认开启.这个我们需要分析adb的流程了. a ...

  3. JSON基础知识点

    一.介绍: JSON是一种轻量级的数据交换格式.易于人阅读和编写.同时也易于机器解析和生成. 二.数据格式: 1.JSON建构于两种数据格式: “名称/值”对(键值对)的集合,不同的语言中,它被理解为 ...

  4. windows下,下载pip安装

    windows下,下载pip安装 https://pypi.python.org/pypi/pip#downloads 找到source那个压缩文件,下载下来解压. 参考: windows下面安装Py ...

  5. 前后端分离djangorestframework——解析渲染组件

    解析器 解析器的作用就是服务端接收客户端传过来的数据,把数据解析成自己想要的数据类型的过程,本质就是对请求体中的数据进行解析 Accept是告诉对方我能解析什么样的数据,通常也可以表示我想要什么样的数 ...

  6. 自动化测试基础篇--Selenium中JS处理浏览器弹窗

    摘自https://www.cnblogs.com/sanzangTst/p/7692454.html 浏览器弹窗: 现在大多数网站都会使用自定义弹窗,使用Selenium自带的方法暂时处理不了,这时 ...

  7. SQL Server 一致性读

    我们在Oracle和MySQL数据库中已经对一致性读的概念比较熟悉了,但是在SQL Server中却鲜少提及,但SQL Server自2005版本以来其实也实现了一致性读,几乎所有关系型数据库产品的一 ...

  8. vs2010 2013 2015 有用各种功能插件

    https://blog.csdn.net/daydayup_chf/article/details/80803221

  9. 制作U盘启动-----计算机经验

    这期呢我就先不打算写关于C的文章,这次就先给大家写几篇关于电脑系统安装的计算机经验篇.希望各位接下来看了我几期的经验文章,你们也能在电脑系统报销之时能够让其满血复活. 制作U盘启动 下载制作U盘启动的 ...

  10. JavaScript -- 时光流逝(十):Screen 对象、History 对象、Location 对象

    JavaScript -- 知识点回顾篇(十):Screen 对象.History 对象.Location 对象 1. Screen 对象 1.1 Screen 对象的属性 (1) availHeig ...