前面介绍了Docker的安装与部署,并且从镜像仓库拉取运行了一个Hello Word镜像。本篇我们主要介绍与Docker镜像有关的常见命令,镜像仓库和镜像的操作。首先先我们先看一下镜像仓库的常见命令:login、logout、pull、push、search。命令详情如所示:
docker login
docker login命令用于登陆到一个Docker镜像仓库,如果没有指定镜像仓库地址,默认为登录的仓库地址为:官方仓库 Docker Hub。如下为docker login 命令的使用与说明:
docker login [OPTIONS] [SERVER] 常用的OPTIONS参数有-u表示用户名、-p登录密码,SERVER表示要登录的镜像地址,如下为docker login示例:
docker login -u 用户名 -p 密码
docker logout
docker logout命令,登出一个Docker镜像仓库,如果未指定镜像仓库地址,默认为官方仓库 Docker Hub,如下为docker logout的语法与使用:
docker logout [OPTIONS] [SERVER]
docker logout
docker pull
该命令前面已经使用过,该命令用于从镜像仓库中拉取或者更新指定镜像。我们使用该命令从镜像网站拉取了一个Hello Word镜像,如下为docker pull的语法格式:
docker pull [OPTIONS] NAME[:TAG|@DIGEST]
上述OPTIONS参数有-a :拉取所有 tagged 镜像;--disable-content-trust :忽略镜像的校验,默认开启。其中TAG可以用于指定镜像版本,如果没有指定TAG,则默认拉取TAG为latest的镜像。如下为docker pull的示例:
docker pull java #下载最新的java镜像
docker push
与docker pull相对,docker push命令用于将本地的镜像上传到镜像仓库,再使用该命令前需要使用docker login命令登录docker仓库。如下为docker push的语法格式:
docker push [OPTIONS] NAME[:TAG]
上面命令语法中OPTIONS常用参数主要是--disable-content-trust ,表示忽略镜像的校验,默认为开启状态,下面是一个docker push的示例,将v1版本的myapache镜像推送到docker仓库。
docker push myapache:v1
docker search
docker search :命令用于从Docker Hub仓库查找镜像。我们可以查找使用最多得到镜像,然后拉取镜像文件。如下为docker search的命令格式:
docker search [OPTIONS] TERM
OPTIONS常用参数有--automated :只列出 automated build类型的镜像;--no-trunc :显示完整的镜像描述;-s :列出收藏数不小于指定值的镜像。如下为docker search的命令示例,列举出的镜像参数分别为NAME: 镜像仓库源的名称;DESCRIPTION: 镜像的描述;OFFICIAL: 是否 docker 官方发布;stars: 类似 Github 里面的 star,表示点赞、喜欢的意思;AUTOMATED: 自动构建。
docker search -s 10 java
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
java Java is a concurrent, class-based... 1037 [OK]
anapsix/alpine-java Oracle Java 8 (and 7) with GLIBC ... 115 [OK]
develar/java 46 [OK]
isuper/java-oracle This repository contains all java... 38 [OK]
lwieske/java-8 Oracle Java 8 Container - Full + ... 27 [OK]
nimmis/java-centos This is docker images of CentOS 7... 13 [OK]
docker images
docker images用于列出本地镜像,它的使用格式为docker images [OPTIONS] [REPOSITORY[:TAG]]。其中OPTIONS有如下参数:-a :列出本地所有的镜像(含中间映像层,默认情况下,过滤掉中间映像层);--digests :显示镜像的摘要信息;-f :显示满足条件的镜像;--format :指定返回值的模板文件;--no-trunc :显示完整的镜像信息;-q :只显示镜像ID。如下为docker images的是用示例:
docker images
docker rmi
docker rmi用于删除本地一个或多少镜像。其语法为docker rmi [OPTIONS] IMAGE [IMAGE...]。其中OPTIONS有:-f :强制删除;--no-prune :不移除该镜像的过程镜像,默认移除;如下为docker rmi使用的示例:
docker rmi -f ubuntu:v4
docker tag
Docker tag命令用于标记本地镜像,将其归入某一仓库。其语法格式为:docker tag [OPTIONS] IMAGE[:TAG] [REGISTRYHOST/][USERNAME/]NAME[:TAG],如下为使用示例:
docker tag ubuntu:15.10 microservice/ubuntu:v3
docker history
docker history 命令用于查看指定镜像的创建历史。其语法为docker history [OPTIONS] IMAGE,OPTIONS有:-H :以可读的格式打印镜像大小和日期,默认为true;--no-trunc :显示完整的提交记录;-q :仅列出提交记录ID。如下为docker history的使用示例:
docker history microservice/ubuntu:v3
docker save
docker save用于将指定镜像保存成 tar 归档文件。其语法为docker save [OPTIONS] IMAGE [IMAGE...]。OPTIONS有参数-o表示输出到的文件。
docker save -o my_ubuntu_v3.tar microservice/ubuntu:v3
docker load
docker load用于导入使用 docker save 命令导出的镜像。其命令格式为:docker load [OPTIONS]。OPTIONS参数有:--input , -i : 指定导入的文件,代替 STDIN。--quiet , -q : 精简输出信息。
docker load --input fedora.tar
docker import
docker import用于从归档文件中创建镜像。其语法为:docker import [OPTIONS] file|URL|- [REPOSITORY[:TAG]]OPTIONS参数有:-c :应用docker 指令创建镜像;-m :提交时的说明文字。
docker import my_ubuntu_v3.tar microservice/ubuntu:v4
docker build
docker build 命令用于使用 Dockerfile 创建镜像。这里不再详细介绍,其命令格式为docker build [OPTIONS] PATH | URL | -。其中OPTIONS参数有以下参数:
--build-arg=[] :设置镜像创建时的变量;
--cpu-shares :设置 cpu 使用权重;
--cpu-period :限制 CPU CFS周期;
--cpu-quota :限制 CPU CFS配额;
--cpuset-cpus :指定使用的CPU id;
--cpuset-mems :指定使用的内存 id;
--disable-content-trust :忽略校验,默认开启;
-f :指定要使用的Dockerfile路径;
--force-rm :设置镜像过程中删除中间容器;
--isolation :使用容器隔离技术;
--label=[] :设置镜像使用的元数据;
-m :设置内存最大值;
--memory-swap :设置Swap的最大值为内存+swap,"-1"表示不限swap;
--no-cache :创建镜像的过程不使用缓存;
--pull :尝试去更新镜像的新版本;
--quiet, -q :安静模式,成功后只输出镜像 ID;
--rm :设置镜像成功后删除中间容器;
--shm-size :设置/dev/shm的大小,默认值是64M;
--ulimit :Ulimit配置。
--tag, -t: 镜像的名字及标签,通常 name:tag 或者 name 格式;可以在一次构建中为一个镜像设置多个标签。
--network: 默认 default。在构建期间设置RUN指令的网络模式
docker build命令的使用这里不再介绍,后续我们介绍Dockfile的时候,会详细介绍docker build的使用,下面给出一个简单的docker build的示例:
docker build -t microservice/ubuntu:v1 .