Docker-Image

news2024/9/25 17:18:47

Docker

  • Docker 镜像是什么
  • 为什么需要镜像
  • 镜像命令
    • 总览
    • docker images
    • docker tag
    • docker pull
    • docker push
    • docker rmi
    • docker save
    • docker load
    • docker image inspect
    • docker history
    • docker import
    • docker image prune
    • docker build

Docker 镜像是什么

  • Docker image 本质上是一个 read-only 只读文件, 这个文件包含了文件系统、源码、库文件、依赖、工具等一些运行 application 所必须的文件

  • 我们可以把 Docker image 理解成一个模板, 可以通过这个模板实例化出来很多容器

  • image 里面是一层层文件系统(Union File System), 可以将几层目录挂载到一起, 形成一个虚拟文件系统. 每一层文件系统我们叫做一层 layer, 联合文件系统可以对每一层文件系统设置三种权限, 只读(readonly)、读写(readwrite)和写出(whiteout-able)

镜像相当于一个模板,可以很方便的构建出来不同的对象

🍂案例

在这里插入图片描述

为什么需要镜像

在部署应用时,通过手工或写一些脚本的方式进行部署。这样部署面临问题就是云端和本地环境一致问题。用户为每个应用打包过程比较繁琐,需要配置和修改等操作,非常费劲

然而,Docker 镜像就是为了解决这个小小的打包功能,突然一夜之间成名。那么,你可能说 Docker 镜像就是个压缩包,是的,你猜对了,它就像一个压缩包文件。它是如何解决 Paas 时代所面临的云端和本地一致性问题?很简单,它是把一个镜像制作成一个完整的操作系统所有文件和对应的目录结构,这样的压缩包是跟你本地和测试环境用的操作系统一摸一样

Docker 最大的贡献就是定义了容器镜像的分层的存储格式,Docker 镜像技术的基础是联合文件系统(UnionFS),其文件系统是分层的。这样既可以充分利用共享层,又可以减少存储空间占用。Docker 镜像提供了一种打包应用程序和预配置服务器环境的便捷方式,可以很方便的将其用于个人用途或与其他 Docker 用户公开共享

镜像命令

总览

commandaliasfunction
docker imagesdocker image ls / docker image list列出本地镜像
docker tagdocker image tag给镜像打标签, 可用于推送至镜像仓库
docker pulldocker image pull从镜像仓库拉取镜像
docker pushdocker image push推送镜像到仓库
docker rmidocker image rm / docker image remove删除本地镜像
docker builddocker image build通过 dockerfile 制作镜像
docker savedocker image save将指定镜像保存成 tar 归档文件
docker loaddocker image load导入使用 docker save 命令导出的镜像
docker image inspect查看镜像详细信息
docker historydocker image history查看镜像历史
docker importdocker image import从归档文件 docker export 中创建镜像
docker image prune删除不使用的镜像

docker images

  • 功能

    列出本地镜像

  • 语法

    docker images [OPTIONS] [REPOSITORY[:TAG]]

  • 别名

    docker image ls, docker image list

  • 参数

    • -a: 列出本地所有的镜像(含中间映像层, 默认情况下, 过滤掉中间映像层)
    • --digests: 显示镜像的摘要信息
    • -f: 显示满足条件的镜像
    • --format: 指定返回值的模板文件
    • --no-trunc: 显示完整的镜像信息
    • -q: 只显示镜像 ID

🍂样例

# 列出本地全部镜像
docker images

# 列出本地镜像中 REPOSITORY 为 ubuntu 的镜像列表
docker images ubuntu

docker tag

  • 功能

    标记本地镜像, 将其归入某一仓库

  • 语法

    docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]

  • 别名

    docker image tag

🍂样例

# 给 ubuntu:22.04 镜像打标签
docker tag ubuntu:22.04 myregistry.com/myubuntu:22.04

docker pull

  • 功能

    从镜像仓库中拉取或者更新指定镜像

  • 语法

    docker pull [OPTIONS] NAME[:TAG|@DIGEST]

  • 别名

    docker image pull

  • 参数

    • -a: 拉取所有 tagged 镜像
    • --disable-content-trust: 忽略镜像的校验, 默认开启

🍂样例

# 拉取 nginx:1.23.3 镜像
docker pull nginx:1.23.3

docker push

  • 功能

    将本地的镜像上传到镜像仓库, 要先登录到镜像仓库

  • 语法

    docker push [OPTIONS] NAME[:TAG]

  • 别名

    docker image push

  • 参数

    • -a: 推送所有 tagged 镜像
    • --disable-content-trust: 忽略镜像的校验, 默认开启

🍂样例

# 推送 bibubibu/busybox:v1 镜像
docker push bibubibu/busybox:v1

docker rmi

  • 功能

    删除镜像

  • 语法

    docker rmi [OPTIONS] IMAGE [IMAGE...]

  • 别名

    docker image rm, docker image remove

  • 参数

    • -f: 强制删除
    • --no-prune: 不移除该镜像的过程镜像,默认移除

🍂样例

