原文:使用Docker来运行WebApp

(作者:陈玓玏)

1、加载镜像到容器并运行webapp脚本

先进入管理员模式:

su root

然后使用已有的webapp镜像来练习在docker上运行webapp需要先把镜像下载到docker中;

docker pull training/webapp

加载完成之后,我们需要把webapp的端口设置成本机的开放端口,如果是直接运行脚本和设置端口一次性完成,方法如下:

docker run -d -P training/webapp python app.py

这样就是在默认端口上(-P将docker端口映射到主机),在后台运行(-d设置)training/webapp这个镜像中的Python脚本文件app.py。

2、访问webapp

那么怎么访问这个正在运行的webapp呢?你需要两个东西:1)你主机的ip地址;2)你容器映射到的端口地址。

获取ip地址的命令:

ifconfig -a

输出结果中的inet就是你需要的ip地址。接下来查找端口号:

#查找正在运行的容器信息
docker ps
#查找所有的容器信息
docker ps -a

输出结果如下:

CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                     NAMES
091ea847d0d2 training/webapp "python app.py" 5 seconds ago Up 4 seconds 0.0.0.0:32769->5000/tcp boring_elion

结果中的PORTS选项给出了端口号,32769->5000表示主机中使用的端口是32769,而容器中的网络端口是5000。

有了IP地址和端口号,在浏览器中输入网址为 ip地址:端口号,这样就能访问webapp了,此例中输出的结果是“Hello world!”

3、可能想要改变一下端口号

如果不改变端口号,每次开启一个新容器都会在一个新的端口上运行,不过端口分配比较随机,所以每次访问webapp都需要先查询端口号,如果要改变主机使用的端口,用以下命令:

docker run -d -p 5000:5000 training/webapp python app.py

记得这里的-p要小写。

此时再尝试更改网址中的端口号为5000,依然能成功。不过需要注意的是,冒号前面的端口号表示主机中使用的端口号,但这个端口号也不是胡乱设置的,有可能有不开放的端口号或不存在的端口号,比如你设置成6000,就不会访问成功。

4、暂停容器运行

最后如果你想暂停应用,输入以下命令:

#通过容器名称停止
docker stop boring_elion
#通过容器id停止
docker stop e6d2831a4f82

此时你再通过docker ps命令不会查到任何容器信息了,只能通过docker ps -a来查看了,不过也不会有端口信息,因为此时应用已经关闭了。再次开启用以下命令:

docker start boring_elion

5、移除容器

最后移除容器:

docker rm thirsty_villani

如果提示正在运行,不能移除那么尝试以下命令:

docker rm -f thirsty_villani

-f是强制移除正在运行的容器。

如果想要自动在容器停止运行后删除,那么通过以下命令来创建容器:

docker run -d -P --rm training/webapp python app.py

这样在你停止容器的运行后,它会自动remove掉,不需要再手动清理了。

参考文章:本文是菜鸟教程的学习笔记,主要是自己的操作笔记,有很多自己的注解,也可以直接看菜鸟教程:

http://www.runoob.com/docker/docker-container-usage.html

