docker 镜像

$ docker images u*

EPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
ubuntu              14.04               38c759202e30        5 days ago          196.6 MB

docker images 可以查看所有镜像。

images 命令后可以添加通配符 * 找出符合条件的一系列镜像。

$ docker inspect ubuntu

查看镜像的详细信息可以通过 inspect 命令。

$ docker search ubuntu

NAME                              DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
ubuntu                            Ubuntu is a Debian-based Linux operating s...   4192      [OK]       
ubuntu-upstart                    Upstart is an event-based replacement for ...   65        [OK]       
rastasheep/ubuntu-sshd            Dockerized SSH service, built on top of of...   29                   [OK]
torusware/speedus-ubuntu          Always updated official Ubuntu docker imag...   26                   [OK]
ubuntu-debootstrap                debootstrap --variant=minbase --components...   25        [OK]       
nickistre/ubuntu-lamp             LAMP server on Ubuntu                           8                    [OK]

通过 search 命令可以在 Docker Hub 上搜索符合要求的镜像。

  • DESCRIPTION 镜像的别名。
  • STARS 用户对镜像的评分。
  • OFFICIAL 是否为官方镜像。
  • AUTOMATED 是否使用了自动构建。
$ docker rmi ubuntu

Deleted: sha256:f05919001e0d37e8b66a2d057d674a7d9e2238216433fb9a2fbf1b2796c50875
Deleted: sha256:60156998057f59e3e757b34f60210b23a9996cf28f2dec0caaac883b88827111

$ docker rmi $(docker ps -a -q) // 删除所有镜像

可以通过 rmi 命令来删除镜像。

创建本地镜像

$ docker run -it ubuntu:14.04
root@3d71db0cbf42:/# apt-get update
... // 此处省略

root@3d71db0cbf42:/# apt-get install sqlite3
... // 此处省略

root@3d71db0cbf42:/# echo "test docker commit" >> hello docker
root@3d71db0cbf42:/# exit

$ docker ps -al

CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                      PORTS               NAMES
3d71db0cbf42        ubuntu:14.04        "/bin/bash"         5 minutes ago       Exited (0) 12 seconds ago                       distracted_bl

$ docker commit -m 'Message' --author="bert" 3d71db0cbf42 bert/sqlite3:v1
sha256:5df3e2b3031b42f26f645a1096fe32c12197dc155828a82f9b9bbc6aacceb9cd

$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
bert/sqlite3        v1                  5df3e2b3031b        5 seconds ago       201.4 MB

$ docker run -it bert/sqlite3:v1
root@13bac1f230d4:/# cat hello
test docker commit docker

root@13bac1f230d4:/# sqlite3 -version
3.8.2 2013-12-06 14:53:30 27392118af4c38c5203a04b8013e1afdb1cebd0d
  1. 创建容器
  2. 更新容器
  3. 安装 sqlite3
  4. 创建文件
  5. 退出
  6. 查询容器id
  7. 通过id创建本地镜像
  8. 进入镜像查看文件
  9. 查看 sqlit3 版本

从以上信息可以看出,我们已经成功创建自定义镜像了。

使用 Dockerfile 创建镜像

推荐使用 Dockerfile 来构建镜像。想需要对镜像进行的操作全部写到一个文件中,将需要对镜像进行的操作全部写到一个文件中,然后使用 docker build 命令从这个文件中创建镜像。

这种方法可以使镜像的创建变得透明和杜丽华,并且创建过程可以被重复执行。

Dockerfile 文件以行为单位,行首为 Dockerfile 命令,命令都是大写形式,其后紧跟着的是命令的参数。

下面是一个书上抄来的示例,没有实际意义,但是覆盖的比较全面。

# Version: 1.0.1
FROM ubuntu:14.04

MAINTAINER bert "bert@qq.com"

# 设置rot用户为后续命令的执行者
USER root

# 执行操作
RUN apt-get update
RUN apt-get insatll -y nginx

# 使用&&拼接命令
RUN touch test.txt && echo "abc" >> abc.txt

# 对外暴露端口
EXPOSE 80 8080 1038

# 添加文件
ADD abc.txt /opt/

# 添加文件夹
ADD /webapp /opt/webapp

# 添加网络文件
ADD http://www.baidu.com/img/bd_logo1.png /opt/

# 设置环境变量
ENV WEBAPP_PORT=9090

# 设置工作目录
WORKDIR /opt/

# 设置启动命令
ENTRYPOINT ['ls']

# 设置启动参数
CMD ["-a", "-l"]

# 设置卷
VOLUME ["/data", "var/www"]

# 设置子镜像的触发操作
ONBUILD ADD ./app/src
ONBUILD RUN echo "on build excuted" >> onbuild.txt

构建命令

docker build -t xxx/test:v1 .

这个非常坑,我按照书上的配置执行了 DockerFile 只看见 image 在不断的变大中,直到90G,实在受不了了,就强制结束这次build。

之后就发现少了70G的内存,吓死宝宝了....

建议在第一次做测试的时候只编写简单的 DockerFile

# Version: 1.0.1
FROM ubuntu:14.04

亲测成功。_!!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,686评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,668评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,160评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,736评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,847评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,043评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,129评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,872评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,318评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,645评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,777评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,470评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,126评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,861评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,095评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,589评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,687评论 2 351

推荐阅读更多精彩内容

  • 原文发布在:http://cizixs.com/2016/04/06/docker-images,转载请注明出处。...
    cizixs阅读 2,702评论 1 16
  • Docker — 云时代的程序分发方式 要说最近一年云计算业界有什么大事件?Google Compute Engi...
    ahohoho阅读 15,514评论 15 147
  • 目录 前言 Dockerfile的书写规则及指令使用方法 创建Dockerfile,构建运行环境 构建镜像 Doc...
    garyond阅读 72,309评论 0 43
  • 转载自 http://blog.opskumu.com/docker.html 一、Docker 简介 Docke...
    极客圈阅读 10,481评论 0 120
  • 昨晚,那是几点,我已经忘记了! 你跟我说,你被绑架了,当时我以为你是在开玩笑。还骂了你一顿,结果是真的,今天早上你...
    胖子挚阅读 307评论 0 0