设为首页 收藏本站
查看: 1377|回复: 0

[经验分享] 在Docker中运行web应用

[复制链接]

尚未签到

发表于 2017-12-7 06:52:28 | 显示全部楼层 |阅读模式
启动一个简单的web 应用
  使用社区提供的模板,启动一个简单的web应用,熟悉下各种Docker命令的使用:




[plain] view plain copy
  

  • # docker run -d -P training/webapp python app.py
  • Unable to find image 'training/webapp' locally
  • Pulling repository training/webapp
  • 31fa814ba25a: Download complete
  • 511136ea3c5a: Download complete
  • f10ebce2c0e1: Download complete
  • 82cdea7ab5b5: Download complete
  • 5dbd9cb5a02f: Download complete
  • 74fe38d11401: Download complete
  • 64523f641a05: Download complete
  • 0e2afc9aad6e: Download complete
  • e8fc7643ceb1: Download complete
  • 733b0e3dbcee: Download complete
  • a1feb043c441: Download complete
  • e12923494f6a: Download complete
  • a15f98c46748: Download complete
  • Status: Downloaded newer image for training/webapp:latest
  • d00f94a31e8767271f68ab72eab15a8e805c416b0636877f22a31572d10b718d
  -d 启动一个daemon并在后台运行
  -P 映射一个网络端口
  training/webapp docker社区提供的,预先创建好的模板,里面包含一个简单的Python Flask web应用



[plain] view plain copy
  

  • # docker ps -l
  • CONTAINER ID        IMAGE                    COMMAND             CREATED             STATUS              PORTS                     NAMES
  • d00f94a31e87        training/webapp:latest   "python app.py"     59 seconds ago      Up 56 seconds       0.0.0.0:49153->5000/tcp   hopeful_lalande
  -l 查看详细信息
  PORTS显示 0.0.0.0:49153->5000/tcp
  意思是将Container中的5000端口,映射到host的49153端口。5000是Python Flask 的默认端口。
  也可以使用 -p container-port:host-port 命令来指定映射端口号



[plain] view plain copy
  

  • # docker run -d -p 5000:5000 training/webapp python app.py
DSC0000.jpg

查看web应用信息
查看名为hopeful_lalande的docker container中,5000端口的映射信息



[plain] view plain copy
  

  • # docker port hopeful_lalande 5000
  • 0.0.0.0:49153
查看web应用日志



[plain] view plain copy
  

  • # docker logs -f hopeful_lalande
  • * Running on http://0.0.0.0:5000/
  • 192.168.254.1 - - [17/Dec/2014 02:30:32] "GET / HTTP/1.1" 200 -
  • 192.168.254.1 - - [17/Dec/2014 02:30:32] "GET /favicon.ico HTTP/1.1" 404 -
  • 192.168.254.1 - - [17/Dec/2014 02:30:32] "GET /favicon.ico HTTP/1.1" 404 -
  -f 持续查看container日志的标准化输出,类似tail -f
查看进程详细信息



[plain] view plain copy
  

  • # docker top hopeful_lalande
  • UID                 PID                 PPID                C                   STIME               TTY                 TIME                CMD
  • root                15189               2447                0                   10:24               ?                   00:00:00            python app.py
查看web应用容器详细信息



