Docker常用命令

Docker-使用Docker 从``Docker Hub`镜像来源下载镜像 【Docker常用命令】https://hub.docker.com/ 从这个网址下载镜像
Docker命令 基础命令
Pull命令

命令:
docker [``image]pullNAME[:TAG`]
NAME: 是镜像仓库名称(用来区分镜像), TAG是镜像的标签(标示版本信息), 通常情况下, 需要包括 名称 + 标签
注意:
1. 如果不显示指定 TAG, 则会默认选择 latest
2. 镜像的仓库名称中还应该添加仓库地址(``registry), 作为前缀, 否则只是默认Docker Hub`服务
例子: docker pull hub.c.163.com/public/ubuntu: 18.04
子命令:
``-a, --all-tags=true/false`: 是否获取仓库中的所有镜像, 默认为否
--disable-content-trust: 取消镜像的内容校验, 默认为真
**注意: ** 有时需要镜像代理服务来加速Docker镜像获取过程, 可以在Docker服务启动配置中增加--registry-mirror=proxy_URL(如: https://registry.docker.cn.com)
image [ls]命令
命令
docker images ls 或者 docker imagedocker images
内容看下面的表
注意:
ID唯一标识了镜像, 一般可以使用该ID的前若干个字符串区分串来替代完整的ID
镜像的大小信息只是表示了, 该镜像的逻辑大小, 实际上由于相同的镜像层本地只会存储一部分
子命令:
-a, --all=true/false: 列出所有(包括临时文件)镜像文件, 默认为否
--digests=true/false: 列出镜像的数字摘要值, 默认为否
-f, --filter=[]: 过滤列出镜像, 如: dangling = true只显示没有被使用的镜像, 也可以指定带有特定标注的镜像等
--format="TEMPLATE": 控制台输出格式, 如.ID, 代表ID信息, .Repository代表仓库信息等
--no-trunc=true/false: 对输出的结果中太长的部分是否进行截断
-q, --quiet=true/false: 仅输出ID信息, 默认为否
仓库字段 描述
REPOSITORY 来自哪个仓库
TAG 镜像标签信息, latest表示不同的版本信息, 标签只能是标记, 不能识别镜像内容
IMAGE ID 镜像的ID, 如果两个镜像的id相同, 说明他们只想了同一个镜像, 只是不同的标签
CREATED 创建时间
SIZE 镜像大小
tag命令
命令
docker tag: 为本地镜像任意添加新的标签
例子: docker tag ubuntu: latest myubuntu:latest, 再次用images查看本机上的镜像信息, 就多了一个
myubuntu: latest标签的镜像的信息, 用户可以直接使用myubuntu: latest来表示这个镜像了
inspect命令
命令
docker [image] inspect name
使用Docker[image] inspect name命令可以获取该镜像的详细信息, 包括制作者, 各层的数字摘要等
history命令
命令
docker history imageName:TAG
既然镜像文件由多个层组成, 那么怎么知道各个层的内容具体是什么, 可以用history命令, 该命令将列出各个层的信息, 这里注意: 因为过长被截断了怎么办, 可以用用--no-trunc来输出完整命令
search命令
命令
docker search [option] keyword
使用docker search命令可以搜索Docker Hub官方仓库中的镜像
子命令
-f, --filter filter: 过滤输出内容
--format string: 格式化输出内容
--limit int: 限制输出结果个数, 默认为25个
--no-trunc: 不截断输出结果
rm命令
命令
docker rm 容器名docker image rm 镜像名
使用docker rmdocker rmi删除镜像或容器
子命令
-f, -force: 强制删除镜像, 即使有容器依赖他
--no-prune: 不要清理未带标签的父镜像
注意
当一个镜像的TAGlatest镜像的时候, latest是一个镜像副本, 当有一个latest和一个具体的tag的时候不会删除latest, 如果只有一个镜像的时候, 这个时候会删除掉latest
prune命令
命令
docker image prune
使用Docker一段时间后, 系统中可能会遗留一些临时的镜像文件,以及一些没有被使用的镜像
子命令
-a, -all: 删除所有无用的命令, 不光是临时镜像
-filter filter: 只清理符合给定的过滤器的镜像
-f, -force: 强制删除镜像, 而不进行提示确认
镜像
创建镜像 commit命令
命令
docker [container] commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
这是基于以有的容器进行创建
子命令
-a, --author="": 作者信息
-c, --change=[]: 提交的时候执行Dockerfile指令, 包括CMD/ENTRYPOINT/ENV/EXPOSE/LABEL/ONBUILD/USER/VOLUME/WORKDIR
-m, --message="": 提交信息
-p, --pause=true: 提交时暂停容器运行
注意: [container] 这里是可选的, 书中加上了是错误的写法
import命令
命令
docker [image/container] import [OPTIONS] file/URL/-[REPOSITORY[:TAG]]
基于本地模块进行导入
例如: 下载了 ubuntu-18.04的压缩包, 之后可以直接使用一下命令来导入
$ cat ubuntu-18.04-x86_64-minimal.tar.gz / docker import -ubuntu:18.04
build命令
命令
docker [image] build
基于Dockerfile创建镜像
FROM debian:stretch-slimLABEL version:"1.0" maintainer="docker user "RUN apt-get update && \ apt-get install -y python3 && \ apt-get clean && \ rm -rf /var/lib/apt/lists/*

存出和载入镜像 save命令
命令
docker [image] save
导出镜像到指定文件中, 支持-o, -output string参数
例子: docker save -o ubuntu_18.04.tar ubuntu:18.04
load命令
命令
docker [image] load
将导出的tar文件再导入到本地镜像库, 支持-i, --input string
例子: docker load -i ubuntu_18.04.tar/docker load < ubuntu_18.04.tar
上传镜像 上传镜像
命令
docker [image] push NAME:[TAG] / [REGISTRY_HOST[:REGISTRY_POST]/]NAME[:TAG]
上传到Docker Hub官方仓库(需要登录) 登录信息记录到~/.docker目录下

    推荐阅读