Docker镜像操作命令
一、使用Docker镜像
1. 获取镜像
可以使用docker pull命令直接从Docker Hub镜像源来下载镜像。该命令的格式为docker pull NAME[:TAG]。其中,NAME是镜像仓库的名称(用来区分镜像),TAG是镜像的标签(往往用来表示版本信息)。通常情况下,描述一个镜像需要包括“名称+标签”信息。
例如,获取一个Ubuntu 18.10系统的基础镜像可以使用如下命令:
$ docker pull ubuntu:18.10
对于Docker镜像来说,如果不显式指定TAG,则默认会选择latest标签,这会下载仓库中最新版本的镜像。
如果从非官方的仓库下载,则需要在仓库名称前指定完整的仓库地址。例如从网易蜂巢的镜像源来下载ubuntu:18.04镜像,可以使用如下命令,此时下载的镜像名称为hub.c.163.com/public/ubuntu:18.04:
$ docker pull hub.c.163.com/public/ubuntu:18.04
2. 查询镜像信息
(1) 使用images命令列出镜像
$ docker images
(2) 使用tag命令添加镜像标签
它们实际指向同一个镜像文件,只是别名不同而已
$ docker tag ubuntu:latest myubuntu:latest
(3) 使用inspect命令查看详细信息
$ docker inspect ubuntu:18.10
如果只要其中一项内容时,可以使用参数-f来指定,例如,获取镜像的Architecture:
$ docker inspect -f {{.Architecture"}} ubuntu:18.10
(4) 使用history命令查看镜像历史,该命令将列出各层的创建信息
$ docker history ubuntu:18.04
3. 搜寻镜像
使用docker search命令可以搜索远端仓库中共享的镜像,默认搜索官方仓库中的镜像。用法为docker search TERM,支持的参数主要包括:
--automated=true|false:仅显示自动创建的镜像,默认为否;
--no-trunc=true|false:输出信息不截断显示,默认为否;
-s,--stars=X:指定仅显示评价为指定星级以上的镜像,默认为0,即输出所有镜像。
例如,搜索所有自动创建的评价为3以上的带nginx关键字的镜像:
$ docker search --automated -s 3 nginx
4. 删除镜像
(1) 使用标签删除镜像
使用docker rmi命令可以删除镜像,命令格式为docker rmi IMAGE [IMAGE ...],其中IMAGE可以为标签或ID。
$ docker rmi ubuntu:latest
当同一个镜像拥有多个标签的时候,docker rmi命令只是删除该镜像多个标签中的指定标签而已,并不影响镜像文件。当镜像中剩下一个标签的时候要小心,此时再使用docker rmi命令会彻底删除镜像。
(2) 使用镜像ID删除镜像
当使用dokcer rmi命令,并且后面跟上镜像的ID(也可以是能进行区分的部分ID串前缀)时,会先尝试删除所有指向该镜像的标签,然后删除该镜像文件本身。当有该镜像创建的容器存在时,镜像文件默认是无法被删除的。
$ docker rmi 8f
如果要想强行删除镜像,可以使用-f参数
$ docker rmi -f ubuntu:18.04
5. 创建镜像
创建镜像有三种方法:基于已有镜像的容器创建、基于本地模板导入、基于Dockerfile创建。
(1) 基于已有镜像的容器创建
该方法主要是使用docker commit命令。命令格式为docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]],主要选项包括:
-a,--author="":作息信息;
-c,--change=[]:提交的时候执行Dockerfile指令,包括CMD|ENTRYPOINT|ENV|EXPOSE|LABEL|ONBUILD|USER|VOLUME|WORKDIR等;
-m,--message=“”:提交信息;
-p,--pause=true:提交时暂停容器运行
$ docker commit -m "Added a new file" -a "Docker Newbee" a925cb40b3f0 test:0.1
(2) 基于本地模板导入
用户也可以直接从一个操作系统模板文件导入一个镜像,主要使用docker import命令。命令格式为docker import [OPTIONS] file|URL | - [REPOSITORY[:TAG]]。
要直接导入一个镜像,可以使用OpenVZ提供的模板来创建,或者用其他导出的镜像模板来创建。OPENVZ模板的下载地址为http://openvz.org/Download/templates/precreated。
$ cat ubuntu-14.04-x86_64-minimal.tar.gz | docker import - ubuntu:14.04
6. 存出和载入镜像
(1) 存出镜像,docker save
$ docker save -o ubuntu_14.04.tar ubuntu:14.04
(2) 载入镜像,docker load,以下两种写法均可
$ docker load --input ubuntu_14.04.tar
$ docker load < ubuntu_14.04.tar
7. 上传镜像
使用docker push命令上传镜像到仓库,默认上传到Docker hub官方仓库。
$ docker push NAME[:TAG] | [REGISTRY_HOST[:REGISTRY_RORT]/]NAME[:TAG]
第一次上传时,会提示输入登录信息或进行注册。
Docker镜像操作命令的更多相关文章
- Docker镜像的管理和创建
1. Docker镜像和Docker容器: Docker镜像实际上是一系列的文件系统,通常的Linux系统一般是两层文件系统,bootfs和rootfs,bootfs就是bootloader ...
- 使用Dockerfile制作自己的Docker镜像
一.背景 一直以来的开发流程都是先从Docker Hub中获取到基础镜像,之后在这个镜像的基础上做开发,以满足一定的需求或者提供某种服务,并由此产生新的镜像,然后就可以push到Docker Hub中 ...
- doris 0.9.0版本docker镜像制作与使用
1. 安装docker 详情请参见本人博客 2. 编译doris 详情请参见doris官网文档 3. 在编译好的doris output文件夹下编写两个Dockerfile 3.1 Dockerfi ...
- 一键清理 Nexus 中无用的 Docker 镜像
现许多团队使用 Nexus 来管理 Docker 镜像,产品不断迭代,镜像仓库占用的磁盘空间也越来越大.由于 Nexus 的控制台并未提供批量操作镜像功能,清理镜像十分不便.本文分享一个清理 Nexu ...
- docker 镜像管理操作
镜像特点 1. 分层存储的文件 2.一个软件运行环境 3.一个镜像可以创建多个容器 4.一种标准交付 5.不包含Linux内核而又精简的Linux操作系统 6.不是一个单一的文件而是由多层构成的,可以 ...
- Docker 常用操作命令
一. docker安装 方式1 本地安装: 1)下载docker安装文件: 2)执行安装命令 yum localinstall *: 3)安装完之后 重启 systemctl restart do ...
- [Docker镜像] 关于阿里云容器镜像服务的使用(以天池比赛提交镜像为例)
最近在参加天池比赛,由于比赛需要使用阿里云容器镜像服务完成线上预测任务,所以花费了3-4天的时间了解并使用Docker完成相关镜像操作,在此分享下我学习的内容,以下是本文的目录结构: 介绍 镜像 容器 ...
- 【docker专栏8】使用IDEA远程管理docker镜像及容器服务
使用命令行的方式管理服务器镜像及容器是运维人员最常用的方式,但是有的时候我们不得不远程操作docker或者是面向对docker并不熟悉的技术人员提供能力(配置管理员.测试人员),这种情况下图形界面就有 ...
- MySQL、MongoDB、Redis数据库Docker镜像制作
MySQL.MongoDB.Redis数据库Docker镜像制作 在多台主机上进行数据库部署时,如果使用传统的MySQL的交互式的安装方式将会重复很多遍.如果做成镜像,那么我们只需要make once ...
随机推荐
- Django学习笔记之数据库-模型的操作
模型的操作 在ORM框架中,所有模型相关的操作,比如添加/删除等.其实都是映射到数据库中一条数据的操作.因此模型操作也就是数据库表中数据的操作. 添加模型 添加模型到数据库中.首先需要创建一个模型.创 ...
- oracle 中update多个字段
update A set (A.a2,A.a3) =(select B.b2,b.b3 from B where B.b1= A.a1 and A.a3=100 )
- Git 基础和原理
Git 究竟是怎样的一个系统呢? 请注意接下来的内容非常重要,若你理解了 Git 的思想和基本工作原理,用起来就会知其所以然,游刃有余. 在开始学习 Git 的时候,请努力分清你对其它版本管理系统的已 ...
- PHP-不同Str 拼接方法性能对比 参考自https://www.cnblogs.com/xiaoerli520/p/9624309.html
问题 在PHP中,有多种字符串拼接的方式可供选择,共有: 1 . , .= , sprintf, vprintf, join, implode 那么,那种才是最快的,或者那种才是最适合业务使用的,需要 ...
- linux 管道通信
下面举linux下有名管道通信的代码. ----------------------------------------- fifo_read.c =========== #include<er ...
- Android Studio中依赖引起错误
请参阅 https://blog.csdn.net/taowuhua0505/article/details/82424351
- maven私库nexus2.3.0-04迁移升级到nexus-3.16.1-02(异机迁移备份)
环境信息: nexus2.3.0-04安装在32位Windows server 2003系统上 安装位置信息如下: 仓库迁移 Nexus的构件仓库都保存在sonatype-work目录中,nexus2 ...
- ArcGIS紧凑型缓存存储格式分析
by 蔡建良 2018-8-24 网络中我看到的网文将bundle存储切片数据的方式都没说清或是说错.按照错误方法一样可以在桌面浏览,但在arcgis for android却无法浏览. bundlx ...
- TNS-12541: TNS: 无监听程序 解决方案
转自 感谢 https://www.cnblogs.com/yx007/p/6732012.html 问题描述 在用PL/SQL Developer连接Oracle 11g时报错“ORA-12 ...
- jar包冲突排解方法(sbt)
jar包依赖冲突,版本不兼容会导致各种各样的问题.这里推荐一款sbt插件用于查找项目中的jar包依赖关系,通过该插件可以轻松的看出某个jar包依赖哪些jar,以及某个jar被哪些jar所依赖.此外该插 ...