容器化-Docker-4-Docker镜像

Docker镜像

什么是镜像

镜像:

  • 只读的(镜像文件禁止修改的)
  • 分层的(优化空间使用,相同层使用同一份数据,每层数据都在/var/lib/docker/overlay2/存着)
  • 程序以及依赖二进制文件集合(程序打包)

简单点理解:一堆文件

容器:

  • 镜像(只读) + 一层读写层 + 程序运行底层基础(内核创建的独立命名空间)

镜像创建

  • Dockerfile(推荐)

镜像和容器的区别

用区别来说镜像和容器不太恰当,镜像可以独立于容器存在,但是容器的启动需要镜像,他们更像阶段的概念,容器是为运行的容器,容器是正在运行的镜像

Docker镜像管理(操作对象是镜像)

检索镜像

docker search [image_name]
image_name是

下载镜像

[root@localhost ~]# ntpdate cn.pool.ntp.org
20 Jan 04:11:23 ntpdate[11726]: step time server 10.152.227.178 offset 13370867.149701 sec
[root@localhost ~]# docker pull redis:latest
Trying to pull repository docker.io/library/redis ...
latest: Pulling from docker.io/library/redis
8ec398bc0356: Pull complete
da01136793fa: Pull complete
cf1486a2c0b8: Pull complete
a44f7da98d9e: Pull complete
c677fde73875: Pull complete
727f8da63ac2: Pull complete
Digest: sha256:90d44d431229683cadd75274e6fcb22c3e0396d149a8f8b7da9925021ee75c30
Status: Downloaded newer image for docker.io/redis:latest

如果报错:**x509: certificate has expired or is not yet valid**本地时间不对同步下时间

# 安装ntpdate工具
yum -y install ntp ntpdate
# 同步
ntpdate cn.pool.ntp.org

下载并运行镜像

# 如果本地没有镜像会去镜像仓库获取镜像
docker run -it busybox /bin/sh

查看/删除本地镜像

# 查看本地镜像有那些
docker images

# 删除本地镜像使用rmi
docker rmi 9b188f5fb1e6

镜像本质

Docker 镜像其实本质就是一个压缩包,我们可以使用下面的命令将一个 Docker 镜像中的文件导出

# busybox 镜像是一个Linux工具文件集合

#docker export $(docker create busybox) | tar -C rootfs -xvf -
#ls
#bin  dev  etc  home proc root sys  tmp  usr  var

你可以看到这个 busybox 镜像中的目录结构与 Linux 操作系统的根目录中的内容并没有太多的区别,可以说 Docker 镜像就是一个文件。

posted @ 2021-07-13 21:42  天帅  阅读(154)  评论(0编辑  收藏  举报