[plain] view plain copy
  

  • # docker inspect hopeful_lalande
  • [{
  •     "AppArmorProfile": "",
  •     "Args": [
  •         "app.py"
  •     ],
  •     "Config": {
  •         "AttachStderr": false,
  •         "AttachStdin": false,
  •         "AttachStdout": false,
  •         "Cmd": [
  •             "python",
  •             "app.py"
  •         ],
  •         "CpuShares": 0,
  •         "Cpuset": "",
  •         "Domainname": "",
  •         "Entrypoint": null,
  •         "Env": [
  •             "HOME=/",
  •             "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
  •         ],
  •         "ExposedPorts": {
  •             "5000/tcp": {}
  •         },
  •         "Hostname": "d00f94a31e87",
  •         "Image": "training/webapp",
  •         "Memory": 0,
  •         "MemorySwap": 0,
  •         "NetworkDisabled": false,
  •         "OnBuild": null,
  •         "OpenStdin": false,
  •         "PortSpecs": null,
  •         "StdinOnce": false,
  •         "Tty": false,
  •         "User": "",
  •         "Volumes": null,
  •         "WorkingDir": "/opt/webapp"
  •     },
  •     "Created": "2014-12-17T02:24:09.468631143Z",
  •     "Driver": "devicemapper",
  •     "ExecDriver": "native-0.2",
  •     "HostConfig": {
  •         "Binds": null,
  •         "CapAdd": null,
  •         "CapDrop": null,
  •         "ContainerIDFile": "",
  •         "Devices": [],
  •         "Dns": null,
  •         "DnsSearch": null,
  •         "ExtraHosts": null,
  •         "Links": null,
  •         "LxcConf": [],
  •         "NetworkMode": "bridge",
  •         "PortBindings": {},
  •         "Privileged": false,
  •         "PublishAllPorts": true,
  •         "RestartPolicy": {
  •             "MaximumRetryCount": 0,
  •             "Name": ""
  •         },
  •         "SecurityOpt": null,
  •         "VolumesFrom": null
  •     },
  •     "HostnamePath": "/var/lib/docker/containers/d00f94a31e8767271f68ab72eab15a8e805c416b0636877f22a31572d10b718d/hostname",
  •     "HostsPath": "/var/lib/docker/containers/d00f94a31e8767271f68ab72eab15a8e805c416b0636877f22a31572d10b718d/hosts",
  •     "Id": "d00f94a31e8767271f68ab72eab15a8e805c416b0636877f22a31572d10b718d",
  •     "Image": "31fa814ba25ae3426f8710df7a48d567d4022527ef2c14964bb8bc45e653417c",
  •     "MountLabel": "",
  •     "Name": "/hopeful_lalande",
  •     "NetworkSettings": {
  •         "Bridge": "docker0",
  •         "Gateway": "172.17.42.1",
  •         "IPAddress": "172.17.0.8",
  •         "IPPrefixLen": 16,
  •         "MacAddress": "02:42:ac:11:00:08",
  •         "PortMapping": null,
  •         "Ports": {
  •             "5000/tcp": [
  •                 {
  •                     "HostIp": "0.0.0.0",
  •                     "HostPort": "49153"
  •                 }
  •             ]
  •         }
  •     },
  •     "Path": "python",
  •     "ProcessLabel": "",
  •     "ResolvConfPath": "/var/lib/docker/containers/d00f94a31e8767271f68ab72eab15a8e805c416b0636877f22a31572d10b718d/resolv.conf",
  •     "State": {
  •         "ExitCode": 0,
  •         "FinishedAt": "0001-01-01T00:00:00Z",
  •         "Paused": false,
  •         "Pid": 15189,
  •         "Restarting": false,
  •         "Running": true,
  •         "StartedAt": "2014-12-17T02:24:11.279426855Z"
  •     },
  •     "Volumes": {},
  •     "VolumesRW": {}
  • }
  • ]
  输出一个JSON格式的Docker container配置和状态。
  也可以通过指定名称,获取某项信息值,如下:



[plain] view plain copy
  

  • # docker inspect -f '{{ .NetworkSettings.IPAddress }}' hopeful_lalande
  • 172.17.0.8
停止Web应用



[plain] view plain copy
  

  • # docker stop hopeful_lalande
  • hopeful_lalande
  停止后,可以使用docker ps -a命令,列出之前所有docker容器



[plain] view plain copy
  

  • # docker ps -a
  • CONTAINER ID        IMAGE                    COMMAND                CREATED             STATUS                         PORTS               NAMES
  • d00f94a31e87        training/webapp:latest   "python app.py"        21 minutes ago      Exited (-1) 43 seconds ago                         hopeful_lalande
  • 7f22b335fb2c        fedora:latest            "/bin/sh -c 'while t   49 minutes ago      Exited (-1) 40 minutes ago                         silly_archimedes
  • 。。。
重启Web应用



[plain] view plain copy
  

  • # docker start hopeful_lalande
  • hopeful_lalande
删除Web应用



[plain] view plain copy
  

  • # docker rm hopeful_lalande
  • Error response from daemon: You cannot remove a running container. Stop the container before attempting removal or use -f
  • 2014/12/17 10:49:32 Error: failed to remove one or more containers
  提示无法删除一个正在运行的container。
  停止该container后,重新执行上条命令,成功删除container

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-421528-1-1.html 上篇帖子: Docker的简单介绍及使用 下篇帖子: Docker的单主机容器网络
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表