原文:使用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. cf B. Black Square

    B. Black Square time limit per test 1 second memory limit per test 256 megabytes input standard inpu ...

  2. python requests请求卡住问题

    最近经常接到别人反馈某个爬虫工具程序没有正常运行,需要下载的资讯数据也没有及时进行收录. 刚开始以为可能是机器的问题,偶尔机器会出现程序运行中途卡住的情况. 但随着异常的情况越来越频繁,我便只好去排查 ...

  3. Hexo Daemon

    前提 今天中午的时候发现自已网站突然不能访问了,我猜肯定是后台的hexo服务异常自动kill掉了.果然登录服务器ps -ef | grep hexo查看进程,果然发现hexo的进程不在了.由于我将输出 ...

  4. ios中静态库的创建和使用、制作通用静态库(Cocoa Touch Static Library)

    创建静态库可能出于以下几个理由: 1.你想将工具类代码或者第三方插件快捷的分享给其他人而无需拷贝大量文件.2.你想让一些通用代码处于自己的掌控之下,以便于修复和升级.3.你想将库共享给其他人,但不想让 ...

  5. cogs 1396. wwww

    1396. wwww ☆   输入文件:wwww.in   输出文件:wwww.out   简单对比时间限制:1 s   内存限制:256 MB [题目描述] 对于一个递归函数w(a,b,c) 如果 ...

  6. [Python] Format Strings in Python

    Single quotes and double quotes can both be used to declare strings in Python. You can even use trip ...

  7. ADB高级应用

    ADB高级应用 一.利用无线来查看adb shell > adb tcpip 5555 连接: > adb connect IP:5555 见后文<调试注意事项> 二.模拟按键 ...

  8. Node.js转化GBK编码 - iconv-lite

    node当使用node获取GBK编码的数据时,nodejs仅仅支持utf-8,node没有提供转换编码的原生支持,有倒是有一个模块iconv能干这个事,但须要本地方法,VC++库的支持.国外有个大牛写 ...

  9. hdu5288 OO’s Sequence 二分 多校联合第一场

    OO's Sequence Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others) ...

  10. 深入解析开源项目之Universal-Image-Loader(二)内存---缓存篇

    珍惜作者劳动成果,如需转载,请注明出处. http://blog.csdn.net/zhengzechuan91/article/details/50292871 Universal-Image-Lo ...