Docker学习笔记03_容器的简单应用

执行docker pull training/webapp 下载一个简单的web应用镜像,并执行docker images查看

执行docker run -d -P training/webapp python app.py启动此容器

Ports这一列信息显示了容器里运行的webapp使用端口号 tcp 5000被映射到了主机的端口32770,这个端口号32770是随机生成,可以使用-p参数来强制指定。

需要说明一下-P和-p的区别。

-P, --publish-all   Publish all exposed ports to random ports 

-P会将所有容器里运行应用程序之后产生的端口号全部映射成随机端口号。

-p, --publish list   Publish a container's port(s) to the host
-p 在你清楚知道应用程序产生的端口号之后,可以自行指定映射关系。

我们再用-p参数启动一次,指定容器内的应用程序5000端口映射至宿主机的80端口:

docker run -d -p 80:5000 training/webapp python app.py

 此时访问宿主机的http://IP:80和http://IP:32770都能看到同样的web页面。

随机生成的容器名称看着别扭,为了方便看也方便写指令,重命名一下容器名:docker rename Container_ID(or Container Name) New_name

 

 docker logs 查看程序运行日志:(加-f 参数持续滚动输出)

 查看容器内的进程 docker top Container_ID(or Container Name)

 

留意到信息有显示的PID和PPID,和宿主机上的PID是有什么对应关系呢

可以对比发现,PID显示的是容器内的进程在宿主机上的PID,上图中即为容器内运行的python进程PID;PPID显示的是容器内进程在宿主机上的父进程pid,也就是docker在启动运行这个容器时所产生的containerd-shim进程。

显示容器运行的底层信息:docker inspect Container_ID(or Container Name)

还是有很多很有用的底层信息可以看的。

停止容器 docker stop Container_ID(or Container Name)

 已经停止的容器,我们可以使用命令 docker start 来启动,docker restart来重启。

已停掉的容器,可以使用docker rm来删除。

系统里曾经启动运行过的所有容器可以在/var/lib/docker/containers/查看。

docker rm执行的效果会删除了这里对应ID的文件夹,container ID取这些文件夹名称的前12个字符。

 如果要删除所有的container,可以执行docker rm *

 这个文件夹也干净了。

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

2020年前端实用代码段,为你的工作保驾护航

有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )