1 概述
容器状态转换相关的命令列表关系,docker的状态转换和管理的命令,即docker的生命周期管理的命令,如下截图
圆形图标表示docker的状态
方框表示命令执行命令后触发的事件
箭头的命令,为docker的相关命令,命令执行后,会触发相关事件,事件在方框内表示
菱形里的表示判断,取决于策略设定,如一旦某个容器被意外终止,如OOM,是否被restart
容器处于created或者stopped状态,可以被删除
2 命令介绍
docker pull 拉取相关镜像
每个镜像文件都有其id,即其校验码,如只拖下来1.27.2这个版本,-a则把所有版本都拖下来,如
docker pull busybox:1.27.2
获取最新的centos镜像,默认获取latest版本
docker image pull centos
显示本地镜像信息
docker image ls
或者
docker images
查找镜像
如查找centos镜像,official 显示ok表示官方的,一般采用官方的
docker search centos
创建和启动
create:仅创建容器不启动
run:既创建容器又启动容器
可以通过命令查看相关的参数选项
docker run --help
如下
指定容器的名字 --name
-i是指登录到终端后进入交互式,
-t和-i一起使用,即-it
--detach 表示不附加终端
但是--rm表示容器停止后就删除,一般和--detach一起运行
运行如下的命令,运行容器
docker run -it --name sunnybox busybox:1.27.2
启动docker的时候会自动创建docker0的桥,ip 为 172.17.0.1,默认不指定网络的话,容器会被默认指定到这个桥上,ip从172.17.0.2这个ip开始分配
启动容器,执行命令后,将容器删除
如执行ifconfig -a后删除容器,这个命令的意义在于可以用来探查相关容器的信息
docker run --name sunnybox03 --rm busybox:1.27.2 ifconfig -a
查看运行中的容器的进程信息
docker top
top后跟上容器名称,如下查看新建的sunnybox
docker top sunnybox
查看运行中的容器
docker ps
查看所有的容器,包括没有运行的容器,加-a选项
docker ps -a
停止容器
命令有stop和kill,其中,stop命令比较安全,kill强制停止,可能导致数据丢失
docker stop sunnybox
或者
docker kill sunnybox
重启运行中的容器
docker restart sunnybox
暂停容器运行
容器暂停后,相当于状态冻结在内存中,不会响应请求
docker pause sunnybox
解除暂停容器,重新运行
docker unpause sunnybox
附加终端
镜像在后台运行,通过attach进入运行中容器
docker attach sunnybox
要剥离终端,可以同时按照ctrl+p,然后再快速按ctrl+q进行剥离
删除容器
容器停止默认不会被删除的,用以下命令删除
docker rm sunnybox
注意,docker有可能会因为宿主机内存耗尽而终止,内核会随机选择docker内存占用大的容器,将其强制停止。
查看镜像或者容器的详细信息
docker inspect sunnybox
容器的信息用json格式的字典进行详细
docker inspect busybox:1.27.2
在docker容器中,命令不能运行为守护进程,原因是运行为守护进程,就会脱离当前终端,脱离当前终端,就相当于当前容器没有进程,那么当前容器生命周期就结束了,如下,启动一个命令,设定busybox启动httpd服务,但是添加选项-f,表示httpd不启动为守护进程,
如果执行以下命令,那么就会卡住,这是正确的,因为httpd此时运行起来,没有进入交互式模式,所以卡住,如果把选项-f换成-d选项就可以运行为守护模式,不建议使用-d选项
docker run --name sunnyweb busybox:1.27.2 httpd -f /
在已经运行的容器中运行其他命令,使用选项 exec
如下命令,在已经运行的容器sunnyweb执行命令netstat -tnl,查看容器内部监听端口信息
docker exec sunnyweb netstat -tnl
原文地址:http://blog.51cto.com/ghbsunny/2155017