(做者:陈玓玏)html
先进入管理员模式: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呢?你须要两个东西: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