
《Docker从浅入深》也同步在github上,可以前去看看,欢迎star喔~~
coco369/docker-depth-learninggithub.com
Docker 核心:镜像,首先重点讲解一下镜像的基本操作,然后介绍一下镜像的实现原理。
1. 镜像
镜像是一个只读的 Docker 容器模板,包含启动容器所需要的所有文件系统结构和内容。简单来讲,镜像是一个特殊的文件系统,它提供了容器运行时所需的程序、软件库、资源、配置等静态数据。即镜像不包含任何动态数据,镜像内容在构建后不会被改变。
如何操作镜像:

从图中可知,镜像的操作可分为:
拉取镜像,使用docker pull命令拉取远程仓库的镜像到本地 ;
重命名镜像,使用docker tag命令“重命名”镜像 ;
查看镜像,使用docker image ls或docker images命令查看本地已经存在的镜像 ;
删除镜像,使用docker rmi命令删除无用镜像 ;
构建镜像,构建镜像有两种方式。第一种方式是使用docker build命令基于 Dockerfile 构建镜像,也是我比较推荐的镜像构建方式;第二种方式是使用docker commit命令基于已经运行的容器提交为镜像。
1.1 拉取镜像
Docker 镜像的拉取使用docker pull命令, 命令格式一般为 docker pull [Registry]/[Repository]/[Image]:[Tag]。
- Registry 为注册服务器,Docker 默认会从 http://docker.io 拉取镜像,如果你有自己的镜像仓库,可以把 Registry 替换为自己的注册服务器。
- Repository 为镜像仓库,通常把一组相关联的镜像归为一个镜像仓库,library为 Docker 默认的镜像仓库。
- Image 为镜像名称。
- Tag 为镜像的标签,如果你不指定拉取镜像的标签,默认为latest。
例如,我们需要获取一个 busybox 镜像,可以执行以下命令:
busybox 是一个集成了数百个 Linux 命令(例如 curl、grep、mount、telnet 等)的精简工具箱,只有几兆大小,被誉为 Linux 系统的瑞士军刀。我经常会使用 busybox 做调试来查找生产环境中遇到的问题。
$ docker pull busybox
Using default tag: latest
latest: Pulling from library/busybox
61c5ed1cbdf8: Pull complete
Digest: sha256:4f47c01fa91355af2865ac10fef5bf6ec9c7f42ad2321377c21e844427972977
Status: Downloaded newer image for busybox:latest
docker.io/library/busybox:latest
实际上执行docker pull busybox命令,都是先从本地搜索,如果本地搜索不到busybox镜像则从 Docker Hub 下载镜像。
1.2 操作镜像
查看镜像
Docker 镜像查看使用d