第六章-容器-一

什么是容器

通俗地讲,容器是镜像的运行实体。镜像是静态的只读文件,而容器带有运行时需要的可写文件层,并且容器中的进程属于运行状态。即容器运行着真正的应用进程。容器有初建、运行、停止、暂停和删除五种状态。虽然容器的本质是主机上运行的一个进程,但是容器有自己独立的命名空间隔离和资源限制。也就是说,在容器内部,无法看到主机上的进程、环境变量、网络等信息,这是容器与直接运行在主机上进程的本质区别。容器是基于镜像创建的可运行实例,并且单独存在,一个镜像可以创建出多个容器。运行容器化环境时,实际上是在容器内部创建该文件系统的读写副本。 这将添加一个容器层,该层允许修改镜像的整个副本。

容器的生命周期

  1. created:初建状态

  2. running:运行状态

  3. stopped:停止状态

  4. paused: 暂停状态

  5. deleted:删除状态

命令控制状态转换

容器命令详解

命令清单

命令别名功能
docker createdocker container create创建容器
docker rundocker container run运行容器
docker attachdocker container attach连接到正在运行中的容器
docker commitdocker container commmit将镜像提交为容器
docker cpdocker container cp在容器和宿主机之间拷贝
docker diffdocker container diff检查容器里文件结构的更改
docker execdocker container exec在运行的容器中执行命令
docker exportdocker container export将容器导出为 tar
docker container inspect 查看容器详细信息
docker killdocker container kill杀死容器
docker logsdocker container logs查看日志
docker psdocker container ls
docker container list
docker container ps
查看正在运行的进程
docker pausedocker container pause暂停进程
docker portdocker container port查看容器的端口映射
docker container prune 删除停止的容器
docker renamedocker container rename重命名容器
docker restartdocker container restart重启容器
docker rmdocker container rm
docker container remove
删除容器
docker startdocker container start启动容器
docker statsdocker container stats查看资源占用信息
docker stopdocker container stop停止容器
docker topdocker container top查看某个容器的资源占用
docker unpausedocker container unpause继续运行容器
docker updatedocker container update更新容器配置
docker waitdocker container wait阻止一个或多个容器停止,然后打印退出码

docker create

参数和docker run基本上是一样的。

docker logs

参数

先启动一个容器。

查看现在正在运行的容器。

查看日志。

-f选项可以实时输出结果。

docker attach

连接到正在运行中的容器。

很好理解,就是连接到一个容器上。

在这个bash上,是可以收到这个容器的io信息的,如果我们此时^C,这个容器也会被杀掉。

也就是说,attach进去之后,容器是可以收到这个bash发送的信号的。

但是,如果带上--sig-proxy,信号就会被代理。

docker exec

在容器中执行命令。

参数

实操。

docker start 和 docker stop

很简单,直接看例子。

但是docker stop有参数的。

docker restart

重启容器

docker kill

强制退出容器

参数:-s :发送的信号

docker kill会更暴力地杀死一个容器。

docker top

查看容器中运行的进程信息,支持 ps 命令参数。

容器运行时不一定有/bin/bash 终端来交互执行 top命令,而且容器还不一定有top命令,可以使用 docker top来实现查看容器中正在运行的进程。

docker stats

显示容器资源的使用情况,包括:CPU、内存、网络 I/O 等。

参数

docker container inspect

查看容器详细信息

参数

可以重定向到一个.json文件里面去。

docker port

用于列出指定的容器的端口映射,或者查找将 PRIVATE_PORT NAT 到面向公众。

docker cp

在容器和宿主机之间拷贝文件

docker diff

docker commit

从容器创建一个新的镜像。

参数

docker pause 和 docker unpause

暂停容器中所有的进程。

docker rm

删除停止的容器。

关键参数:

docker wait

阻塞运行直到容器停止,然后打印出它的退出代码。

先把一个容器运行起来,然后退出,让docker wait打印退出码看看。

docker rename

给一个容器重命名

docker container prune

参数

docker update

更新容器配置

参数