前言

前面我们运行的容器并没有一些什么特别的用处。

接下来让我们尝试使用 docker 构建一个 web 应用程序。

我们将在docker容器中运行一个 Python Flask 应用来运行一个web应用。

运行一个web容器

  1. docker pull training/webapp # 载入镜像
  2. docker run -d -P training/webapp python app.py
  1. [root@jkc easymock]# docker run -d -P training/webapp python app.py
  2. e8365788c20ff883c97718444959c52f995ea6c38713a23a2f4ed1421ab65368
  3. [root@jkc easymock]#

参数说明:

  • -d:让容器在后台运行。
  • -P:将容器内部使用的网络端口随机映射到我们使用的主机上。

查看 WEB 应用容器

使用 docker ps 来查看我们正在运行的容器:

  1. [root@jkc ~]# docker ps
  2. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  3. e8365788c20f training/webapp "python app.py" 31 minutes ago Up 31 minutes 0.0.0.0:49153->5000/tcp dazzling_mcnulty

这里多了端口信息。

  1. PORTS
  2. 0.0.0.0:49153->5000/tcp

Docker 开放了 5000 端口(默认 Python Flask 端口)映射到主机端口 49153 上。

这时我们可以通过浏览器访问WEB应用



我们也可以通过 -p 参数来设置不一样的端口:

  1. [root@jkc ~]# docker run -d -p 5000:5000 training/webapp python app.py

docker ps查看正在运行的容器

  1. [root@jkc ~]# docker ps
  2. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  3. 0d3fe01b6c13 training/webapp "python app.py" 36 seconds ago Up 35 seconds 0.0.0.0:5000->5000/tcp lucid_lederberg

容器内部的 5000 端口映射到我们本地主机的 5000 端口上。

网络端口的快捷方式

通过docker ps命令可以查看到容器的端口映射,docker 还提供了另一个快捷方式 docker port,使用docker port可以查看指定 (ID 或者名字)容器的某个确定端口映射到宿主机的端口号。

上面我们创建的 web 应用容器 ID 为 0d3fe01b6c13 名字为 lucid_lederberg。

我可以使用 docker port 0d3fe01b6c13 或 docker port lucid_lederberg 来查看容器端口的映射情况。

  1. [root@jkc ~]# docker port 0d3fe01b6c13
  2. 5000/tcp -> 0.0.0.0:5000
  3. [root@jkc ~]# docker port lucid_lederberg
  4. 5000/tcp -> 0.0.0.0:5000
  5. [root@jkc ~]#

查看WEB应用程序容器的进程

我们还可以使用 docker top 来查看容器内部运行的进程

  1. [root@jkc ~]# docker top 0d3fe01b6c13
  2. UID PID PPID C STIME TTY TIME CMD
  3. root 23464 23421 0 16:09 ? 00:00:00 python app.py

检查 WEB 应用程序

