Docker触碰(二)之运行一个简单的web应用

载入镜像:

root@ubuntu:~# docker pull training/webapp  # 载入镜像
root@ubuntu:~# docker run -d -P training/webapp python app.py
e7a64ba7df2f073959097670c9c10ab1ccb2f11fa461fc6f7ebf55480141d999

参数说明:

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

查看WEB容器:

root@ubuntu:~# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                     NAMES
e7a64ba7df2f        training/webapp     "python app.py"     11 seconds ago      Up 11 seconds       0.0.0.0:32769->5000/tcp   nifty_austi

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

这时可以通过浏览器访问WEB应用:
Docker触碰(二)之运行一个简单的web应用_第1张图片

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

root@ubuntu:~# docker run -d -p 5000:5000 training/webapp python app.py
9a1c8f6307aea333aefe0c227e16b8f7ca8c5b2747718771a08956ff602bb8c1
root@ubuntu:~# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                     NAMES
9a1c8f6307ae        training/webapp     "python app.py"     35 seconds ago      Up 34 seconds       0.0.0.0:5000->5000/tcp    frosty_boyd

Docker触碰(二)之运行一个简单的web应用_第2张图片

查看WEB应用程序日志
docker logs [ID或者名字] 可以查看容器内部的标准输出:

root@ubuntu:~# docker logs 9a1c8f6307ae
 * Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)
192.168.0.116 - - [18/May/2018 06:25:30] "GET / HTTP/1.1" 200 -
192.168.0.116 - - [18/May/2018 06:25:30] "GET /favicon.ico HTTP/1.1" 404 -

查看WEB应用程序容器的进程
docker top 来查看容器内部运行的进程:

root@ubuntu:~# docker top 9a1c8f6307ae
UID                 PID                 PPID                C                   STIME               TTY                 TIME                CMD
root                3628                3613                0                   23:24               ?                   00:00:00            python app.py

检查WEB应用程序
使用 docker inspect 来查看Docker的底层信息,返回一个 JSON 文件记录着 Docker 容器的配置和状态信息。:
Docker触碰(二)之运行一个简单的web应用_第3张图片

停止WEB应用容器:

root@ubuntu:~# docker stop 9a1c8f6307ae
9a1c8f6307ae
root@ubuntu:~# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                     NAMES
e7a64ba7df2f        training/webapp     "python app.py"     17 minutes ago      Up 17 minutes       0.0.0.0:32769->5000/tcp   nifty_austin

重启WEB应用容器:

root@ubuntu:~# docker stop e7a64ba7df2f
e7a64ba7df2f
root@ubuntu:~# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
root@ubuntu:~#  docker start e7a64ba7df2f
e7a64ba7df2f
root@ubuntu:~# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                     NAMES
e7a64ba7df2f        training/webapp     "python app.py"     20 minutes ago      Up 3 seconds        0.0.0.0:32770->5000/tcp   nifty_austin
root@ubuntu:~# 

移除WEB应用容器
使用 docker rm 命令来删除不需要的容器(删除容器时,容器必须是停止状态):

root@ubuntu:~# docker stop e7a64ba7df2f
e7a64ba7df2f
root@ubuntu:~# docker rm  e7a64ba7df2f
e7a64ba7df2f
root@ubuntu:~# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

你可能感兴趣的:(Docker)