主要内容:

  • 什么是镜像
  • 下载镜像 pull
  • 设置下载加速源
  • 查看镜像
  • 上传镜像 push

什么是镜像(image)

镜像是一个文件系统,提供了容器运行时需要用到的文件和参数配置。相当于平时在使用某个软件时需要下载的安装包,也相当于安装操作系统时需要用到 ISO 文件。

我们可以基于某一个镜像创建多个容器。

下载镜像

如果想运行某个 Docker 容器,可以直接从 Docker Hub 中下载对应的镜像,然后通过镜像创建容器就可以了。Docker Hub 类似于 GitHub,你可以把自己写好的镜像放到上面托管,需要用的时候再下载下来。

下载镜像需要执行 docker image pull 命令,是不是和 git 指令很像? 在 DockerHub 上,点击进入详情页,可以看到很多下载标签,可以根据标签下载指定的版本。

下载 utuntu 14.04, 也可以点击标签进入 Dockerfile 查看具体信息。

docker image pull utuntu:14.04

utuntu 的镜像就会下载下来

下载一个镜像以后,可以通过 docker image ls 命令查看有哪些镜像。

然后通过镜像就可以创建容器运行了:

docker container run ubuntu:14.04
# 或者通过 image id
docker container run 6e4f1fe62ff1

设置国内源

国内下载官方源下载速度会比较慢,有时候等得让人想哭,所以最好设置一个国内源地址。

镜像加速地址提供几个参考,现在用的是 163 的:

在 docker toolbox 中配置国内源:

# 登录 host  
$ docker-machine ssh default # 添加国内源地址
$ sudo sed -i "s|EXTRA_ARGS='|EXTRA_ARGS='--registry-mirror=[http://hub-mirror.c.163.com](http://hub-mirror.c.163.com/) |g" \
/var/lib/boot2docker/profile # 退出机器
$ exit # 重启 host
$ docker-machine restart default

或者修改 /etc/docker/daemon.json 文件(没验证):

# vi /etc/docker/daemon.json
{
"registry-mirrors": ["http://hub-mirror.c.163.com"]
}

查看 image 详情

可以通过 inspect 指令查看 image 的详细信息。比如开放了哪些端口,设置了哪些环境变量,最终运行的是什么命令。

docker container inspect image_id

查看 image 的构建历史:

docker image history utuntu:14.04
# 或者 docker image history image_id

每一行代表的是一个层级 layer, 可以看到 image 是如何构建的, missing 表示中间层,也就是在构建最终的 image 时产生的临时 image。

也就是说,在制作成一个 image 之前,会有很多的步骤,而每做一个步骤,都会产生一层。最终会合并所有的中间步骤,得到会使用的 image。

上传 image

上传 image 首先需要给本地的 image 制作远程标签

docker image tag python:3.7-alpine looker53/python:3.7-alpine
# 也可以用 image id
docker image tag e854017db514 looker53/python:3.7-alpine

这里表示把本地的 python 镜像,标签为 3.7-alpine 设置成 looker53 这个用户的 python 镜像,标签也叫 3.7-alpine,也可以设成其他名字。

登陆 looker53 这个账号:

docker login

然后通过 push 命令推送到远程仓库:

docker image push looker53/python:37alpine

接着,在 DockerHub 当中就可以看到推送的仓库了:

请使用手机"扫一扫"x

