docker拉取镜像:
docker [images] pull name:tag(仓库名称:标签)
pull 子命令支持的选项主要包括: □ -a, --all-tagss=true | false: 是否获取仓库中的所有镜像,默认为否; □ --disable-content-trust:取消镜像的内容校验,默认为真。 --registry-mirror==proxy_URL 来指定镜像代理服务地址(如 https://registry.docker-cn.com)
docker查看镜像信息:
docker images (ls):查看镜像信息的命令
images 子命令主要支持如下选项,用户可以自行进行尝试: □ -a, --all=true | false: 列出所有(包括临时文件)镜像文件,默认为否; □ --digestS=true | false: 列出镜像的数字摘要值,默认为否; □ -f, --filter=[]:过滤列出的镜像,如 dangling=true 只显示没有被使用的 镜像;也可指定带有特定标注的镜像等; □ --format= “TEMPLATE" :控制输出格式,如. ID 代表 ID 信息,.Repository 代表仓库信息等; □ --no-trune=true | false :对输出结果中太长的部分是否进行截断,如镜像的 ID 信息,默认为true; □ -q, --quiet=true | false :仅输出 ID 信息,默认为否。 其中,还支持对输出结果进行控制的选项,如-f.--filter=[] 、--notrune= true | false 、-q、--quiet=true | false 等。 更多子命令选项还可以通过man docker-images 来查看。
用tag进行添加镜像的标签(类似于起一个别名)
docker tag ubuntu:latest mylinux:latest
docker[image]inspect 命令可以获取该镜像的详细信息,包括制作者、适应架构、各层的数字摘要等:
history 命令查看镜像历史
docker搜索镜像:
docker search [option] keyword
支持的命令选项主要包括: □ -f, --filter filter: 过滤输出内容; □ --format string: 格式化输出内容; □ --limit int(整数类型的数字):限制输出结果个数,默认为 25 个; □ --no-trunc :不截断输出结果。
docker删除镜像:
使用标签删除镜像:
使用docker rmi
或 docker image rm
命令可以删除镜像,命令格式为 docker rmi IMAGE [IMAGE... ]
,其中 IMAGE 可以为标签或 ID。
□ - f, - force :强制删除镜像,即使有容器依赖它; □ -no-prune: 不要清理未带标签的父镜像。
当同一个镜像拥有多个标签的时候, docker rmi 命令只是删除了该镜像多个标签中的指定标签而已,并不影响镜像文件。但是当镜像只剩下一个标签的时候我们再进行执行命令的话就会删除最后的镜像文件了
同时用rmi命令也可以把后面的镜像名称更换为镜像ID,这时候会先尝试删除所有指向该镜像的标签,之后删除镜像文件本身
注意:当该镜像有创建的容器存在的时候,镜像文件默认无法删除,如果要强制删除的话要加上参数 -f ,通常情况下是先删除依赖该镜像的容器,再删除镜像
删除之后系统中可能会存有遗留的临时镜像文件和没有被使用过的镜像,用命令docker image prune
有关该命令的参数为: □ -a, -all: 删除所有无用镜像,不光是临时镜像; □ -filter filter: 只清理符合给定过滤器的镜像; □ -f, -force: 强制删除镜像,而不进行提示确认。
docker查看正在运行的容器:
docker ps (-a)
docker创建镜像:
根据已有容器进行创建
docker [container] commit 命令
命令格式为docker [container] commit [OPTIONS] CONTAINER [REPOSITORY [:TAG]] ,主要选项包括: □ -a, --author="" :作者信息; □ -c, --change= []:提交的时候执行 Dockerfile 指令,包括 CMD|ENTRYPOINT|E NV|EXPOSE|LABEL|ONBUILD|USER|VOLUME|WORKDIR 等; □ -m, --message="" :提交消息; □ -p, --pause=true:提交时暂停容器运行。
步骤如下:
-
首先启动镜像,并在其中进行修改
-
镜像发生了内容改变之后就可以用commit命令提交为一个新的镜像,提交的时候可以用ID或者是名称进行指定容器
-
查看本地镜像列表,可以看出镜像创建成功
根据本地的模板进行导入
用户也可以直接从一个操作系统模板文件导入一个镜像,主要使用docker [ container] import 命令。 命令格式为 docker [image] import [OPTIONS] file[URL]-[REPOSITORY[:TAG]]
根据dockerfile创建新镜像:
Dockerfile是由一组指令组成的文件
Dockerfile结构四部分
-
基础镜像信息
-
维护者信息
-
镜像操作指令
-
容器启动时执行指令
-
Dockerfile每行支持一条指令,每条指令可携带多个参数,支持使用以”#“号开头的注释
-
指令 | 含义 |
---|---|
FROM 镜像 | 指定新镜像所基于的镜像,第一条指令必须为FROM指令,每创建一个镜像就需要一条FROM指令 |
MAINTAINER 名字 | 说明新镜像的维护人信息 |
RUN命令 | 在所基于的镜像上执行命令,并提交到新的镜像中 |
CMD["要运行的程序","参数1","参数2"] | 指令启动容器时要运行的命令或脚本,Dockerfile只能有一条CMD指令,如果要指定多条则只能最后一条执行 |
EXPOSE 端口号 | 指定新镜像加载到Docker时要开启端口 |
ENV 环境变量 变量值 | 设置一个环境变量的值,会被后面的RUN使用 |
ADD 源文件/目录 目标文件/目录 | 将源文件复制到目标文件,源文件要与Dockerfile位于相同目录中,或者是一个URL |
COPY 源文件/目录 目标文件/目录 | 将本地主机上的文件/目录复制到目标地点,源文件/目录要与Dockerfile在相同的目录中 |
VOLUME["目录"] | 在容器中创建一个挂载点 |
USER 用户名/UID | 指定运行容器时的用户 |
WORKDIR 路径 | 为后续的RUN、CMD、ENTRYPOINT指定工作目录 |
ONBUILD 命令 | 指定所生成的镜像作为一个基础镜像时所要运行的命令 |
HEALTHCHECK | 健康检查 |
创建镜像的过程用docker [images] bulid 命令
docker镜像的导入导出操作:
docker [images] save 镜像存出
把镜像导出到本地文件 命令支持 -o 和-ouutput string
参数
docker [image] load 镜像载入
该命令将导出的tar文件导入到本地镜像库 支持-i - input string
参数,从指定文件中读入镜像的内容
docker镜像上传
docker [images] push 命令上传到残酷,默认上传到Docker hub仓库
具体的命令格式为:
docker [image] push NAME [: TAG] I [REGISTRY_HOST [: REGISTRY_PORT] /] NAME [: TAG] EG: $ docker tag test: latest user/test: latest $ docker push user/test: latest The push refers to a repository [docker.io/user/test] Sending image list Please login prior to push: Username: Password: Email: 第一次上传时,会提示输入登录信息或进行注册,之后登录信息会记录到本地~/.docker 目录下