一、搜索镜像

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. 【CF163E 】e-Government

    题目 两个\(log\)的树状数组套树剖? 我们对于给出的\(n\)个模式串建立\(AC\)自动机,之后对于每一个询问串直接丢上去匹配 如果这里是暴力的话,我们直接一路跳\(fail\)累加作为结束位 ...

  2. 程序集(Assembly)和模块(Managed Module)

    前言 一直都用集成开发坏境(IDE),一直对模块和程序集的概念理解的不是很直观,因为一Build就把你的单个模块塞进程序集里面去了.当然,对你的编程也不会造成太大的影响.但有些东西你最好还是知道比较好 ...

  3. better-scroll在vue中的坑

    在我们日常的移动端项目开发中,处理滚动列表是再常见不过的需求了,以滴滴为例,可以是这样竖向滚动的列表,如图所示: 也可以是横向滚动的导航栏,如图所示: 可以打开“微信 —> 钱包—>滴滴出 ...

  4. Jmeter之post上传文件

    上周五东西都收拾好了,然后被叫住加班,直接搞到凌晨一两点,原因是另一个项目的性能出了点问题.为此我抓包写了一下主业务流的接口,涉及到文件上传,记录一下吧. 一.创建线程组,添加各类组件 这个就不用说了 ...

  5. DML-插入

    插入的方式一: 语法: insert into 表名(字段)values(值); 特点: 1.要求表明括号里的属性和values括号里的属性一致或兼容 2.字段的个数和顺序不一定与原始表中的字段个数和 ...

  6. Scala-元组操作

    package com.bigdata object TupleMapO { def main(args: Array[String]): Unit = { // 元组:Tuple,就是由()包起来, ...

  7. lua虚拟机概述

    何为虚拟机 用于模拟计算机运行的程序.是个中间层,它处于脚本语言和硬件之间的一个程序.每一门脚本语言都会有自己定义的opcode("操作码"),可以理解为这门程序自己定义的&quo ...

  8. 20155238 2016-2017-2 《Java程序设计》第三周学习总结

    教材学习内容总结 类定义使用class关键词,名称使用Cloths,建立实例运用New关键词 Clothes c1 = new Clothes(); = :制定参考名称参考某个对象 == :比较参考名 ...

  9. 02-分页器,自定义分页器,解耦函数分页器,分页器class

    1 .批量数据导入 主url from django.contrib import admin from django.urls import path, re_path, include urlpa ...

  10. java四舍五入

    package com.clzhang.sample; import java.math.BigDecimal; import java.math.RoundingMode; import java. ...