09-11 15:08 docker 学习 Docker 镜像的使用 Docker 运行容器前需要本地存在对应的镜像,如果不存在,Docker会尝试选从默认镜像仓库下载。 #### 获取镜像 ```shell docker pull [name]:[tag] ``` 其中的name是镜像仓库名称。tag是镜像的标签(往往用开表示版本信息),如果不指定tag。则默认会选择latest标签,这会下载仓库中最新版本的镜像。 ------------ #### 查看镜像 ```shell docker images 或者 docker image ls ``` ###### 在列出信息中,可以看到以下信息 来自于哪个仓库(REPOSITORY) 镜像的标签信息(TAG) 镜像的ID(IMAGE ID)是镜像的唯一标识,如果两个镜像的ID相同,说明他们实际上指向了同一个镜像,只是具有不同标签名称而已; 创建时间(CREARED) 镜像大小(SIZE) ------------ #### 搜索镜像 ```shell docker search [option] [keyword] ``` 其中的 option 主要包括 - -f, --filter filter:过滤输出内容; - --format string:格式化输出内容; - --limit int:限制输出结果个数,默认为25个; - --no-trunc:不截断输出结果 其中的keyword代表搜索关键字 ------------ #### 删除和清理镜像 ###### 删除 ```shell docker rmi [option] [image] 或 docker image rm [option] [image] ``` 其中的option 主要包括 - -f 强制删除镜像,即使有容器依赖它; - -no-prune 不要清理未带标签的父镜像 其中的image 可以是标签或者ID ###### 清理 Docker使用一段时间后,系统中可能会遗留一些临时的镜像文件,以及一些没有被使用的镜像可以通过 `docker image prune [option]` 来清理。 其中的option 主要包括 - -a 删除所有无用镜像,不光是零时镜像; - --filter filter: 只清理符合给定过滤器的镜像; - -f 强制删除镜像,而不进行提示确认; ------------ #### 创建镜像 创建镜像的方法主要有三种:基于已有镜像的容器创建、基于本地模板导入、基于Dockerfile创建。 ###### 基于已有容器创建 ```shell docker commmit [options] [container] [repostory]:[tag] ``` 其中 options 主要包括 - -a 作者信息 - -m 备注 其中container是容器ID。 其中repostory需要创建的镜像仓库名称 其中tag是需要创建的镜像仓库标签 ###### 基于Dockerfile创建 首先需要新建一个Dockerfile文件(具体语法见xxx 后面补上) 然后执行`docker build -t [image]:[tag]` 其中的镜像以及标签 需要在Dockerfile指定。 #### 导出和载入镜像 导出 ```shell docker save -o [save_filename] [image]:[tag] ``` ###### 载入 ```shell docker load -i [save_filename] 或 docker load < [save_filename] ``` #### 上传镜像 默认上传到Docker Hub 官网,首先需要执行`docker login` 登录账号,然后通过`docker tag [image]:[tag] [dockreId]/[image][tag]`标记本地镜像,将其归入某一仓库,最后执行`docker push [dockreId][image][tag]` 命令上传镜像。(注意dockerId 必须等于当前登录用户名 否则无法上传)