使用Docker来运行WebApp

原文: 使用Docker来运行WebApp

(做者:陈玓玏)html

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

先进入管理员模式:python

su root

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

docker pull training/webapp

加载完成以后,咱们须要把webapp的端口设置成本机的开放端口,若是是直接运行脚本和设置端口一次性完成,方法以下:sql

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

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

二、访问webapp

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

ifconfig -a

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

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

输出结果以下:markdown

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!”网络

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

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

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

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

四、暂停容器运行

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

#经过容器名称中止
docker stop boring_elion
#经过容器id中止
docker stop e6d2831a4f82

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

docker start boring_elion

五、移除容器

最后移除容器:

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

相关文章
相关标签/搜索