Docker笔记-运行一个web应用
1、启动
前面我们运行的容器并没有一些什么特别的用处。
接下来让我们尝试使用 docker 构建一个 web 应用程序。
我们将在docker容器中运行一个 Python Flask 应用来运行一个web应用。
# 载入镜像
$ docker pull training/webapp
# 启动
$ docker run -d -P training/webapp python app.py
参数说明:
-d
:让容器在后台运行。-P
:将容器内部使用的网络端口随机映射到我们使用的主机上。
使用 docker ps 来查看我们正在运行的容器:
$ docker ps
这里多了端口信息。
PORTS
0.0.0.0:49153->5000/tcp
Docker 开放了 5000 端口(默认 Python Flask 端口)映射到主机端口49153上。
这时我们可以通过浏览器访问WEB应用
2、自己指定端口映射
我们也可以通过 -p 参数来设置不一样的端口:
$ docker run -d -p 5000:5000 training/webapp python app.py
docker ps
查看正在运行的容器:
[root@zsx ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1634d206ebef training/webapp "python app.py" 18 seconds ago Up 17 seconds 0.0.0.0:5000->5000/tcp, :::5000->5000/tcp tender_sanderson
容器内部的 5000 端口映射到我们本地主机的 5000 端口上。
3、网络端口的快捷方式
通过 docker ps
命令可以查看到容器的端口映射,docker 还提供了另一个快捷方式 docker port
,使用
docker port
可以查看指定 (ID 或者名字) 容器的某个确定端口映射到宿主机的端口号。
上面我们创建的 web 应用容器 ID 为 1634d206ebef
名字为 tender_sanderson
。
我可以使用 docker port 1634d206ebef
或 docker port tender_sanderson
来查看容器端口的映射情况。
$ docker port 1634d206ebef
5000/tcp -> 0.0.0.0:5000
$ docker port tender_sanderson
5000/tcp -> 0.0.0.0:5000
4、查看 WEB 应用程序日志
docker logs [ID或者名字]
可以查看容器内部的标准输出。
$ docker logs -f 1634d206ebef
-f
:让 docker logs
像使用 tail -f
一样来输出容器内部的标准输出。
从上面,我们可以看到应用程序使用的是 5000 端口并且能够查看到应用程序的访问日志。
5、查看WEB应用程序容器的进程
我们还可以使用 docker top
来查看容器内部运行的进程
$ docker top 1634d206ebef
6、检查WEB应用程序
使用 docker inspect
来查看 Docker 的底层信息,它会返回一个 JSON 文件记录着 Docker 容器的配置和状态信
息。
$ docker inspect 1634d206ebef
7、停止WEB应用容器
$ docker stop 1634d206ebef
8、重启WEB应用容器
已经停止的容器,我们可以使用命令 docker start
来启动。
$ docker start 1634d206ebef
docker ps -l
查询最后一次创建的容器:
$ docker ps -l
正在运行的容器,我们可以使用 docker restart
命令来重启。
9、移除WEB应用容器
我们可以使用 docker rm 命令来删除不需要的容器
$ docker rm 1634d206ebef
删除容器时,容器必须是停止状态,否则会报如下错误
$ docker rm 1634d206ebef
Error response from daemon: You cannot remove a running container bf08b7f2cd897b5964943134aa6d373e355c286db9b9885b1f60b6e8f82b2b85. Stop the container before attempting removal or force remove
可以使用
$ docker rm -f 1634d206ebef