4.2 列出镜像

使用docker images命令:

sudo docker images

本地镜像都保存在Docker宿主机的/var/lib/docker目录下。

也可以在/var/lib/docker/containers目录下看到所有的容器的ID。

镜像从仓库下载下来。镜像保存在仓库中,而仓库存在于Registry中。磨人的Registry是由Docker公司运营的公共Registry服务,即Docker Hub。

代码清单4-3 拉取Ubuntu 16.04的镜像

sudo docker pull ubuntu:16.04

这里使用了docker pull命令来拉取ubuntu仓库中Ubuntu 16.04镜像。

为了区分同一个仓库中的不同景象,Docker提供了一种称为 标签(tag) 的功能。每个镜像在列出来时都带有一个标签,如12.04、12.10、quantal或者precise等。每个标签对组成特定镜像的一些镜像层进行标记(比如,标签12.04就是对所有Ubuntu 12.04镜像的层的标记)。这种机制使得在同一个仓库中可以存储多个镜像。

我们可以通过在仓库名后面加上一个冒号和标签名来指定该仓库中的某一镜像:

代码清单4-5 运行一个带标签的Docker镜像

sudo docker run -t -i --name zifeiy_container ubuntu:16.04 /bin/bash

这个例子会从镜像 ubuntu:16.04 启动一个容器,而这个镜像的操作系统则是Ubuntu 16.04。

4.3 拉取镜像

代码清单4-7 拉取fedora镜像

sudo docker pull fedora:28

代码清单4-8 查看fedora镜像

sudo docker images fedora

4.4 查找镜像

我们可以通过 docker search 命令来查找所有 Docker Hub 上公共的可用镜像:

代码清单4-10 查找镜像

sudo docker search puppet

代码清单4-11 拉取一个用户镜像jamtur01/puppetmaster

sudo docker pull jamtur01/puppetmaster

这条命令将会下载 jamtur01/puppetmaster 镜像到本地(这个镜像里预装了Puppet主服务器)。

接着就可以用这个镜像构建一个容器了。下面就用 docker run 命令来构建一个容器:

代码清单4-12 从Puppet master镜像创建一个容器

sudo docker run -i -t jamtur01/puppetmaster /bin/bash

4.7 删除镜像

使用 docker rmi 命令来删除一个镜像:

代码清单4-86 删除Docker镜像

sudo docker rmi jamtur01/static_web

代码清单4-87 同时删除多个Docker镜像

sudo docker rmi jamtur01/apache2 jamtur01/puppetmaster

代码清单4-88 删除所有镜像

sudo docker rmi `docker images -a -q`

4.8 运行自己的Docker Registry

4.8.1 从容器运行Registry

代码清单4-89 运行基于容器的Registry

sudo docker run -p 5000:5000 registry:2

该命令将会启动一个运行Registry应用2.0版本的容器,并将5000端口绑定到本地宿主机。

4.8.2 测试新Registry

首先下载一个Docker镜像:

sudo docker pull jamtur01/static_web

代码清单4-90 查看jamtur01/static_web Docker镜像

sudo docker images jamtur01/static_web

我这里jamtur01/static_web现实的IMAGE_ID是7c3b35d31608。我们找到了这个镜像ID,并使用心得Registry给该镜像打上标签。为了制定新的Registry目的地址,需要在镜像名前面加上主机名和端口前缀。在这个例子里,我们的Registry主机名为localhost:

代码清单4-91 使用新Registry为镜像打标签

sudo docker tag 7c3b35d31608 localhost:5000/jamtur01/static_web

为镜像打完标签之后,就能通过docker push命令将它推送到新的Registry中去了:

代码清单4-92 将镜像推送到新Registry

sudo docker push localhost:5000/jamtur01/static_web

这个镜像就被提交到了本地的Registry中,并且可以将其用于使用 docker run 命令构建新容器:

代码清单4-93 从本地Registry构建新的容器

sudo dockerr run -t -i localhost:5000/jamtur01/static_web /bin/bash

