Docker(四) 镜像管理

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/u011414629/article/details/98526811

当运行容器时, 使用的镜像如果在本地中不存在, docker就会自动从docker镜像仓库中下载, 默认是从Docker Hub公共镜像源下载

镜像列表

使用docker images来列出本地主机上的镜像:

docker images

选项说明:

  1. REPOSITORY: 表示镜像的仓库源
  2. TAG: 镜像的标签
  3. IMAGE ID: 镜像ID
  4. CREATED: 镜像创建时间
  5. SIZE: 镜像大小

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

获取镜像

在本地主机上使用一个不存在的镜像时, Docker就会自动下载这个镜像, 如果想预先下载这个镜像, 可以使用docker pull命令来下载

docker pull ubuntu:14.04

查找镜像

可以从Docker Hub网站来搜索镜像, Docker Hub网址为: https://hub.docker.com/

也可以使用docker search命令来搜索镜像, 比如我们需要一个httpd的镜像来作我们web服务, 可以通过docker search命令搜索httpd来寻找适合我们的镜像。

docker search ubuntu

创建镜像

可以通过以下两种方式对镜像进行更改

  1. 从已经创建的容器中更新镜像, 并提交这个镜像
  2. 使用Dockerfile指令来创建一个新的镜像

更新镜像

更新镜像之前, 需要使用镜像来创建一个容器

docker run –it ubuntu:15.10 /bin/bash

在运行的容器内使用apt-get update命令进行更新

在完成操作之后, 输入exit命令来退出这个容器

可以通过命令docker commit来提交

Dockerfile

Dockerfile是一个包含用于组合映像的命令文本文档, 可以使用在命令行中调用任何命令。Docker通过读取Dockerfile中的指令自动生成镜像。

docker build命令用于从Dockerfile构建映像, 可以在docker build命令中使用-f标志指向文件系统中任何位置的Dockerfile

docker build –f /path/to/a/Dockerfile

Dockerfile文件说明

说明不区分大小写, 但必须遵循建议使用大写字母的约定

Docker以从上到下的顺序运行Dockerfile的指令。为了指定基本映像, 第一条指令必须是FROM

一个声明以#字符开头则被视为注释, 可以在Docker文件中使用RUN, CMD, FROM, EXPOSE, ENV等指令

这里列出了一些常用的说明

FROM

该指令用于设置后续指令的基本映像, 有效的Dockerfille必须使用FROM作为其第一条命令

FROM ubuntu

MAINTAINER

指定镜像的作者

MAINTAINER <name>

RUN

该指令用于执行当前映像的任何命令

RUN /bin/bash –c ‘echo “Hello World”’

 

CMD

这用于执行映像的应用程序, 应该以下列形式总是使用CMD

CMD [“executable”, “param1”, “param2”]

 

COPY

该指令用于将来源的新文件或目录复制到目的地的文件系统

COPY abc/ /xyz

规则:

  1. source路径必须在构建的上下文之内, 无法使用copy ../something /something, 因为docker构建的第一部是将上下文目录(和子目录)发送到docker守护程序
  2. 如果source是目录, 则会复制目录的全部内容, 包括文件系统元数据

WORKDIR

WORKDIR用于为Dockerfile中的RUN. CMD和COPY指令设置工作目录, 如果工作目录不存在, 它默认将会创建

可以在Dockerfile文件中多次使用WORKDIR

构建镜像

使用docker build, 从零开始来创建一个新的镜像, 为此我们需要一个Dockerfile文件, 其中包含一组指令来告诉Docker如何构建镜像

 

设置镜像标签

可以使用docker tag命令, 为镜像添加一个新的标签

docker tag

猜你喜欢

转载自blog.csdn.net/u011414629/article/details/98526811