docker部署web项目_docker web程序本地化

docker部署web项目_docker web程序本地化前言前面我们运行的容器并没有一些什么特别的用处。接下来让我们尝试使用docker构建一个web应用程序。我们将在docker容器中运行一个PythonFlask应用来运行一个web

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

前言

前面我们运行的容器并没有一些什么特别的用处。
接下来让我们尝试使用 docker 构建一个 web 应用程序。
我们将在docker容器中运行一个 Python Flask 应用来运行一个web应用。
 

运行一个web容器

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

参数说明:

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

查看 WEB 应用容器

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

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

这里多了端口信息。

PORTS
0.0.0.0:49153->5000/tcp

Docker 开放了 5000 端口(默认 Python Flask 端口)映射到主机端口 49153 上。
这时我们可以通过浏览器访问WEB应用
docker部署web项目_docker web程序本地化
我们也可以通过 -p 参数来设置不一样的端口:

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

docker ps查看正在运行的容器

[root@jkc ~]# docker ps
CONTAINER ID        IMAGE                     COMMAND                  CREATED             STATUS              PORTS                    NAMES
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 来查看容器端口的映射情况。

[root@jkc ~]# docker port 0d3fe01b6c13
5000/tcp -> 0.0.0.0:5000
[root@jkc ~]# docker port lucid_lederberg
5000/tcp -> 0.0.0.0:5000
[root@jkc ~]# 

 

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

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

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

 

检查 WEB 应用程序

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

[root@jkc ~]# docker inspect e8365788c20f
[
    {
        "Id": "e8365788c20ff883c97718444959c52f995ea6c38713a23a2f4ed1421ab65368",
        "Created": "2021-01-22T07:26:49.225684861Z",
        "Path": "python",
        "Args": [
            "app.py"
        ],
        "State": {
            "Status": "exited",
            "Running": false,
            "Paused": false,
            "Restarting": false,
            "OOMKilled": false,
            "Dead": false,
            "Pid": 0,
            "ExitCode": 137,
            "Error": "",
            "StartedAt": "2021-01-22T07:26:49.59638614Z",
            "FinishedAt": "2021-01-22T08:09:05.22474156Z"
        },
.......

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/165948.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • docker 入门_docker高级教程

    docker 入门_docker高级教程一、docker概述1.什么是dockerDocker是一个开源的应用容器引擎,基于Go语言并遵从Apache2.0协议开源。Docker可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似iPhone的app),更重要的是容器性能开销极低。Docker从17.03版本之后分为CE(CommunityEdition:社区版)和E..

    2022年10月15日
  • docker搭建kafka集群[通俗易懂]

    docker搭建kafka集群[通俗易懂]docker搭建kafka集群我在M1mbp上使用的以下镜像新建文件zk-kafka-docker-compose.ymlversion:”2″services:zookeeper:user:rootimage:docker.io/zookeeperports:-“12181:2181″environment:-ALLOW_ANONYMOUS_LOGIN=yesvolumes:-zoo

  • Jenkins(2)docker容器中安装python3「建议收藏」

    Jenkins(2)docker容器中安装python3「建议收藏」前言使用docker安装jenkins环境,jenkins构建的workspace目录默认是在容器里面构建的,如果我们想执行python3的代码,需进容器内部安装python3的环境。进jenki

  • docker导出镜像命令_docker save将容器保存为镜像

    docker导出镜像命令_docker save将容器保存为镜像导入导出命令介绍涉及的命令有export、import、save、loadsave示例dockersave-onginx.tarnginx:latest或dockersave>nginx.tarnginx:latest其中-o和>表示输出到文件,nginx.tar为目标文件,nginx:latest是源镜像名(name:tag),后面也可以是容器idload示例dockerload-inginx.tar或dockerload<n

  • centos7.4安装docker_docker打包python应用

    centos7.4安装docker_docker打包python应用前言当我们在一台电脑上搭建了python3.6的环境,下次换台电脑,又得重新搭建一次,设置环境变量等操作。好不容易安装好,一会提示pip不是内部或外部命令,一会又提示pip:commandno

  • docker端口映射不起作用的解决办法有哪些_docker 端口映射

    docker端口映射不起作用的解决办法有哪些_docker 端口映射今天初学Docker和宿主机的端口映射,根据网上的博客进行了操作。执行命令:dockerrun-d-p50070:50070-p8088:8088–namehadoop1ubuntu:java但是发现命令可以正常执行,但端口映射就是不成功,PORTS一直为空,就像下图这样:然后输入命令dockerportc526发现输出也为空这就奇了怪了…

    2022年10月17日

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号