docker 笔记(2) -- 镜像


无论如何,飞蛾扑火都是一种高贵的姿态。


参考

菜鸟教程 -- docker


当使用的镜像文件本地不存在时,则从远程镜像库中下载,默认是 docker Hub,也可以找到其他的镜像库使用


列出所有的本地镜像

root@pinsily:~# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
hello-world         latest              05a3bd381fc2        5 weeks ago         1.84kB

表头名分别表示 镜像源、标签、ID、生成时间以及大小,其中我们经常以 REPOSITORY:TAG 来表示镜像,比如 Ubuntu:14.04,如果使用的时候不加标签的话,默认下载最新版本的,也即 latest 标签


预先下载镜像

可以不在使用的时候就把镜像下载好

root@pinsily:~# docker pull ubuntu:14.04

搜索远程镜像库

root@pinsily:~# docker search ubuntu

NAME                                            DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
ubuntu                                          Ubuntu is a Debian-based Linux operating s...   6699                [OK]
ubuntu-upstart                                  Upstart is an event-based replacement for ...   80                  [OK]
ubuntu-debootstrap                              debootstrap --variant=minbase --components...   31                  [OK]
saltstack/ubuntu-14.04-minimal                                                                  7                                       [OK]
brook/ubuntu-14.04.3-baidupcs                   https://github.com/GangZhuo/BaiduPCS 此项目功能...   6                                       [OK]
saltstack/ubuntu-14.04                                                                          5                                       [OK]
tmartinx/ubuntu-14.04-server-cloudimg           Ubuntu 14.04 LTS (Trusty Tahr)  Cloud image     2
fernandoacorreia/ubuntu-14.04-oracle-java-1.7   Docker image with Ubuntu 14.04 and Oracle ...   1                                       [OK]
mist/ubuntu-14.04                               Ubuntu 14.04 image with openssh server and...   1
simphonyproject/ubuntu-14.04-remote             LEGACY. Ubuntu 14.04 with Remote Access Su...   1                                       [OK]
NAME 镜像仓库源的名称
DESCRIPTION 镜像的描述
OFFICIAL 是否docker官方发布

运行镜像

root@pinsily:~# docker run hello-world

更新镜像

可以将我们修改后的镜像以副本形式上传 更新之前,需要创建一个容器来进行交互,关于容器的记录一起放到下一节讲

root@pinsily:~# docker run -t -i ubuntu:14.04 /bin/bash
root@f34700df208e:/#

创建了一个交互式进程,进入了容器当中(@后面的表示容器 ID),在其中进行软件库更新

root@f34700df208e:/# apt-get update

使用 exit 命令退出容器,记下容器 ID

提交副本

root@pinsily:~# docker commit -m="updated" -a="pinsily" f34700df208e pinsily/ubuntu:14.04_v2
sha256:be2e8bc7629efb487cacaf541fddd8dccaec29be05739fa33743cfb3385f3551
-m 提交的描述信息
-a 镜像作者
f34700df208e 容器ID
pinsily/ubuntu:14.04_v2 目标镜像名

可以查看到我们新提交的镜像,可以以此来创建容器使用


添加镜像标签

对上面更新的镜像添加一个 hello 标签

root@pinsily:~# docker tag be2e8bc7629e pinsily/ubuntu:hello