一、搜索镜像

1、下载一个docker镜像:我们可以通过登陆docker网站搜索自己需要的镜像,可以选择自己所需要的版本,然后通过详情也可以看到:
网址:https://hub.docker.com/
2、我们也可以通过命令行搜索:
[root@web130 ~]# docker search centos: #如果不带版本号默认搜到是最新版本的:latest
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
centos The official build of CentOS. [OK]
ansible/centos7-ansible Ansible on Centos7 [OK]
*我们看输出内容可以很容易的理解,分别是:名称,描述,星(类似github上的stars),是否官方镜像,是否自动装配。
*如下搜索自动创建,以及指定星级的镜像,星级默认为0,如果加--no-trunc输出信息不截断显示,默认是否--no-trunc=true|fales
[root@web130 ~]# docker search --automated -s nginx
Flag --automated has been deprecated, use --filter=is-automated=true instead
Flag --stars has been deprecated, use --filter=stars= instead
NAME DESCRIPTION
.....省略显示 ...

二、查看和获取镜像

、images列出镜像:关于images更多信息可以通过man docker-images来查看
*此内容下显示:来自那个仓库、标签信息、镜像ID、创建时间、镜像大小
[root@web130 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE 、下载一个镜像,如果后边不跟版本号,默认是最新非稳定版本:
[root@web130 ~]# docker pull ubuntu #下载镜像 *也可以通过上边搜索选择合适的版本号,如下:
[root@web130 ~]# docker pull ubuntu:14.04
[root@web130 ~]# docker pull centos:7.4.
[root@web130 ~]# docker images #查看下载的镜像,可以看到刚刚下载的是三个镜像
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu 14.04 c32fae490809 weeks ago 188MB
ubuntu latest cd6d8154f1e1 weeks ago .1MB
centos 7.4. d3949e34634c weeks ago 197MB
[root@web130 ~]#
*我们也可以跟上仓库地址下在,非官网镜像源仓库下载指定镜像:
[root@web130 ~]# docker pull 仓库地址/ubuntu:14.04 、利用该镜像创建一个容器:
[root@web130 ~]# docker run -it centos:7.4. /bin/bash #后边详细说明参数,如果本地没有下载此镜像,自动先下载镜像并运行
*如下由于没有指定标签,自动下载了最新版本的centos,并打开了一个shell:
[root@web130 ~]# docker run -it centos /bin/bash
Unable to find image 'centos:latest' locally
latest: Pulling from library/centos
256b176beaff: Pull complete
Digest: sha256:6f6d986d425aeabdc3a02cb61c02abb2e78e57357e92417d6d58332856024faf
Status: Downloaded newer image for centos:latest
[root@3e876fdaaf89 /]# ls
anaconda-post.log bin dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
[root@3e876fdaaf89 /]# 、使用tag命令为镜像添加标签
[root@web130 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu 14.04 c32fae490809 weeks ago 188MB
ubuntu latest cd6d8154f1e1 weeks ago .1MB
centos 7.4. d3949e34634c weeks ago 197MB
centos latest 5182e96772bf weeks ago 200MB
[root@web130 ~]# docker tag centos:latest mycentos:latest #我们可以看到多出来一个镜像,tag的作用类似与添加链接的作用,他们指向同一个源镜像文件、
[root@web130 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu 14.04 c32fae490809 weeks ago 188MB
ubuntu latest cd6d8154f1e1 weeks ago .1MB
centos 7.4. d3949e34634c weeks ago 197MB
centos latest 5182e96772bf weeks ago 200MB
mycentos latest 5182e96772bf weeks ago 200MB 、使用inspect命令查看详细信息:
[root@web130 ~]# docker inspect mycentos
[root@web130 ~]# 、使用history命令查看镜像历史
[root@web130 ~]# docker history mycentos #镜像使用多层组成,列出各层的创建信息,--no-trunc选项输出完整的命令
IMAGE CREATED CREATED BY SIZE COMMENT
5182e96772bf weeks ago /bin/sh -c #(nop) CMD ["/bin/bash"] 0B
<missing> weeks ago /bin/sh -c #(nop) LABEL org.label-schema.sc… 0B
<missing> weeks ago /bin/sh -c #(nop) ADD file:6340c690b08865d7e… 200MB
[root@web130 ~]#

三、删除镜像

、通过标签删除镜像
[root@web130 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu 14.04 c32fae490809 weeks ago 188MB
ubuntu latest cd6d8154f1e1 weeks ago .1MB
centos 7.4. d3949e34634c weeks ago 197MB
centos latest 5182e96772bf weeks ago 200MB
mycentos latest 5182e96772bf weeks ago 200MB
[root@web130 ~]# docker rmi mycentos:latest
Untagged: mycentos:latest
[root@web130 ~]# docker images 删除。
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu 14.04 c32fae490809 weeks ago 188MB
ubuntu latest cd6d8154f1e1 weeks ago .1MB
centos 7.4. d3949e34634c weeks ago 197MB
centos latest 5182e96772bf weeks ago 200MB
#我们可以看到mycentos标签已经被删除,我们可以看到源镜像centos依然存在,所以删除标签不影响镜像文件,但是仅剩一个标签的时候要小心,会将镜像文件 、通过镜像ID删除镜像 [root@web130 ~]# docker rmi centos:latest
Error response from daemon: conflict: unable to remove repository reference "centos:latest" (must force) - container 3e876fdaaf89 is using its referenced image 5182e96772bf
[root@web130 ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3e876fdaaf89 centos "/bin/bash" minutes ago Exited () minutes ago friendly_haibt
[root@web130 ~]#
#显示无法删除,因为有一个基于它的容器存在,我们也可以强制删除 -f:docker rmi -f centos,但是不建议这样删除,所有我们如下操作先删除依赖的容器
[root@web130 ~]# docker rm 3e876fdaaf89 #通过容器id删除镜像
3e876fdaaf89
[root@web130 ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
[root@web130 ~]# docker rmi centos:latest #可以看到它删除了这个镜像文件的所有层
Untagged: centos:latest
Untagged: centos@sha256:6f6d986d425aeabdc3a02cb61c02abb2e78e57357e92417d6d58332856024faf
Deleted: sha256:5182e96772bf11f4b912658e265dfe0db8bd314475443b6434ea708784192892
Deleted: sha256:1d31b5806ba40b5f67bde96f18a181668348934a44c9253b420d5f04cfb4e37a
[root@web130 ~]#

四、创建镜像

创建镜像的方法:
*基于已有的镜像容器创建
*基于本地模板导入
*基于Dockerfile创建 (后文重点学习Dockerfile)

、基于已有镜像的容器创建
[root@web130 ~]# docker run -it ubuntu:14.04 /bin/bash
root@5b117c5dffe1:/# touch yanglt
root@5b117c5dffe1:/# exit
exit
[root@web130 ~]# docker images;
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu 14.04 c32fae490809 weeks ago 188MB
ubuntu latest cd6d8154f1e1 weeks ago .1MB
centos 7.4. d3949e34634c weeks ago 197MB
[root@web130 ~]# docker commit -m "a new file" -a "Yanglt" 5b117c5dffe1 test:0.1
sha256:40925d6bc8025b8ca6ec68249f4cb371844896a39817f9e9bf80eda4119e8d6f
[root@web130 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
test 0.1 40925d6bc802 seconds ago 188MB
ubuntu 14.04 c32fae490809 weeks ago 188MB
ubuntu latest cd6d8154f1e1 weeks ago .1MB
centos 7.4. d3949e34634c weeks ago 197MB
#可以看到一个新的镜像test
、基于本地模板导入创建
下载地址:https://download.openvz.org/template/precreated/
选择要下载镜像模板:
[root@web130 ~]# wget https://download.openvz.org/template/precreated/centos-7-x86_64-minimal.tar.gz
[root@web130 ~]# cat centos--x86_64-minimal.tar.gz |docker import - centos:
[root@web130 ~]# cat centos--x86_64-minimal.tar.gz |docker import - centos:
sha256:3458fe08f84de52d5354a80793e5f806420a2330fc2c2425bb4878bcb8b0efd8
[root@web130 ~]# docker images #可以看到已经出现新的镜像
REPOSITORY TAG IMAGE ID CREATED SIZE
centos 3458fe08f84d seconds ago 435MB
test 0.1 40925d6bc802 About an hour ago 188MB
ubuntu 14.04 c32fae490809 weeks ago 188MB
ubuntu latest cd6d8154f1e1 weeks ago .1MB
centos 7.4. d3949e34634c weeks ago 197MB
[root@web130 ~]#

五、导出和载入镜像

、导出镜像
-o + 要导出最后的文件名 + 要导出的镜像的标签(名) 或id
[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
test 0.1 40925d6bc802 minutes ago 188MB
ubuntu 14.04 c32fae490809 weeks ago 188MB
ubuntu latest cd6d8154f1e1 weeks ago .1MB
centos 7.4. d3949e34634c weeks ago 197MB
[root@localhost ~]#
[root@localhost ~]# docker save -o myubuntu_14..tar ubuntu:14.04
[root@localhost ~]# ll |grep my*
-rw------- root root 9月 : myubuntu_14..tar
[root@localhost ~]# 、导入镜像(恢复原有镜像)
*我们可以将导出的源镜像删除,然后在导入
[root@localhost ~]# docker rmi ubuntu:14.04
[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
test 0.1 40925d6bc802 minutes ago 188MB
ubuntu latest cd6d8154f1e1 weeks ago .1MB
centos 7.4. d3949e34634c weeks ago 197MB
[root@localhost ~]# docker load < myubuntu_14..tar
Loaded image: ubuntu:14.04
[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
test 0.1 40925d6bc802 minutes ago 188MB
ubuntu 14.04 c32fae490809 weeks ago 188MB
ubuntu latest cd6d8154f1e1 weeks ago .1MB
centos 7.4. d3949e34634c weeks ago 197MB
[root@localhost ~]#

六、上传镜像

#我们可以把自己的镜像传到dockerhub官网上,前提是注册一个用户
[root@localhost ~]# docker push image_name

【Docker】第二篇 Docker镜像管理的更多相关文章

  1. docker第二篇 Docker基础用法

    Docker中的容器 lxc -> libcontainer -> runC OCI (Open Container Initiative) 由Linux基金会主导于2015年6月创立 作 ...

  2. Docker笔记6:Docker 常见命令及镜像管理

    目  录 一.Docker 常用命令 docker version 命令 docker info 命令 二.Docker 镜像管理 搜索镜像:docker search 镜像名 获取镜像:docker ...

  3. 一张图比較 Docker 和 Git:镜像管理设计理念

    Docker 的镜像管理设计中大量借鉴了 Git 的理念. 以下这张图将对两者的核心概念和操作进行比較,有助于大家高速掌握管理 Docker 镜像的正确方式. watermark/2/text/aHR ...

  4. [第二篇]——Docker 架构之Spring Cloud直播商城 b2b2c电子商务技术总结

    Docker 架构 Docker 包括三个基本概念: 镜像(Image):Docker 镜像(Image),就相当于是一个 root 文件系统.比如官方镜像 ubuntu:16.04 就包含了完整的一 ...

  5. Docker的安装和镜像管理并利用Docker容器实现nginx的负载均衡、动静分离

    Docker的安装 一.Docker的概念 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化 ...

  6. docker之私有仓库镜像管理

    一.查看本地镜像 二.给镜像打标记(tag ) [root@node03 ~]# docker tag wordpress:v1 192.168.1.197:5000/wordpress:v1 2.删 ...

  7. nginx之旅(第二篇):nginx日志管理、nginx防盗链、nginx虚拟主机

    一.nginx日志管理 Nginx访问日志主要有两个参数控制 1) log_format #用来定义记录日志的格式(可以定义多种日志格式,取不不同名字即可) log_format log_name s ...

  8. Docker入门篇(一)之docker基础

    1.Docker 架构 http://blog.csdn.net/u012562943/article/category/6048991/1Docker 使用客户端-服务器 (C/S) 架构模式,使用 ...

  9. Docker教程:docker远程repository和自建本地registry

    http://blog.csdn.net/pipisorry/article/details/50814307 Docker有一个类似版本管理仓库(Repositry)的东西,有docker.io提供 ...

随机推荐

  1. 1798. [AHOI2009]维护序列【线段树】

    Description 老师交给小可可一个维护数列的任务,现在小可可希望你来帮他完成. 有长为N的数列,不妨设为a1,a2,…,aN .有如下三种操作形式: (1)把数列中的一段数全部乘一个值; (2 ...

  2. Day3JavaScript(一)JavaScript初识以及bom操作

    JavaScript简介 什么是JavaScript 弱类型,动态类型,基于原型的直译性的编程语言.1995年netscape(网景)在导航者浏览器中设计完成. JavaScript的特点 1.与HT ...

  3. 20145203盖泽双 《Java程序设计》第四周学习总结

    20145203盖泽双 <Java程序设计>第四周学习总结 教材学习内容总结 1.多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只要继承单 ...

  4. PAT乙级1002

    1002 写出这个数 (20 分)   读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字. 输入格式: 每个测试输入包含 1 个测试用例,即给出自然数 n 的值.这里保证 n 小于 ...

  5. 第一章 Linux内核简介

    1. 操作系统和内核 操作系统是指在整个系统中负责完成最基本功能和系统管理的那些部分.包括内核.设备驱动程序.启动引导程序.命令行shell或者其他种类的用户界面.基本的文件管理工具和系统工具. 用户 ...

  6. ios应用数据存储方式(XML属性列表-plist) - 转

    一.ios应用常用的数据存储方式  1.plist(XML属性列表归档)  2.偏好设置  3.NSKeydeArchiver归档(存储自定义对象)  4.SQLite3(数据库,关系型数据库,不能直 ...

  7. mysql/mariadb学习记录——查询

    连接查询:同时设计两个及以上的表的查询 连接条件或连接谓词:用来连接两个表的条件一般格式: [<表名1>]<列名1> <比较运算符> [<表名2>]&l ...

  8. MongoDB4.0+版本安装

    >>>首先要下载MongoDB软件安装包, MongoDB社区版官网下载 >>>双击msi安装文件进行安装,点击"Next" >>& ...

  9. R语言数据结构二

    上节我们讲到R语言中的基本数据类型,包括数值型,复数型,字符型,逻辑型以及对应的操作和不同数值类型之间的转换.众所周知,R语言的优势在于进行数据挖掘,大数据处理等方面,因此单个的数据并不能满足我们的需 ...

  10. 修复Gradle CreateProcess error=206

    插件地址:https://plugins.gradle.org/plugin/ua.eshepelyuk.ManifestClasspath 修复Window系统中Gradle 路径太长问题, Fix ...