docker学习端口映射---第二章节

时间:2024-01-13 16:52:14

一.运行一个web应用

首先,下载一个docker镜像:

[root@k8s-01 ~]# docker pull training/webapp

运行webapp的容器:

[root@k8s-01 ~]# docker run -d -P training/webapp python app.py
cb2ea5793288ada7c8be553befab76d7516e4a65999680aefeb531d000888634

参数说明:

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

二.查看WEB应用容器

docker ps -l显示最新创建的容器

查看我们正在运行的webapp容器:

[root@k8s-01 ~]# docker ps -l
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
cb2ea5793288 training/webapp "python app.py" 54 seconds ago Up 54 seconds 0.0.0.0:32768->5000/tcp laughing_engelbart

可以发现,多了端口信息。docker开放的5000端口映射到主机端口32768上。可以通过浏览器访问WEB应用:

docker学习端口映射---第二章节

这里我们还可以通过-p参数来设置不一样的端口:

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

查看运行的容器:

[root@k8s-01 ~]# docker ps -l
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c5acdbc01395 training/webapp "python app.py" 52 seconds ago Up 51 seconds 0.0.0.0:5000->5000/tcp pensive_mestorf

可以看出容器内部的5000端口映射到我们本地主机的5000端口上。

三.查看网络端口的快捷方式

我们可以通过docker ps命令查看容器的端口映射。docker还提供了另一个快捷方式docker port,使用docker port可以查看指定(容器ID或者名称)容器的某个确定端口映射到宿主机的端口号

[root@k8s-01 ~]# docker port c5acdbc01395 && docker port pensive_mestorf
5000/tcp -> 0.0.0.0:5000
5000/tcp -> 0.0.0.0:5000

四.查看docker容器应用程序日志输出

[root@k8s-01 ~]# docker logs -f c5acdbc01395
* Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)

这里可以像使用tail -f 一样来输出容器内部的标准输出

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

我们可以通过docker top来查看容器内部运行的进程

[root@k8s-01 ~]# docker top c5acdbc01395
UID PID PPID C STIME TTY TIME CMD
root 2358409 2358392 0 04:10 ? 00:00:00 python app.py

六.检查WEB应用容器的配置和状态信息

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

[root@k8s-01 ~]# docker inspect c5acdbc01395
[
{
"Id": "c5acdbc01395c4d4d38438bc8351fd0820d2ac60c6c8e4924c28f600d0f83c78",
"Created": "2018-12-20T09:10:33.039244936Z",
"Path": "python",
"Args": [
"app.py"
],
"State": {
"Status": "running",
"Running": true,
"Paused": false,
"Restarting": false,
"OOMKilled": false,
"Dead": false,
"Pid": 2358409,
"ExitCode": 0,
"Error": "",
"StartedAt": "2018-12-20T09:10:33.400703462Z",
"FinishedAt": "0001-01-01T00:00:00Z"
},
.........

七.删除web应用容器

使用docker rm命令删除容器

删除前,需要停止容器,否则会报错

[root@k8s-01 ~]# docker stop c5acdbc01395
c5acdbc01395

删除容器

[root@k8s-01 ~]# docker rm c5acdbc01395
c5acdbc01395

参考链接:http://www.runoob.com/docker/docker-container-usage.html