原文:使用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. Felx之菜单导航

    Felx之菜单导航 环境搭建:MyEclipse 6.5+Flex Builder 3 Plug-in <?xml version="1.0" encoding=" ...

  3. nodejs操作文件和数据流

    前言 node中有一组流api,它们可以像处理网络流一样处理文件.流api用起来非常方便,本节学习介绍文件处理基础和流的概念. 目录 处理文件路径 fs核心模块简介 操作流 慢客户端问题 1. 处理文 ...

  4. 使用 docker 安装多版本的 MySQL

    原文:使用 docker 安装多版本的 MySQL 首先从 docker 官网下载安装 docker. 检查 docker 安装是否成功,出现类似下面的信息就是安装好了 $ docker versio ...

  5. wampserver-mysql创建数据库

    首先打开wampserver,在右下角会出现一个这样的图标,左键单击它,选择MYSQL->MYSQL控制台 输入密码 创建一个新的数据库:create database XXX 注意要输“;”, ...

  6. 安卓MP3播放器开发实例(3)之进度条和歌词更新的实现

    上一次谈了音乐播放的实现,这次说下最复杂的进度条和歌词更新.因为须要在播放的Activity和播放的Service间进行交互,所以就涉及了Activity对Service的绑定以及绑定后数据的传输,这 ...

  7. log4j+slf4j迁移到log4j2+slf4j (Servlet3.0)

    近期对系统中的旧项目实现log升级,选择了log4j2来取代log4j.作为最新一代的log实现.log4j2好在那里能够直接看log4j2性能章节. 这里写写怎样从log4j升级到log4j2. 1 ...

  8. RvmTranslator6.3 is released

    RvmTranslator6.3 is released eryar@163.com RvmTranslator can translate the RVM file exported by AVEV ...

  9. VS中创建自定义一个VC工程为基础的开发向导的总结

    作者:朱金灿 来源:http://blog.csdn.net/clever101 VS允许用户进行自定义开发向导.自定义开发向导的好处在于将常用的设置都通过向导生成,从而大大提供开发效率.特别是在开发 ...

  10. 洛谷 P3385 【模板】负环

    P3385 [模板]负环 题目描述 暴力枚举/SPFA/Bellman-ford/奇怪的贪心/超神搜索 输入输出格式 输入格式: 第一行一个正整数T表示数据组数,对于每组数据: 第一行两个正整数N M ...