《第一本Docker书》学习笔记——第4章 使用Docker镜像和仓库的更多相关文章

  1. 第一本docker书 学习笔记(二)

    #安装docker的先决条件 运行64位CPU构架的计算机(docker目前不支持32位的cpu) 运行LUFSinux3.8或者更高版本内核 内核必须支持一种合适的存储驱动,例如: device M ...

  2. 第一本docker书 学习笔记(一)

    Docker的核心组件: Docker客户端和服务端 Docker镜像 Registry Docker容器 # Docker客户端和服务端 docker 是一个 C/S架构程序.客户端只需要向dock ...

  3. 20145330《Java学习笔记》第一章课后练习8知识总结以及IDEA初次尝试

    20145330<Java学习笔记>第一章课后练习8知识总结以及IDEA初次尝试 题目: 如果C:\workspace\Hello\src中有Main.java如下: package cc ...

  4. CSS3秘笈第三版涵盖HTML5学习笔记1~5章

    第一部分----CSS基础知识 第1章,CSS需要的HTML HTML越简单,对搜索引擎越友好 div是块级元素,span是行内元素 <section>标签包含一组相关的内容,就像一本书中 ...

  5. Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第二章:矩阵代数

    原文:Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第二章:矩阵代数 学习目标: 理解矩阵和与它相关的运算: 理解矩阵的乘 ...

  6. JVM学习笔记-第六章-类文件结构

    JVM学习笔记-第六章-类文件结构 6.3 Class类文件的结构 本章中,笔者只是通俗地将任意一个有效的类或接口锁应当满足的格式称为"Class文件格式",实际上它完全不需要以磁 ...

  7. Stealth视频教程学习笔记(第二章)

    Stealth视频教程学习笔记(第二章) 本文是对Unity官方视频教程Stealth的学习笔记.在此之前,本人整理了Stealth视频的英文字幕,并放到了优酷上.本文将分别对各个视频进行学习总结,提 ...

  8. Stealth视频教程学习笔记(第一章)

    Stealth视频教程学习笔记(第一章) 本文是对Unity官方视频教程Stealth的学习笔记.在此之前,本人整理了Stealth视频的英文字幕,并放到了优酷上.本文将分别对各个视频进行学习总结,提 ...

  9. java JDK8 学习笔记——第16章 整合数据库

    第十六章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 1.JDBC是java联机数据库的标准规范.它定义了一组标准类与接口,标准API中的接口会有数据库厂商操作,称为JDBC驱动程 ...

随机推荐

  1. nginx配置静态资源:配置绝对路径

    nginx配置静态资源:配置绝对路径 项目都是html格式的文件,我的项目路径:E:\javaservice\nginx-1.15.7\html assets:静态资源 html:站点文件 uploa ...

  2. postgresql分布式集群之citus简介(转载)

    一.Citus是什么 citus是PG的一个sharding插件,可以把PG变成一个分布式数据库.目前在苏宁有大量的生产应用跑在citus+pg的环境中.大家可以看it大咖视频. citus是一款基于 ...

  3. ES 基础理论 配置调优

    一.简介 ElasticSearch是一个基于Lucene的搜索服务器.它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口.Elasticsearch是用Java开发的,并作为 ...

  4. 为什么 MySQL 索引要使用 B+树而不是其它树形结构?比如 B 树?

    一个问题? InnoDB一棵B+树可以存放多少行数据?这个问题的简单回答是:约2千万 为什么是这么多呢? 因为这是可以算出来的,要搞清楚这个问题,我们先从InnoDB索引数据结构.数据组织方式说起. ...

  5. (16)打鸡儿教你Vue.js

    博客: Hexo搭建个性博客 https://hexo.io/zh-cn/ 快速.简洁且高效的博客框架 超快速度 Node.js 所带来的超快生成速度,让上百个页面在几秒内瞬间完成渲染. 支持 Mar ...

  6. Mac laravel: command not found

    如果用的oh-my-zsh 安装laravel 提示找不到.可以试试下面的 export PATH=$HOME/bin:/usr/local/bin:~/.composer/vendor/bin:$P ...

  7. 《挑战30天C++入门极限》C++中类的多态与虚函数的使用

        C++中类的多态与虚函数的使用 类的多态特性是支持面向对象的语言最主要的特性,有过非面向对象语言开发经历的人,通常对这一章节的内容会觉得不习惯,因为很多人错误的认为,支持类的封装的语言就是支持 ...

  8. 《挑战30天C++入门极限》 对C++中引用的补充说明(实例)

        对C++中引用的补充说明(实例) #include <iostream>    #include <string>    using namespace std;    ...

  9. shell 一次性杀掉相同名称的进程

    这条命令将会杀掉所有含有关键字"LOCAL=NO"的进程 ps -ef|grep LOCAL=NO|grep -v grep|cut -c -|xargs kill - 另一种方法 ...

  10. SQL Server 2008R2安装

    SQL Server 2008详细安装过程及配置   https://www.cnblogs.com/rewwensoftware/p/9580697.html SQL Server 2008R2 百 ...