# 推送 bibubibu/busybox:v1 镜像
docker rmi nginx:stable

docker save

  • 功能

    将指定镜像保存成 tar 归档文件

  • 语法

    docker save [OPTIONS] IMAGE [IMAGE...]

  • 别名

    docker image save

  • 参数

    • -o: 输出到的文件

🍂样例

# 将 myimage:latest 镜像保存成了 myimage.tar 文件
docker save -o myimage.tar myimage:latest

docker load

  • 功能

    导入使用 docker save 命令导出的镜像

  • 语法

    docker load [OPTIONS]

  • 别名

    docker image load

  • 参数

    • --input, -i: 指定导入的文件, 代替 STDIN
    • --quiet, -q: 精简输出信息

🍂样例

# 将 myimage.tar 文件导入到本地镜像
docker load -i myimage.tar

docker image inspect

  • 功能

    查看镜像详细信息

  • 语法

    docker image inspect [OPTIONS] IMAGE [IMAGE...]

docker inspect 会自动检查是镜像还是容器然后显示相关信息

🍂样例

# 查看镜像详细信息
docker images inspect nginx:1.23.3

docker history

  • 功能

    显示镜像历史

  • 语法

    docker history [OPTIONS] IMAGE

  • 别名

    docker image history

  • 参数

    • -H , --human: 大小和日期采用人容易读的格式展现
    • --no-trunc: 显示全部信息, 不要隔断
    • -q, --quiet: 只显示镜像 id 信息

🍂样例

# 显示 nginx:1.25.3 镜像历史
docker history -H nginx:1.25.3

docker import

  • 功能

    从归档文件中创建镜像

  • 语法

    docker import [OPTIONS] file|URL|- [REPOSITORY[:TAG]]

  • 别名

    docker image import

  • 参数

    • -c: 应用 docker 指令创建镜像
    • -m: 提交时的说明文字

🍂样例

# 从 my_ubuntu_v3.tar 文件中创建了一个名为 bibubibu/ubuntu:v4 的镜像
docker import my_ubuntu_v3.tar bibubibu/ubuntu:v4

docker image prune

  • 功能

    删除不使用的镜像

  • 语法

    docker image prune [OPTIONS]

  • 参数

    • -a , --all: 删除全部不使用的镜像
    • --filter: 指定过滤条件
    • -f, --force: 不提示是否删除

🍂样例

# 删除所有没有被已有容器使用的镜像
docker image prune -a

docker build

  • 功能

    用于使用 Dockerfile 创建镜像

  • 语法

    docker build [OPTIONS] PATH | URL | -

  • 参数

    • --build-arg=[]: 设置镜像创建时的变量
    • -f: 指定要使用的 Dockerfile 路径
    • --label=[]: 设置镜像使用的元数据
    • --no-cache: 创建镜像的过程不使用缓存
    • --pull: 尝试去更新镜像的新版本
    • --quiet, -q: 安静模式, 成功后只输出镜像 ID
    • --rm: 设置镜像成功后删除中间容器
    • --tag, -t: 镜像的名字及标签, 通常为 name:tag 或者 name 格式; 可以在一次构建中为一个镜像设置多个标签
    • --network: 默认 default. 在构建期间设置 RUN 指令的网络模式

🍂样例

# 使用 Dockerfile 创建了一个名为 myimage:tag 的镜像
docker build -t myimage:tag

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1539215.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

图像分类从零开始(1)

尽我所能,总结留给后面的师弟们! 1.目标 搭建一个完整的系统,包括图像数据集预处理,训练模型,分类器,优化器,以及结果数据处理。 2.理论 3.实例(猫狗分类) Gitee代码…

猫,路由器,WIFI

家庭网络常识 1:猫、路由器、wifi_哔哩哔哩_bilibili 入户光纤插到猫上面,网线连接猫和路由器,网线连接路由器和电脑。路由器可以发射WIFI。 手机通过WIFI连接到路由器。 左边是猫,右边是光猫。 (modem) …

二分算法的变种----查找递增可重复数组边界

