有关docker的命令
关于镜像
命令行中查找镜像:
docker search <NAME> #从docker hub中查找关键字中包含NAME的镜像
示例:
docker search Ubuntu #从官方镜像中查找Ubuntu的镜像
docker search Ubuntu --filter "is-official=true" #只显示官方镜像
docker search Ubuntu --filter "is-automated=true" #只显示自动创建的仓库
docker search Ubuntu --limit=n #只显示N行的内容,N最大为100
从云端仓库拉取镜像:
docker image pull <repository>:<tag>
docker pull <repository>:<tag> #等同于上
docker pull -a <repository>:<tag> #拉取包含全部标签的镜像
docker pull name@sha256:c0537...dc96 #根据sha256值来拉取镜像
示例:
docker pull ubuntu:16.04 #拉取16.04版本的镜像
docker pull ubuntu:latest #一般情况下,latest为最新版本的镜像
image相关命令:
docker images #检查本地仓库是否含有镜像
docker image ls #等同于上命令
docker image ls -q #只返回了系统中本地拉取的全部镜像的ID列表。
docker image ls --filter dangling=true #返回悬虚镜像,即没有标签的镜像
docker image ls --filter=reference="*:latest" #仅返回标签为latest的镜像
docker image ls --format "{{.Size}}" #只返回Docker主机上镜像的大小属性。
docker image ls --format "{{.Repository}}: {{.Tag}}: {{.Size}}" #返回全部镜像,但是只显示仓库、标签和大小信息。
docker image ls --digests #在本地查看镜像摘要,可单独查看,如:
docker image ls --digests jumpserver/jms_all #在本地查看jumpserver/jms_all的镜像摘要
docker image inspect ubuntu:16.04 #查看Ubuntu:16.04的分层方式
docker image rm ubuntu:latest #删除Ubuntu的最新镜像
docker rmi ubuntu:latest #等同于上
docker image rm 02674b9cb179 #通过镜像ID删除镜像
docker支持的过滤器:
dangling #可以指定true或者false,仅返回悬虚镜像(true),或者非悬虚镜像(false)。
before #需要镜像名称或者ID作为参数,返回在之前被创建的全部镜像。
since #与before类似,不过返回的是指定镜像之后创建的全部镜像。
label #根据标注(label)的名称或者值,对镜像进行过滤。docker image ls命令输出中不显示标注内容。
如果需要更复杂的过滤,可以使用OS或者Shell自带的工具,比如Grep或者AWK 。
docker镜像的相关操作:
docker history #显示了镜像的构建历史记录
关于容器
容器的一般命令
docker run <image>:<app> #等同于下
docker container run <options> <image>:<app> #启动容器,并指定了启动所需的镜像以及要运行的应用。
docker container run -it ubuntu /bin/bash #会启动某个Ubuntu Linux容器,并运行Bash Shell作为其应用(使容器具有交互性并与终端连接)
docker container run -it ubuntu /bin/bash sleep 10 #链接到容器shell 10秒,然后退出
docker container run --name percy -it ubuntu:latest /bin/bash #这就是新建的容器,名称为“percy”,意指持久化(persistent)。
docker container run -d --name webserver -p 80:8080 liu/bai
#-d #后台模式,告知容器在后台运行
#-p #将主机端口映射到docker容器内,其中,主机端口:容器端口
#--nameABC #为容器命名为ABC
docker container exec -it 3027eb644874 bash #将终端连接到docker
docker container stop <container> #停止该容器
docker container start <container> #启动该容器
docker container rm <container> #删除该容器
docker container rm <container> -f #销毁运行中的容器时,不会发出任何告警。
docker ps #等同于下
docker container ls #查看正在运行的容器
docker container ls -a #显示出全部的容器,包括处于停止状态的。
容器的重启
使用参数:
--restart
参数的策略:
always特性:当daemon重启的时候,停止的容器也会被重启。
unless-stopped
always与unless-stopped的区别:
那些指定了–restart unless-stopped并处于Stopped (Exited)状态的容器,不会在Docker daemon重启的时候被重启。on-failed
在退出容器并且返回值不是0的时候,重启容器。就算容器处于stopped状态,在Docker daemon重启的时候,容器也会被重启。