使用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的更多相关文章
- 在docker中运行ASP.NET Core Web API应用程序
本文是一篇指导快速演练的文章,将介绍在docker中运行一个ASP.NET Core Web API应用程序的基本步骤,在介绍的过程中,也会对docker的使用进行一些简单的描述.对于.NET Cor ...
- ASP.NET Core开发-Docker部署运行
ASP.NET Core开发Docker部署,.NET Core支持Docker 部署运行.我们将ASP.NET Core 部署在Docker 上运行. 大家可能都见识过Docker ,今天我们就详细 ...
- 在OSX和Windows版本Docker上运行GUI程序
看到很多人在Docker问题区讨论:如何在OS X和Windows的Docker上运行GUI程序, 随手记录几个参考资料: https://github.com/docker/docker/issue ...
- .NET Core Web 应用部署到 Docker 中运行
环境介绍 : 虚拟机:VirtualBox 5.1.6 系 统:Ubuntu 16.04.1 LTS 系统准备完成后可以使用 sudo apt-get udpate 和 sudo apt-get up ...
- 基于阿里云容器服务用docker容器运行ASP.NET 5示例程序
小试阿里云容器服务 之后,接下来有一个挡不住的小试冲动--用docker容器运行程序.首先想到的程序是 ASP.NET 5示例程序,于是参考msdn博客中的这篇博文 Running ASP.NET 5 ...
- jenkins和docker 在docker里运行jenkins
在docker里运行jenkins server. 文章来自:http://www.ciandcd.com文中的代码来自可以从github下载: https://github.com/ciandcd ...
- centos7 搭建docker内运行rabbitmq,然后再镜像ha方案的完全教程,暂时一个宿主机只能运行一个docker的rabbitmq,但是集群 ha都正常
1.安装centos7.x,配置好网络2.因为docker需要比较高版本的内核,比如使用overlayfs作为默认docker文件系统要3.18,所以先升级内核到3.18以上版本,能直接过4是最佳了检 ...
- docker中运行ASP.NET Core Web API
在docker中运行ASP.NET Core Web API应用程序 本文是一篇指导快速演练的文章,将介绍在docker中运行一个ASP.NET Core Web API应用程序的基本步骤,在介绍的过 ...
- 在Docker中运行torch版的neural style
相关的代码都在Github上,请参见我的Github,https://github.com/lijingpeng/deep-learning-notes 敬请多多关注哈~~~ 在Docker中运行to ...
随机推荐
- js中split,splice,slice方法之间的差异。
首先我们先来林格斯双击翻译一下: split 劈开, 使分裂: splice 接合; 使结合: slice 切成薄片, 切: 我先是这么区分的:这三个方法最后一个字母是t的是字符串方法,是e的 ...
- 推荐《深入浅出深度学习原理剖析与python实践》PDF+代码
<深入浅出深度学习原理剖析与Python实践>介绍了深度学习相关的原理与应用,全书共分为三大部分,第一部分主要回顾了深度学习的发展历史,以及Theano的使用:第二部分详细讲解了与深度学习 ...
- 【 正确使用vim编辑器的姿势】
vi:可视化接口(Visual Interface) vim:是vi的增强版(vi iMprove) vi编辑器是所有Unix及Linux系统下标准的编辑器,他就相当于windows系统中的记事本一样 ...
- PHP解析XML格式文档
<?php// 首先要建一个DOMDocument对象$xml = new DOMDocument();// 加载Xml文件$xml->load("3.xml");// ...
- CodeForcesGym 100502D Dice Game
Dice Game Time Limit: 1000ms Memory Limit: 524288KB This problem will be judged on CodeForcesGym. Or ...
- 【BUG】"main" prio=5 tid=1 RUNNABLE
载入超大效果图导致内存不足(GC/ANR) 06-30 11:42:56.624: D/dalvikvm(16264): GC_CONCURRENT freed 1982K, 7% free 4537 ...
- Linux智能手机安全策略研究
Linux智能手机安全策略研究 http://www.zdnet.com.cn 本文是继从“窃听门”事件解读手机Rootkit攻击(http://chenguang.blog.51cto.com ...
- C# Unable to load DLL 'WzCanDll.dll':找不到指定的模块
一.打开app无法加载DLL 我用C++编写的DLL,然后用C#写的界面APP,在自己的电脑上打开没有问题,放在其它电脑上就出现无法加载DLL库的问题,一连接APP就会出现问题,如下图所示: 二.解决 ...
- WPF转换器
1. 前文 在普遍的也业务系统中, 数据要驱动到操作的用户界面, 它实际储存的方式和表达方式会多种多样, 数据库存储的数字 0或1, 在界面用户看到显示只是 成功或失败, 或者存储的字符.或更多的格式 ...
- aop 中joinpoint的使用方法
一.簡述下joinpoint在不同情況下的不同: 1.在around中可以用,此時可以執行被包裹的代碼,可以根據情況來判斷是否執行被包裹的代碼,以實現控制的作用. public void around ...