在docker容器中运行一个 Python Flask 应用来运行一个web应用。
w3cschool@w3cschool:~# docker run -d -P training/webapp python app.py
参数说明:
-
-d:让容器在后台运行。
-
-P:将容器内部使用的网络端口映射到我们使用的主机上。
也可以指定 -p 标识来绑定指定端口:
w3cschool@w3cschool:~$ docker run -d -p 5000:5000 training/webapp python app.py
docker还提供了另一个快捷方式:docker port,使用 docker port 可以查看指定 (ID或者名字)容器的某个确定端口映射到宿主机的端口号。
w3cschool@w3cschool:~$ docker port 7a38a1ad55c6
5000/tcp -> 0.0.0.0:5000
w3cschool@w3cschool:~$ docker port determined_swanson
5000/tcp -> 0.0.0.0:5000
查看WEB应用程序日志
docker logs [ID或者名字] 可以查看容器内部的标准输出。
w3cschool@w3cschool:~$ docker logs -f 7a38a1ad55c6 * Running on http://0.0.0.0:5000/ (Press CTRL+C to quit) 192.168.239.1 - - [09/May/2016 16:30:37] "GET / HTTP/1.1" 200 - 192.168.239.1 - - [09/May/2016 16:30:37] "GET /favicon.ico HTTP/1.1" 404 -
-f:让 dokcer logs 像使用 tail -f 一样来输出容器内部的标准输出。
使用 docker top 来查看容器内部运行的进程
w3cschool@w3cschool:~$ docker top determined_swanson
使用 docker inspect 来查看Docker的底层信息。它会返回一个 JSON 文件记录着 Docker 容器的配置和状态信息。
w3cschool@w3cschool:~$ docker inspect determined_swanson [ { "Id": "7a38a1ad55c6914b360b565819604733db751d86afd2575236a70a2519527361", "Created": "2016-05-09T16:20:45.427996598Z", "Path": "python", "Args": [ "app.py" ], "State": { "Status": "running", ......
容器启动停止操作:
#停止容器
docker stop ID|NAME
#启动容器
docker start ID|NAME
#重启容器
docker restart ID|NAME
#使用 docker rm 命令来删除不需要的容器
docker rm ID|NAME
#删除容器时,容器必须是停止状态,否则会报如下错误