使用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 ...
随机推荐
- 963B:Destruction of a Tree
You are given a tree (a graph with n vertices and n - 1 edges in which it's possible to reach any ve ...
- Vim使用心得总结
基本快捷键 v 进入可视模式 i / a 光标前/后插入模式 I / A 行首/末插入模式 Crtl+c 进入命令模式 Crtl+v 进入块可视模式 Q 进入EX模式 gh 进入选择模式 u 撤销 U ...
- DEDECMS教程:列表页缩略图随机调用
如果用过DEDECMS的朋友应该都知道,有些模板列表页面需要用到缩略图,调用内容中的缩略图可以使用系统自带的脚本调用第一张图片.但是,并不是我们所有的内容里都有图片,有时候第一张图片也不一定是适合尺寸 ...
- 紫书 例题 9-11 UVa 1331 (最优三角形剖分)
设置f(i, j)为点i, i + 1 --j所组成的多边形. 那么可以枚举中间点k, 得f(i, j) = min{s(i, j, k), f(i, k), f(k, j) | i < k & ...
- 在XEN上启动guest时loopback设备不足
现象: 通常出现在用户挂载了多个img到guest上,会发现无法再创建guest或者无法启动guest的现象. /var/log/xen/xen-hot-plug.log中错误如下: xenstore ...
- region实现大纲效果
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
- traceroute----追踪数据包在网络上的传输过程
traceroute命令 用于追踪数据包在网络上的传输时的全部路径,它默认发送的数据包大小是40字节. traceroute通过发送小的数据包到目的设备直到其返回,来测量其需要多长时间.一条路径上的每 ...
- id---显示用户ID
d命令 id命令可以显示真实有效的用户ID(UID)和组ID(GID).UID 是对一个用户的单一身份标识.组ID(GID)则对应多个UID 语法 id [-gGnru][--help][--ve ...
- Linux 创建新用户并添加到sudo用户组
附上一份相当奢华的文档: https://www.cnblogs.com/jxhd1/p/6528574.html 添加用户到组 usermod -a -G sudo newone
- Mysql学习总结(18)——Mysql主从架构的复制原理及配置详解
一.复制概述 Mysql内建的复制功能是构建大型,高性能应用程序的基础.将Mysql的数据分布到多个系统上去,这种分布的机制,是通过将Mysql的某一台主机的数据复制到其它主机(slaves)上,并重 ...