Docker
-使用Docker
从``Docker Hub`镜像来源下载镜像
【Docker常用命令】https://hub.docker.com/ 从这个网址下载镜像
Docker
命令
基础命令
Pull
命令
命令: |
docker [``image] pull NAME[: 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 image 或docker 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 rm 或docker rmi 删除镜像或容器 |
子命令 |
-f, -force : 强制删除镜像, 即使有容器依赖他 |
--no-prune : 不要清理未带标签的父镜像 |
注意 |
当一个镜像的TAG 是latest 镜像的时候, 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 目录下 |
推荐阅读