public class test {//数组长度a,b,c为8,d为7;static int[] a {3,5,8,8,8,9,9,10};static int[] b {8,8,8,8,8,8,8,8};static int[] c {0,0,0,0,0,0,0,0};static int[] d {0,0,0,0,0,0,0};public static void main(String[] args) {int target 0;System.out.pr…

鸿蒙Harmony应用开发—ArkTS(stateStyles:多态样式)

Styles和Extend仅仅应用于静态页面的样式复用,stateStyles可以依据组件的内部状态的不同,快速设置不同样式。这就是我们本章要介绍的内容stateStyles(又称为:多态样式)。 概述 stateStyles是属性方法,可以…

python项目格式代码风格

Visual Studio Code 选择使用 black 作为代码格式化工具,保证提交代码风格的统一 1. Install black pip install black2. Install black and isort extension for vscode: 3. 设定black及isort的格式化配置 3.1. ctrl + , 打开配置面板 3.2. 在弹出的json配置中添加,&quo…

周末总结(2024/03/23)

工作 上周末学习了精力管理,但是没有使用成功,总结了一下,有两点没有做到: 接受破烂现状,开始思考 我还没有完全接受自己的失败,很少跟别人分享自己的生活,需要改进 上周计划做的React练习一…

Nginx 全局块配置汇总

前言 nginx.conf 是 nginx 的主配置文件,配置项分为三大块,events 块和 http 块外面的都是全局块 本文记录最常用的全局块配置汇总,对于比较重要或复杂的配置项则另起文章总结,对应配置项中有文章地址 user user 指令用于配置运…

【ORB-SLAM3】在 Ubuntu20.04 上编译 ORM-SLAM3 并使用 D435i 运行测试

【ORB-SLAM3】在 Ubuntu20.04 上编译 ORM-SLAM3 并使用 D435i 运行测试 1 Prerequisites1.1 C11 or C0x Compiler1.2 Pangolin1.3 OpenCV1.4 Eigen3 2 安装 Intel RealSense™ SDK 2.02.1 测试设备2.2 编译源码安装 3 编译 ORB-SLAM34 使用 D435i 运行 ORB-SLAM34.1 运行4.2 运…

Matlab使用教程(持续更新)

1. Matlab Matlab被广泛的应用在数据分析,汽车仿真,机器人以及医学研究等众多方面。 它可以帮助我们理解研究复杂的系统。 在60年代和70年代,计算机使得科学家和工程师完成了以前不可能进行的计算;但是需要懂得计算机编程。 C…

[学习笔记]CNN代码实战

参考资料: 1.https://www.bilibili.com/video/BV1zF411V7xu 2.项目1:基于经典网络架构(resnet)训练图像分类模型(及flask部署) 思维导图

vue3项目初始化

初始化项目newsapp VSCode 打开终端,newsapp项目目录,可自定义 vue create newsapp 有提示“因为在此系统上禁止运行脚本”的话,请执行 set-ExecutionPolicy RemoteSigned 执行后再重复执行vue create newsapp 注意选择Vue 3版本 测试项…

【prompt六】MaPLe: Multi-modal Prompt Learning

1.motivation 最近的CLIP适应方法学习提示作为文本输入,以微调下游任务的CLIP。使用提示来适应CLIP(语言或视觉)的单个分支中的表示是次优的,因为它不允许在下游任务上动态调整两个表示空间的灵活性。在这项工作中,我们提出了针对视觉和语言分支的多模态提示学习(MaPLe),以…

离散数学之范式方法

引子: 对于一个命题,如何判定命题公式为永真式、永假式和可满足的呢或二个命题公式等价。我们学过二种方法: 1,真值表法:对于变元的所有真值指 派,看对应命题公式的真值。2,命题演算方法&#…

Nacos介绍和统一配置管理

Nacos(全称为 Alibaba Cloud Nacos,或简称为 Nacos)是一个开源的分布式服务发现和配置管理系统。它由阿里巴巴集团开发并开源,旨在帮助开发人员简化微服务架构下的服务注册、发现和配置管理。 一、Nacos 提供了以下主要功能&…

NC 现金流量查询 节点 多账簿联查时,根据所选择的列来判断明细和现金流量联查按钮是否可用,根据添加列选择监听事件处理。

NC 现金流量查询 节点 多账簿联查时,根据所选择的列来判断明细和现金流量联查按钮是否可用,如下图的情况: 在现金流量查询界面UI类的initTable(QueryConditionVO conVO)方法中添加列选择监听事件即可,如下: // 列监听…

[Netty实践] 请求响应同步实现

目录 一、介绍 二、依赖引入 三、公共部分实现 四、server端实现 五、client端实现 六、测试 一、介绍 本片文章将实现请求响应同步,什么是请求响应同步呢?就是当我们发起一个请求时,希望能够在一定时间内同步(线程阻塞&am…

【JavaEE初阶系列】——synchronized 的特性(互斥和可重入性)

目录 💻synchronized 的特性 🖥️互斥及使用示例 🚩锁修饰代码块 🚩锁修饰实例方法/静态方法 🎈锁修饰实例方法 🎈锁修饰静态方法 🚩总结 🖥️可重入 🚩死锁的…

AI漫画 角色一致性

具体可以参考油罐我的视频,同名。 1:上传图片 反推提示词 /describe 2:上传图片,获取图片链接,输入提示词 full body shot,Full length,black ninja shoes, Wearing Japanese samurai armor with his zanp…

计算机网络:信道复用技术概念解析

✨✨ 欢迎大家来访Srlua的博文(づ ̄3 ̄)づ╭❤~✨✨ 🌟🌟 欢迎各位亲爱的读者,感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢,在这里我会分享我的知识和经验。&am…

Mongodb入门到入土,安装到实战,外包半年学习的成果

这是我参与「第四届青训营 」笔记创作活动的的第27天,今天主要记录前端进阶必须掌握内容Mongodb数据库,从搭建环境到运行数据库,然后使用MongodB; 一、文章内容 数据库基础知识关系型数据库和非关系型数据库为什么学习Mongodb数据库环境搭建及运行MongodbMongodb命…