Docker 入门:镜像的更多相关文章

  1. docker入门——镜像简介

    什么是docker镜像 Docker镜像是由文件系统叠加而成. 最底端是一个引导文件系统,即bootfs: 这很像典型的Linux/Unix的引导文件系统.Docker用户几乎永远不会和引导文件系统有 ...

  2. docker入门-镜像管理命令篇

    一.下载.上传镜像   1:下载安装centos镜像 语法:docker [参数][镜像名称] [root@host1 ~]# docker pull centos Using default tag ...

  3. Docker入门教程(九)10个镜像相关的API

    Docker入门教程(九)10个镜像相关的API [编者的话]DockerOne组织翻译了Flux7的Docker入门教程,本文是系列入门教程的第九篇,重点介绍了镜像相关的Docker Remote ...

  4. Docker入门系列之三:如何将dockerfile制作好的镜像发布到Docker hub上

    这个系列的前两篇文章,我们已经把我们的应用成功地在Docker里通过nginx运行了起来,并且用dockerfile里制作好了一个镜像. Docker入门系列之一:在一个Docker容器里运行指定的w ...

  5. docker入门——构建镜像

    前面我们已经介绍了如何拉取已经构建好的带有定制内容的Docker镜像,那么如何构建自己的镜像呢? 构建Docker镜像有以下两种方法: 使用docker commit命令. 使用docker buil ...

  6. Docker学习第一天(Docker入门&&Docker镜像管理)

    简介 今天小区的超市买零食老板给我说再过几天可能就卖完了我有点诧异,老板又说厂家不生产了emmm 今天总算开始docker了! 1.Docker? 1.什么是Docker Docker 是一个开源的应 ...

  7. 第三章 Docker 入门

    第三章 docker 入门 3.1 确保docker已经就绪 首先查看docker程序是否存在,功能是否正常 [#3#cloudsoar@cloudsoar-virtual-machine ~]$su ...

  8. 学习 Docker - 入门

    Docker简介 一种虚拟容器技术. 一种虚拟化分方案: 操作系统级别的虚拟化: 只能运行相同或相似内核的操作系统: 依赖与linux内核特性:Namespace和Cgroups(Control Gr ...

  9. Docker入门教程(八)Docker Remote API

    Docker入门教程(八)Docker Remote API [编者的话]DockerOne组织翻译了Flux7的Docker入门教程,本文是系列入门教程的第八篇,重点介绍了Docker Remote ...

  10. Docker入门教程(七)Docker API

    Docker入门教程(七)Docker API [编者的话]DockerOne组织翻译了Flux7的Docker入门教程,本文是系列入门教程的第七篇,重点介绍了Docker Registry API和 ...

随机推荐

  1. C语言编程入门题目--No.8

    题目:输出9*9口诀. 1.程序分析:分行与列考虑,共9行9列,i控制行,j控制列. 2.程序源代码: #include "stdio.h" main() { int i,j,re ...

  2. A Tile Painting(循环节)

    Ujan has been lazy lately, but now has decided to bring his yard to good shape. First, he decided to ...

  3. String(字符串) 比较大小 如果有A+B>B+A 则A>B

    题目引入: 给定N个整数,那任意顺序排列连成一个数,得到的最大的数是多少? 分析:贪心,字典序排序,都不对大小比较也不对,今天我跟别人想了很久绞尽脑汁,各种模拟都失败了.最后才发现对于俩个数a=313 ...

  4. 题解 bzoj 4398福慧双修(二进制分组)

    二进制分组,算个小技巧 bzoj 4398福慧双修 给一张图,同一条边不同方向权值不同,一条边只能走一次,求从1号点出发再回到1号点的最短路 一开始没注意一条边只能走一次这个限制,打了个从一号点相邻节 ...

  5. CF1316C Primitive Primes

    CF1316C [Primitive Primes] 给出两个多项式\(a_0+a_1x+a_2x^2+\dots +a_{n-1}x^{n-1}\)和\(b_0+b_1x+b_2x^2+ \dots ...

  6. nginx的数据结构集合(随时更新)

    在学习nginx的时候,因为其数据结构略多,看过后一般就忘记了.所以边学习边记录在这里吧,方便以后查看. ngx_buf_t:缓冲区结点 1: typedef struct ngx_buf_s ngx ...

  7. springboot之异常处理

    我在使用springboot的时候,运行主类结果报错 : 异常错误:java.sql.SQLException: The server time zone value '?й???????' is u ...

  8. SSM的医院管理系统录像

    视频观看地址:http://mp.toutiao.com/preview_article/?pgc_id=6806135073323090444

  9. spark优化总结

    1.Spark调优背景 目前Zeppelin已经上线一段时间,Spark作为底层SQL执行引擎,需要进行整体性能调优,来提高SQL查询效率.本文主要给出调优的结论,因为涉及参数很多,故没有很细粒度调优 ...

  10. JVM入门--类加载器

    一.基础架构 概览 我们平时说的栈是指的Java栈,native method stack 里面装的都是native方法 细节架构图 二.类加载器 1.类的加载 方法区并不是存放方法的区域,其是存放类 ...