镜像使用

列出镜像列表

# docker images

显示:

REPOSITORY            TAG                 IMAGE ID            CREATED             SIZE
centos 6.7 192ad0341c8b 2 months ago 191MB
openjdk 8-jdk-alpine 54ae553cb104 3 months ago 103MB
training/webapp latest 6fae60ef3446 3 years ago 349MB

说明:

  • REPOSITORY:表示镜像的仓库源

  • TAG:镜像的标签

  • IMAGE ID:镜像ID

  • CREATED:镜像创建时间

  • SIZE:镜像大小

同一仓库源可以有多个 TAG,代表这个仓库源的不同个版本,如ubuntu仓库源里,有15.10、14.04等多个不同的版本,我们使用 REPOSITORY:TAG 来定义不同的镜像。

获取镜像

# docker pull centos:6.7

下载完成后,我们可以直接使用这个镜像来运行容器。

查找镜像

# docker search httpd

显示为:

NAME                                    DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
httpd The Apache HTTP Server Project 2236 [OK]
hypriot/rpi-busybox-httpd Raspberry Pi compatible Docker Image with a … 45
centos/httpd 21 [OK]
centos/httpd-24-centos7 Platform for running Apache httpd 2.4 or bui… 20

说明:

  • NAME:镜像仓库源的名称
  • DESCRIPTION:镜像的描述
  • OFFICIAL:是否docker官方发布

创建镜像

更新镜像

创建容器
# docker run -t -i ubuntu:15.10 /bin/bash

在容器内执行apt-get update 然后退出

提交容器
# docker commit -m="has update" -a="wu" e218edb10161 wu/ubuntu:v2

各个参数说明:

  • -m:提交的描述信息

  • -a:指定镜像作者

  • e218edb10161:容器ID

  • wu/ubuntu:v2:指定要创建的目标镜像名

构建镜像

创建Dockerfile
# vim Dockerfile

内容如下:

FROM    centos:6.7
MAINTAINER Fisher "fisher@sudops.com"

RUN /bin/echo 'root:123456' |chpasswd
RUN useradd wu
RUN /bin/echo 'wu:123456' |chpasswd
RUN /bin/echo -e "LANG=\"en_US.UTF-8\"" >/etc/default/local
EXPOSE 22
EXPOSE 80
CMD /usr/sbin/sshd -D

每一个指令都会在镜像上创建一个新的层,每一个指令的前缀都必须是大写的。

第一条FROM,指定使用哪个镜像源

RUN 指令告诉docker 在镜像内执行命令,安装了什么。。。

构建镜像
# docker build -t wu/centos:6.7 .

说明:

  • -t :指定要创建的目标镜像名
  • . :Dockerfile 文件所在目录,可以指定Dockerfile 的绝对路径
启动构造好的镜像
# docker run -t -i wu/centos:6.7 /bin/bash

在镜像内运行:

[root@e1b7c2d96228 /]# id wu
uid=500(wu) gid=500(wu) groups=500(wu)

可以发现已经成功创建了用户wu

设置镜像标签

# docker tag 286139a0cf69 wu/centos:dev

可以发现镜像中多了一条Tag为dev的记录