使用Docker来运行WebApp的更多相关文章

  1. 在docker中运行ASP.NET Core Web API应用程序

    本文是一篇指导快速演练的文章,将介绍在docker中运行一个ASP.NET Core Web API应用程序的基本步骤,在介绍的过程中,也会对docker的使用进行一些简单的描述.对于.NET Cor ...

  2. ASP.NET Core开发-Docker部署运行

    ASP.NET Core开发Docker部署,.NET Core支持Docker 部署运行.我们将ASP.NET Core 部署在Docker 上运行. 大家可能都见识过Docker ,今天我们就详细 ...

  3. 在OSX和Windows版本Docker上运行GUI程序

    看到很多人在Docker问题区讨论:如何在OS X和Windows的Docker上运行GUI程序, 随手记录几个参考资料: https://github.com/docker/docker/issue ...

  4. .NET Core Web 应用部署到 Docker 中运行

    环境介绍 : 虚拟机:VirtualBox 5.1.6 系 统:Ubuntu 16.04.1 LTS 系统准备完成后可以使用 sudo apt-get udpate 和 sudo apt-get up ...

  5. 基于阿里云容器服务用docker容器运行ASP.NET 5示例程序

    小试阿里云容器服务 之后,接下来有一个挡不住的小试冲动--用docker容器运行程序.首先想到的程序是 ASP.NET 5示例程序,于是参考msdn博客中的这篇博文 Running ASP.NET 5 ...

  6. jenkins和docker 在docker里运行jenkins

    在docker里运行jenkins server. 文章来自:http://www.ciandcd.com文中的代码来自可以从github下载: https://github.com/ciandcd ...

  7. centos7 搭建docker内运行rabbitmq,然后再镜像ha方案的完全教程,暂时一个宿主机只能运行一个docker的rabbitmq,但是集群 ha都正常

    1.安装centos7.x,配置好网络2.因为docker需要比较高版本的内核,比如使用overlayfs作为默认docker文件系统要3.18,所以先升级内核到3.18以上版本,能直接过4是最佳了检 ...

  8. docker中运行ASP.NET Core Web API

    在docker中运行ASP.NET Core Web API应用程序 本文是一篇指导快速演练的文章,将介绍在docker中运行一个ASP.NET Core Web API应用程序的基本步骤,在介绍的过 ...

  9. 在Docker中运行torch版的neural style

    相关的代码都在Github上,请参见我的Github,https://github.com/lijingpeng/deep-learning-notes 敬请多多关注哈~~~ 在Docker中运行to ...

随机推荐

  1. AIX 系统补丁升级步骤

    AIX 系统补丁升级步骤   1.升级之前建议备份 rootvg (推荐) # smit mksysb   2.检查系统版本号 # oslevel -r   3.找到补丁光盘或者下载补丁,上传到服务器 ...

  2. Ubuntu18.04上使用LLDB调试Chromium Android C++代码。

    ###动机###Chromium Android源代码庞大且复杂.在调试器LLDB下能帮助我们更好的理解代码流程.介绍使用LLDB调试器调试android上chromium的C++代码. [1] 编译 ...

  3. Httpd 文件服务器的搭建

    服务器信息 系统: CentOS 安装操作 安装 httpd 直接通过 yum 安装: yum install httpd 安装完成之后,可以检查版本: http 查看版本 httpd -versio ...

  4. android側滑菜单-DrawerLayout的基本使用

    眼下主流App开发中,部分是以側滑菜单为主布局架构,曾经做android側滑菜单时.大多选择使用github上的第三方开源框架SildingMenu,可是这个框架还是稍显笨重.好消息是google已经 ...

  5. 如日中天的Uber到底是用什么开发语言做到的?

    Uber将正在蓬勃发展的Go和Node.js这两个语言很好的融合到其系统上面来.Uber的站点可靠性project师Tom Croucher在近期于波兰举行的Node.js互动大会上详尽的对该公司所用 ...

  6. 智课雅思词汇---二、词根acu和acr

    智课雅思词汇---二.词根acu和acr 一.总结 一句话总结:acu和acr:sharp锋利的,敏捷的: acuteacutelyacuity sharp锋利的,敏捷的 1.词根acr表示什么意思? ...

  7. 酉矩阵(unitary matrix)

    复方阵 U 称为酉矩阵,如果满足: U∗U=UU∗=I 换句话说,矩阵 U 的共轭转置 U∗ 就是 U 的逆矩阵. U∗=U−1 1. unitary matrix 保持内积不变 ⟨Ux,Uy⟩=⟨x ...

  8. Day1下午解题报告

    预计分数:0+30+30=60 实际分数:0+30+40=70 T1水题(water) 贪心,按长度排序, 对于第一幅牌里面的,在第二个里面,找一个长度小于,高度最接近的牌 进行覆盖. 考场上的我离正 ...

  9. Spark 1.6.1 源码分析

    由于gitbook网速不好,所以复制自https://zx150842.gitbooks.io/spark-1-6-1-source-code/content/,非原创,纯属搬运工,若作者要求,可删除 ...

  10. 【Hello 2018 C】Party Lemonade

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 处理出凑够2^j最少需要花费多少钱. 即试着把第i种物品买2^(j-i)个,看看会不会更便宜 记录在huafei[0..31]中 然 ...