使用 docker inspect 来查看 Docker 的底层信息。它会返回一个 JSON 文件记录着 Docker 容器的配置和状态信息。

  1. [root@jkc ~]# docker inspect e8365788c20f
  2. [
  3. {
  4. "Id": "e8365788c20ff883c97718444959c52f995ea6c38713a23a2f4ed1421ab65368",
  5. "Created": "2021-01-22T07:26:49.225684861Z",
  6. "Path": "python",
  7. "Args": [
  8. "app.py"
  9. ],
  10. "State": {
  11. "Status": "exited",
  12. "Running": false,
  13. "Paused": false,
  14. "Restarting": false,
  15. "OOMKilled": false,
  16. "Dead": false,
  17. "Pid": 0,
  18. "ExitCode": 137,
  19. "Error": "",
  20. "StartedAt": "2021-01-22T07:26:49.59638614Z",
  21. "FinishedAt": "2021-01-22T08:09:05.22474156Z"
  22. },
  23. .......

docker(5)docker运行web应用的更多相关文章

  1. Docker:docker部署Tomcat运行web项目

    查找Docker Hub上的tomcat镜像 docker search tomcat 拉取官方的镜像 docker pull tomcat 启动Tomcat服务 方式1: 通过dockerfile生 ...

  2. 在Docker中运行web应用

    启动一个简单的web 应用 使用社区提供的模板,启动一个简单的web应用,熟悉下各种Docker命令的使用: # docker run -d -P training/webapp python app ...

  3. Docker入门系列之一:在一个Docker容器里运行指定的web应用

    实现题目描述的这个需求有很多种办法,作为入门,让我们从最简单的办法开始. 首先使用命令docker ps确保当前没有正在运行的Docker实例. 运行命令docker run -it nginx: 然 ...

  4. 运行第一个Docker容器-Docker for Web Developers(1)

    1. Docker介绍 Docker由dotCloud公司发起的一个内部项目,后来Docker火了,dotCloud公司改名为Docker了: Docker使用了Go语言开发,基于 Linux 内核的 ...

  5. Docker容器中运行ASP.NET Core

    在Linux和Windows的Docker容器中运行ASP.NET Core 译者序:其实过去这周我都在研究这方面的内容,结果周末有事没有来得及总结为文章,Scott Hanselman就捷足先登了. ...

  6. .NET遇上Docker - 使用Docker Compose组织Ngnix和.NETCore运行

    本文工具准备: Docker for Windows Visual Studio 2015 与 Visual Studio Tools for Docker 或 Visual Studio 2017 ...

  7. 在 Docker 容器中运行应用程序

    案例说明 运行 3 个容器,实现对网站的监控. 三个容器的说明: 容器 web: 创建自 nginx 映像,使用 80 端口,运行于后台,实现 web 服务. 容器 mailer: 该容器中运行一个 ...

  8. 如何使用Docker部署一个Go Web应用程序

    熟悉Docker如何提升你在构建.测试并部署Go Web应用程序的方式,并且理解如何使用Semaphore来持续部署. 简介 大多数情况下Go应用程序被编译成单个二进制文件,web应用程序则会包括模版 ...

  9. Docker安装+HelloWorld+运行Tomcat

    前言 只有光头才能变强. 文本已收录至我的GitHub仓库,欢迎Star:https://github.com/ZhongFuCheng3y/3y 上一篇已经讲解了为什么需要Docker?,相信大家已 ...

随机推荐

  1. 手动修复 under-replicated blocks in HDFS

    解决方式步骤: 1.进入hdfs的pod kubectl get pod -o wide | grep hdfs kubectl exec -ti hadoop-hdfs-namenode-hdfs1 ...

  2. 域名解析 看Cname 信息

    CMD 命令: nslookup -q=cname www.yuzhentan.com

  3. maven打包时排除配置文件

    上网查了一下,直接在pom里面配置就好了,具体写法如下所示 <build> ... <resources> <resource> <directory> ...

  4. Laya 小游戏通用框架设计理念

    当前在用laya做小游戏开发,做了几个项目,总结了一下游戏中所需要的一些模块,大概理了一下,然后写成一套自己习惯使用的框架 总结了一下其中的模块 大概要分为一下模块 1.Base 模块    存放一些 ...

  5. ssh连接不上vmware虚拟机centos7.5

    在vmware中安装centos7.5后,手动设置IP地址192.168.1.5,发现主机ping不通虚拟机的IP,以下是我的解决办法 1.vmware设置选择仅主机模式 2.在主机查看vmnet1( ...

  6. 1018 Public Bike Management (30分) PAT甲级真题 dijkstra + dfs

    前言: 本题是我在浏览了柳神的代码后,记下的一次半转载式笔记,不经感叹柳神的强大orz,这里给出柳神的题解地址:https://blog.csdn.net/liuchuo/article/detail ...

  7. Linux 服务器安装node环境

    Linux 装 node 环境 我的是 CentOS 查看服务器是多少位系统 getconf LONG_BIT 下载地址, 下载对应的版本: http://nodejs.cn/download/ 我这 ...

  8. 【MySQL】使用MySQL(连接、选择数据库、显示数据库和表信息)

    第3章 使用MySQL 文章目录 第3章 使用MySQL 连接 选择数据库 了解数据库和表 小结 简单记录 - MySQL必知必会 - [英]Ben Forta 将学习如何连接和登录到MySQL,如何 ...

  9. 【Oracle】B-tree和函数索引

    转自:https://www.cnblogs.com/yumiko/p/5957613.html 函数索引 1.1 概述 在实际应用中,当条件列使用函数运算进行数据匹配时,即使该列建立了索引,索引也不 ...

  10. SAP中数据库表长度的界定

    SAP中,如何查看表和关键字的长度?通过SE11菜单栏Extras->table width 可以看到.然而SAP在系统也会将表分类,特别是在可扩展的表维护视图中,分为如下几类      ult ...