镜像

镜像是指容器化技术(如Docker)中用于创建和运行容器的只读模板。

1. 获取镜像

解释: 获取镜像是指从镜像仓库(如Docker Hub)下载镜像到本地环境。

例子: 使用 docker pull ubuntu 命令从Docker Hub获取一个Ubuntu镜像。

docker pull ubuntu

2. 列出

解释: 列出本地系统中已有的所有镜像。

例子: 使用 docker images 命令查看当前所有本地的镜像列表。

docker images

3. 创建镜像

解释: 创建镜像指的是通过Dockerfile或其他方式生成一个新的镜像。

例子: 使用 docker build -t myapp . 命令根据Dockerfile创建一个名为“myapp”的镜像。

# Dockerfile内容
FROM ubuntu:20.04
RUN apt-get update && apt-get install -y python3
COPY . /app
CMD ["python3", "/app/myapp.py"]
docker build -t myapp .

4. 修改已有镜像

解释: 修改已有镜像是指基于现有镜像进行更改并创建一个新的镜像。

例子: 运行一个已有的镜像,进行修改后再提交为新镜像,如 docker commit <container_id> new_image_name

docker run -it ubuntu
# 进行一些更改,例如安装新软件
apt-get update && apt-get install -y vim
# 提交更改为新镜像
docker commit <container_id> new_image_name

5. 存出和载入镜像

解释: 存出镜像是指将镜像保存为文件,载入镜像是指从文件加载镜像。

例子: 使用 docker save -o myimage.tar myapp 将镜像保存为文件,使用 docker load -i myimage.tar 从文件载入镜像。

docker save -o myimage.tar myapp
docker load -i myimage.tar

6. 移除

解释: 移除镜像是指删除本地的镜像文件。

例子: 使用 docker rmi myapp 删除名为“myapp”的镜像。

docker rmi myapp

7. 镜像的实现原理

解释: 镜像通过分层文件系统实现。每一层都是只读的,层与层之间叠加形成最终的镜像。这种层叠结构允许高效地重用和共享各层资源,减少存储空间和加快部署速度。

例子: 在Docker中,镜像由多层组成。假设我们有一个基础镜像包含Ubuntu操作系统层,然后在其上安装了Python,这些修改被记录为新的层。当我们需要再创建一个新的镜像在其上安装更多软件时,只需增加新的层,基础的Ubuntu和Python层可以被复用。

FROM ubuntu:20.04  # 第一层,基础镜像
RUN apt-get update && apt-get install -y python3  # 第二层,安装Python
COPY . /app  # 第三层,复制应用程序
CMD ["python3", "/app/myapp.py"]  # 第四层,设置启动命令

本文由mdnice多平台发布


逼格高的汤圆
7 声望2 粉丝