使用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
转载于:https://www.cnblogs.com/lonelyxmas/p/10412434.html
使用Docker来运行WebApp相关推荐
- 一步步在Docker里运行Web应用
2018年只剩最后30天了.Jerry在2017年的最后一天,曾经立下一个目标:这个微信公众号在2018年保证至少每周发布一篇SAP原创技术文章. 从Jerry在后台统计的2018全年文章数量来看,这 ...
- docker保护python源码_Tensorflow在Docker中运行和源码编译
本文分享在在Docker中运行Tensorflow和进行源码编译的方法和步骤,包括:编译.构建docker镜像.创建和运行Docker容器.部署完的容器可以通过Jupyter Notebook进行访问 ...
- [转帖]Docker里运行Docker docker in docker(dind)
Docker里运行Docker docker in docker(dind) http://www.wantchalk.com/c/devops/docker/2017/05/24/docker-in ...
- DOCKER上运行DOTNET CORE
DOCKER上运行DOTNET CORE 原文:DOCKER上运行DOTNET CORE 下载microsoft/dotnet镜像 运行命令: docker pull microsoft/dotnet ...
- 基于Docker本地运行k8s(单节点)
基于Docker本地运行Kubernetes 概览 下面的指引将高速你如何通过Docker创建一个单机.单节点的Kubernetes集群. 下图是最终的结果: 先决条件 你必须拥有一台安装有Docke ...
- 在 Docker 上运行一个 RESTful 风格的微服务
tags: Microservice Restful Docker Author: Andy Ai Weibo: NinetyH GitHub: https://github.com/aiyanbo/ ...
- 使用 docker 编译运行 abp 项目
在前面的两篇文章中,介绍了如何在华为鲲鹏架构及其Euler系统上运行dotnet core, 使用docker运行了默认的mvc模板项目,这篇文章继续介绍在docker中运行更复杂的dotnet co ...
- .NET Core 3.0 部署在docker上运行
自从.NET Core3.0发布之后,写了几篇关于.NET Core 3.0的文章,有助于你快速入门.NET Core3.0. 本篇文章主要讲解如何一步步创建一个mvc项目,然后发布并部署在Docke ...
- ASP.NET Core 网站在Docker中运行
Docker作为新一代的虚拟化方式,未来肯定会得到广泛的应用,传统虚拟机的部署方式要保证开发环境.测试环境.UAT环境.生产环境的依赖一致性,需要大量的运维人力,使用Docker我们可以实现一次部署, ...
最新文章
- Android 替换TextView 里面指定的符号
- [Google API](3)创建搜索
- v-model 使用场景和源码学习
- 趣学python3(5)-数字,字符串,列表(2)
- rabbitMQ消息队列 – 面板介绍及简单demo
- Android Studio Gradle构建脚本
- 信息学奥赛一本通 1076:正常血压 | OpenJudge NOI 1.5 24:正常血压
- 【MySQL】RPM包安装
- C#属性默认值设置(model实体类)
- Qt 学习(四) —— qrc资源文件介绍与使用
- PID算法基本原理及整定实现方法
- PHP搭建留言板,用PHP制作留言板_php
- Spring Boot+Spring Security:基于URL动态权限:自定义Filter - 第17篇
- 在世界读书日之后,重温与好书相遇的时光 | O'Reilly赠书活动
- pycharm 2017年5月注册码(2017.4.25更新)
- TuscanySCA5-理解SCA Domian
- ABAQUS均匀受力,边界条件对称,但结果云图不对称
- 联想服务器开机滴一下不显示,电脑开机没有滴的一声显示器不亮怎么办 电脑开机故障解决方法【图文】...
- 倒水问题题解(勿喷)
- java.double和 floa 的区别
热门文章
- 如何让SAP Spartacus的非英语页面正常显示
- SAP CRM Fiori应用My Opportunity的点阵外观
- SAP CRM和Cloud for Customer的Account merge
- MongoDB最简单的入门教程之一 环境搭建
- c++hello world代码_在 Rust 代码中编写 Python 是种怎样的体验?
- 怎样让电脑速度变快_双11的笔记本电脑怎么买?哪些轻薄款的最好?
- android 图标自动更新,android手机安装软件后会生成图标,但今后更新该软件图标都不会变化,如何使图标变成最新版的图标?...
- 鸿蒙系统多屏协同,官方铁证!鸿蒙 2.0 手机来了,EMUI 11 多屏协同支持鸿蒙手机...
- 海信计算机辅助统,海信计算机辅助手术系统将覆盖山东三级医院
- 关于用串口IDLE中断,DMA_GetCurrDataCounter()函数值不变的问题