当运行容器时, 使用的镜像如果在本地中不存在, docker就会自动从docker镜像仓库中下载, 默认是从Docker Hub公共镜像源下载
使用docker images来列出本地主机上的镜像:
docker images
选项说明:
统一仓库源可以有多个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
可以通过以下两种方式对镜像进行更改
更新镜像之前, 需要使用镜像来创建一个容器
docker run –it ubuntu:15.10 /bin/bash
在运行的容器内使用apt-get update命令进行更新
在完成操作之后, 输入exit命令来退出这个容器
可以通过命令docker commit来提交
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
规则:
WORKDIR
WORKDIR用于为Dockerfile中的RUN. CMD和COPY指令设置工作目录, 如果工作目录不存在, 它默认将会创建
可以在Dockerfile文件中多次使用WORKDIR
构建镜像
使用docker build, 从零开始来创建一个新的镜像, 为此我们需要一个Dockerfile文件, 其中包含一组指令来告诉Docker如何构建镜像
可以使用docker tag命令, 为镜像添加一个新的标签
docker tag