带你玩转 Docker 容器技术之镜像

Docker入门流程(创建容器到构建镜像) Docker入门和运行ros系统 阅读详情

镜像是 Docker 容器的基石,容器是镜像的运行实例,有了镜像才能启动容器。为什么我们要讨论镜像的内部结构?

如果只是使用镜像,当然不需要了解,直接通过 docker 命令下载和运行就可以了。

但如果我们想创建自己的镜像,或者想理解 Docker 为什么是轻量级的,就非常有必要学习这部分知识了。

一、最小的镜像

1、运行hello-world镜像

hello-world 是 Docker 官方提供的一个镜像,通常用来验证 Docker 是否安装成功。

我们先通过 docker pull 从 Docker Hub 下载它。

用 docker images 命令查看镜像的信息。

其实我们更关心 hello-world 镜像包含哪些内容。

其实我们更关心 hello-world 镜像包含哪些内容。

2. hello-world镜像内容

Dockerfile 是镜像的描述文件,定义了如何构建Docker镜像。Dockerfile的语法简洁且可读性强,后面我们会专门讨论如何编写Dockerfile。

hello-world 的 Dockerfile 内容如下:

只有短短三条指令。

#1、此镜像是从白手起家,从 0 开始构建。FROM scratch#2、将文件“hello”复制到镜像的根目录。COPY hello /#3、容器启动时,执行 /helloCMD ["/hello"]

镜像 hello-world 中就只有一个可执行文件 “hello”,其功能就是打印出 “Hello from Docker ......” 等信息。

/hello 就是文件系统的全部内容,连最基本的 /bin,/usr, /lib, /dev 都没有。

hello-world 虽然是一个完整的镜像,但它并没有什么实际用途。通常来说,我们希望镜像能提供一个基本的操作系统环境,用户可以根据

需要安装和配置软件。这样的镜像我们称作 base 镜像。我们下一节讨论 base 镜像。

二、base 镜像

1.base镜像含义

base 镜像有两层含义:

1、不依赖其他镜像,从 scratch 构建。2、其他镜像可以之为基础进行扩展。

所以,能称作 base 镜像的通常都是各种 Linux 发行版的 Docker 镜像,比如 Ubuntu, Debian, CentOS 等。

2.base镜像内容

我们以 CentOS 为例考察 base 镜像包含哪些内容。

下载镜像:docker pull centos

查看镜像信息

镜像大小 231MB。等一下!一个 CentOS 才 200MB ?平时我们安装一个 CentOS 至少都有几个 GB,怎么可能才 200MB !

相信这是几乎所有 Docker 初学者都会有的疑问,包括我自己。下面我们来解释这个问题。

Linux 操作系统由内核空间和用户空间组成。如下图所示:

内核空间是kernel,Linux 刚启动时会加载 bootfs 文件系统,之后 bootfs 会被卸载掉。用户空间的文件系统是 rootfs,包含我们熟悉的

/dev, /proc, /bin 等目录。对于 base 镜像来说,底层直接用 Host 的 kernel,自己只需要提供 rootfs 就行了。

而对于一个精简的 OS,rootfs 可以很小,只需要包括最基本的命令、工具和程序库就可以了。相比其他 Linux 发行版,CentOS 的 rootfs

已经算臃肿的了,alpine 还不到 10MB。我们平时安装的 CentOS 除了 rootfs 还会选装很多软件、服务、图形桌面等,需要好几个 GB 就

不足为奇了。下面是 CentOS 镜像的 Dockerfile 的内容:

这里需要说明的是:

不同 Linux 发行版的区别主要就是 rootfs。

比如 Ubuntu 14.04 使用 upstart 管理服务,apt 管理软件包;而 CentOS 7 使用 systemd 和 yum。这些都是用户空间上的区别,

Linux kernel 差别不大。所以 Docker 可以同时支持多种 Linux 镜像,模拟出多种操作系统环境。

上图 Debian 和 BusyBox(一种嵌入式 Linux)上层提供各自的 rootfs,底层共用 Docker Host 的 kernel。

这里需要说明的是:

容器只能使用 Host 的 kernel,并且不能修改。所有容器都共用 host 的 kernel,在容器中没办法对 kernel 升级。如果容器对 kernel 版本有要求(比如应用只能在某个 kernel 版本下运行),则不建议用容器,这种场景虚拟机可能更合适。

下一节我们讨论镜像的分层结构。

三、镜像的分层结构

Docker 支持通过扩展现有镜像,创建新的镜像。

1、镜像分层示例

实际上,Docker Hub 中 99% 的镜像都是通过在 base 镜像中安装和配置需要的软件构建出来的。比如我们现在构建一个新的镜像,Dockerfile 如下:

① 新镜像不再是从 scratch 开始,而是直接在 Debian base 镜像上构建。
② 安装 emacs 编辑器。
③ 安装 apache2。
④ 容器启动时运行 bash。

构建过程如下图所示:

 

可以看到,新镜像是从 base 镜像一层一层叠加生成的。每安装一个软件,就在现有镜像的基础上增加一层。

2、镜像分层好处

问什么 Docker 镜像要采用这种分层结构呢?

最大的一个好处就是 - 共享资源。

比如:有多个镜像都从相同的 base 镜像构建而来,那么 Docker Host 只需在磁盘上保存一份 base 镜像;同时内存中也只需加载一份 base

镜像,就可以为所有容器服务了。而且镜像的每一层都可以被共享,我们将在后面更深入地讨论这个特性。

这时可能就有人会问了:如果多个容器共享一份基础镜像,当某个容器修改了基础镜像的内容,比如 /etc 下的文件,这时其他容器的 /etc

是否也会被修改?

答案是不会!

修改会被限制在单个容器内。

这就是我们接下来要学习的容器 Copy-on-Write 特性。

3、Copy-on-Write 特性

可写的容器层

当容器启动时,一个新的可写层被加载到镜像的顶部。这一层通常被称作“容器层”,“容器层”之下的都叫“镜像层”。

所有对容器的改动 - 无论添加、删除、还是修改文件都只会发生在容器层中。

只有容器层是可写的,容器层下面的所有镜像层都是只读的。

下面我们深入讨论容器层的细节。

镜像层数量可能会很多,所有镜像层会联合在一起组成一个统一的文件系统。如果不同层中有一个相同路径的文件,比如 /a,上层的 /a 会

覆盖下层的 /a,也就是说用户只能访问到上层中的文件 /a。在容器层中,用户看到的是一个叠加之后的文件系统。

添加文件

在容器中创建文件时,新文件被添加到容器层中。

读取文件

在容器中读取某个文件时,Docker 会从上往下依次在各镜像层中查找此文件。一旦找到,打开并读入内存。

修改文件

在容器中修改已存在的文件时,Docker 会从上往下依次在各镜像层中查找此文件。一旦找到,立即将其复制到容器层,然后修改之。

删除文件

在容器中删除文件时,Docker 也是从上往下依次在镜像层中查找此文件。找到后,会在容器层中记录下此删除操作。

只有当需要修改时才复制一份数据,这种特性被称作 Copy-on-Write。可见容器层保存的是镜像变化的部分,不会对镜像本身进行任何修改。

这样就解释了我们前面提出的问题:*容器层记录对镜像的修改,所有镜像层都是只读的,不会被容器修改,所以镜像可以被多个容器共享。

理解了镜像的原理和结构,下一节我们学习如何构建镜像。

四、构建镜像

1、为何要构建镜像

对于 Docker 用户来说,最好的情况是不需要自己创建镜像。几乎所有常用的数据库、中间件、应用软件等都有现成的 Docker 官方镜像或

其他人和组织创建的镜像,我们只需要稍作配置就可以直接使用。

使用现成镜像的好处除了省去自己做镜像的工作量外,更重要的是可以利用前人的经验。特别是使用那些官方镜像,因为 Docker 的工程师

知道如何更好的在容器中运行软件。

当然,某些情况下我们也不得不自己构建镜像,比如:

1\. 找不到现成的镜像,比如自己开发的应用程序。2\. 需要在镜像中加入特定的功能,比如官方镜像几乎都不提供 ssh。

所以本节我们将介绍构建镜像的方法。同时分析构建的过程也能够加深我们对前面镜像分层结构的理解。

2、构建镜像方法

Docker 提供了两种构建镜像的方法:

1\. docker commit 命令2\. Dockerfile 构建文件

3、docker commit构建镜像

docker commit 命令是创建新镜像最直观的方法,其过程包含三个步骤:

1\. 运行容器2\. 修改容器3\. 将容器保存为新的镜像

举个例子:在 ubuntu base 镜像中安装 vi 并保存为新镜像。

1)、第一步:运行容器

-it 参数的作用是以交互模式进入容器,并打开终端。6e2d389d4576 是容器的内部 ID。

2)、第二步:安装 vi

确认 vi 没有安装。开始安装 apt-get install -y vim

3)、第三步:保存新镜像

在新窗口中查看当前运行的容器。

新镜像命名为 ubuntu-with-vi。

执行 docker commit 命令将容器保存为镜像。

新镜像命名为 ubuntu-with-vi。

查看新镜像的属性。

从 size 上看到镜像因为安装了软件而变大了。从新镜像启动容器,验证 vi 已经可以使用。

以上演示了如何用 docker commit 创建新镜像。然而,Docker 并不建议用户通过这种方式构建镜像。原因如下:

1. 这是一种手工创建镜像的方式,容易出错,效率低且可重复性弱。比如要在 debian base 镜像中也加入 vi,还得重复前面的所有步骤。2. 更重要的:使用者并不知道镜像是如何创建出来的,里面是否有恶意程序。也就是说无法对镜像进行审计,存在安全隐患。

既然 docker commit 不是推荐的方法,我们干嘛还要花时间学习呢?

原因是:即便是用 Dockerfile(推荐方法)构建镜像,底层也 docker commit 一层一层构建新镜像的。学习 docker commit 能够帮助我们

更加深入地理解构建过程和镜像的分层结构。

下一节我们学习如何通过 Dockerfile 构建镜像。

五、Dockerfile 构建镜像

Dockerfile 是一个文本文件,记录了镜像构建的所有步骤。

1、Dockerfile 构建镜像

1)创建Dockerfile文件

touch Dockerfile

2)用 Dockerfile 创建上节的 ubuntu-with-vi,其内容则为:

3)构建镜像

docker build -t ubuntu-with-vi-dockerfile . 

ubuntu-with-vi-dockerfile是构建镜像所取的名字

运行 docker build 命令,-t 将新镜像命名为 ubuntu-with-vi-dockerfile,命令末尾的 . 指明 build context 为当前目录。

Docker 默认会从 build context 中查找 Dockerfile 文件,我们也可以通过 -f 参数指定 Dockerfile 的位置。

4)镜像构建成功

通过 docker images 查看镜像信息。

可以看到新镜像已经构建成功,而且大小跟之前docker commit 构建的大小是一样大的。

构建成功

通过 docker images 查看镜像信息。

可以看到新镜像已经构建成功,而且大小跟之前docker commit 构建的大小是一样大的。

建的大小是一样大的。

建的大小是一样大的。

每天5分钟玩转 Docker 容器技术之镜像 镜像是 Docker 容器的基石,容器是镜像的运行实例,有了镜像才能启动容器。为什么我们要讨论镜像的内部结构? 如果只是使用镜像,当然不需要了解,直接通过 docker 命令下载和运行就可以了。 但如果我们想创建自己的镜像,或者想理解 Docker 为什么是轻量级的,就非常有必要学习这部分知识了。 一、最小的镜像 1、运行hello-world镜像 hello-world 是 Docker 官方提供的一个镜像,通常用来验证 Docker 是否安装成功。 我们先通过docker pull从 D.. 阅读详情

相关推荐

玩转Docker容器技术1-6章实验报告

容器生态系统&容器架构 环境选择 容器需要管理工具、runtime 和操作系统,我们的选择如下: 管理工具 - Docker Engine 因为 Docker最流行使用最广泛。 runtime - runc Docker 的默认 runtime 操作系统 - Ubuntu 虽然存在诸如 CoreOS的容器 OS,因考虑到我们目前处于初学阶段,选择大家熟悉的操作系统更为合适。等具备了扎实...

cccxxmo的博客 1742

DockerCompose部署多个镜像

目录 初始DockerCompose 安装DockerCompose Compose部署微服务demo 初始DockerCompose 作用:快速部署多个容器,而无序一个个docker run 介绍: DockerCompose是一个文本文件,里面通过指令定义了每个容器如何运行的 下面是两种方式: 不用端口是因为集群,自己访问就行了,所以端口不需要暴露; version:"3.8" services: mysql: image:mysql:5.7...

weixin_57128596的博客 4897

带你玩转docker:Docker容器概述

容器技术的发展 在过去十年里,围绕计算、存储、网络三大基础服务,围绕敏捷服务和规模处理两大核心诉求,新的概念、模式和工具争相涌现。这些创新的开源技术成果,提高了整个信息产业的生产效率,降低了应用信息技术的门槛让“互联网+”成为可能。 如果说软件定义网络(SDN)和网络功能虚拟化(NFV)让互联网络的虚拟化进入了崭新的阶段,那么容器技术的出现,毫无疑问称得上计算...

afei001 3515

Docker安装及镜像源修改

Docker安装及镜像源修改。

m0_63622279的博客 1万+

海量数据 / Vastbase 深度研究笔记 v3.1

v3.1 重点修订:在 v3.0 审慎版基础上,新增“2026 新变量”章节,纳入 7 亿级定增、HTAP / 多模态时序数据库、G100 V3.0 Build 8 的 3CM+2DN 高可用补强、pgvector / V100 / AI 多模叙事,以及集成服务基因与标准软件 ARR 的拉扯。核心关注点是:Vastbase 能否把 openGauss 生态红利、数据库产品矩阵和行业交付能力,转化为可持续、可复购、低边际成本的标准软件收入。海量不是没有业务基本盘,也不是马上失血致死;客户越多,服务债越大。

喝醉酒的小白 577

Vue3 视频播放器完整指南 – @videojs-player/vue 从入门到精通

全面解析 Vue3 生态中最强大的视频播放解决方案 @videojs-player/vue。从基础安装到高级功能,涵盖自动播放、直播流、字幕支持等核心特性。提供完整的代码示例和最佳实践,助你快速构建专业的视频播放应用。

前端开发-前端技术分享 1426

docker 修改镜像文件

在修改镜像文件之前,需要先创建一个容器,并将镜像文件拷贝到容器中进行修改。在容器的终端中,你可以使用任何你熟悉的编辑器来修改镜像文件。上述命令中,my_container 是容器的名称。执行这个命令后,会进入容器的终端。在完成镜像文件的修改后,需要将容器保存为新的镜像。上述命令中,image_name 是需要修改的镜像的名称。

Moke 2716

python解析通达信dat与blk数据文件【附源码】

本文介绍了一个完整的通达信金融数据解析器项目,该项目攻克了通达信专有二进制文件格式解析的技术难题。项目采用模块化架构,从基础二进制解析到增强数据分类,最终实现智能语义化列名生成,形成完整的数据处理链路。核心技术包括自适应编码检测、智能数据类型推断和基于业务规则的语义化处理,解决了逆向工程、多编码兼容性等挑战。项目成果显著,解析成功率达100%,数据可读性大幅提升,开发效率提高50%,为量化交易、可视化分析等场景提供了可靠数据支持。该方案不仅具备技术创新性,更具有实际工程应用价值,为金融数据分析领域提供了可复

qq_36224726的博客 2690

docker学习(四、修改容器创建新的镜像推送到云上)

学到这里感觉docker跟git很想~~通过docker commit将修改的容器做成新的镜像# 将容器做成新的镜像docker commit -m="提交备注" -a="作者" 容器ID 镜像名称:tag名称。

qq_35716085的博客 1万+

揭秘 Chat Template 如何驱动 AI Agent?以Qwen3为例详解LLM的聊天模板

bos_token: null (没有使用特殊的文档开始符)eos_token<|im_end|>(作为每个对话回合的结束符)pad_token: 对话回合开始<|im_end|>: 对话回合结束非特殊但关键的控制 Token (在词汇表中定义): 包裹模型生成的工具调用请求。: 包裹外部工具返回的执行结果。<think></think>: 包裹模型的内部思考或推理过程。

ljp1919的专栏 1353

奥比中光Dabai深度相机SDK在Ubuntu22.04的兼容性安装指南

本文详细指导如何在Ubuntu22.04系统上安装奥比中光Dabai深度相机的SDK。针对新旧版本不兼容的核心问题,重点推荐使用经过验证的v1.10.18版本SDK,并提供了从系统依赖检查、SDK下载安装、Python环境配置到编译测试的完整步骤,帮助用户成功解决安装难题并实现相机驱动。

j2k3l4的博客 1001

每天5分钟带你玩转 Docker 容器技术之镜像

镜像是 Docker 容器的基石,容器是镜像的运行实例,有了镜像才能启动容器。为什么我们要讨论镜像的内部结构? 如果只是使用镜像,当然不需要了解,直接通过 docker 命令下载和运行就可以了。 但如果我们想创建自己的镜像,或者想理解 Docker 为什么是轻量级的,就非常有必要学习这部分知识了。 一、最小的镜像 1、运行hello-world镜像 hello-world 是 Docker 官方提供的一个镜像,通常用来验证 Docker 是否安装成功。 我们先通过docker pull从 D..

uuuyy_的博客 483

【win11+vs 2017+OpenCV4.5.5+Qt5.12配置】详细安装过程+小问题解决

由于Qt5无法与最新的vs2022兼容,扩展工具中一直显示不可用,所以将vs降级成vs2017。在安装Qt的过程中,会选择安装Qt套件,其中就的MCVS 2017,说明vs2017是与qt兼容的。当然也可以用qt creator这一原生IDE。OpenCV版本目前是最新的4.8.0,使用过程中没有什么问题,但是还是安装低版本大概率避免一些玄学问题。

qq_45306739的博客 3351

最全每天5分钟带你玩转 Docker 容器技术之镜像,从入门到精通的Java进阶学习笔记整理

学习技术是一条慢长而艰苦的道路,不能靠一时激情,也不是熬几天几夜就能学好的,必须养成平时努力学习的习惯。所以:贵在坚持!最后再分享的一些BATJ等大厂20、21年的面试题,把这些技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节,由于篇幅有限,上面只是以图片的形式给大家展示一部分。Mybatis面试专题MySQL面试专题并发编程面试专题本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录。

2401_84002482的博客 754

基于STM32L4XX 、HAL库的DRV8311三相无刷直流电机(BLDC)驱动应用C语言程序设计

是德州仪器(TI)推出的一款针对三相无刷直流(BLDC)电机或永磁同步电机(PMSM)的集成驱动器芯片。:集成了三个半桥MOSFET、门极驱动电路、电荷泵(支持100%占空比)、稳压器以及多种保护电路。:工作电压最高可达,持续输出电流可达,峰值电流可达。:通过引脚直接控制每个半桥的PWM和使能。这种方式需要MCU输出6路信号,控制更灵活。:通过SPI总线配置内部寄存器,仅需PWMA/B/C三路PWM信号即可控制电机。可以读取故障状态、配置参数(如死区时间、电流保护阈值等),是更常用和推荐的方式。

PP_Cottage的博客 556

无人机威胁检测(Hostile Drone Detection)——基于YOLOv10与UI界面的实现

Anti-UAV数据集由多种场景下的无人机视频与图片组成,包含无人机目标的多样化姿态、背景、光照变化,专门用于反无人机检测研究。YOLO(You Only Look Once)系列是当前流行的实时目标检测算法,具有速度快、精度高的特点。网络结构优化:更深更轻的主干网络,提升特征提取能力。检测头改进:多尺度特征融合,更好检测小型目标如无人机。训练技巧:使用自动混合精度训练(AMP)、数据增强、标签平滑等技术。

YOLO 231

【玩转Docker容器 1】Docker的详解及安装

Docker官方网址: https://docs.docker.com/ 英文地址 Docker中文网址: http://www.docker.org.cn/ 中文地址 1.Docker-简介 Docker是基于Go语言实现的云开源项目,诞生于2013年初,最初发起者是dotClouw公司。Docker 自开源后受到广泛的关注和讨论,目前已有多个相关项目,逐断形成了围Docker的生态体系。...

小杰爱吃蛋的博客 1万+

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

玩转Docker

容器是一种轻量级、可移植、自包含的软件打包技术,使应用程序可以在几乎任何地方以相同的方式运行。容器与虚拟机谈到容器,就不得不将它与虚拟机进行对比,因为两者都是为应用提供封装和隔离。容器由两部分构成:应用程序本身、及其依赖(比如应用程序需要的库或者其他软件容器在Host操作系统的用户空间中运行,与操作系统的气压进程隔离,这一点显著区别于虚拟机)。传统的虚拟化技术:目标是创建完整的虚拟机。为了运行应用,除了部署应用本及其依赖,还得安装整个操作系统。

山川湖海* 1745

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

docker,带你玩转docker

软件的打包技术,就是将算乱的多个文件打包为一个整体,打包技术在没有docker容器之前,一直是有这种需求的,docker打包出来的每个软件,称之为docker镜像。可以说整个IT领域,不管是哪个工种,都需要好好学习docker。docker是CS架构的程序,客户端控制服务端来做各种事情。镜像:images,是个压缩包文件,里面存放着安装好的程序。容器:Container,Docker利用容器来运行应用。容器是从镜像创建的运行实例。它可以被启动、开始、停止、删除。每个容器都是相互隔离的、保证安全的平台。

m0_62102520的博客 1092

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

超详细,带你玩转Docker镜像、Docker Hub仓库、镜像的查看、标签、拉取、查找

一、镜像介绍 docker镜像是由文件系统叠加而成,最底端是一个引导文件系统,即bootfs,这很像典型的linux的引导文件系统。docker用户几乎永远不会和引导系统有什么交互。实际上,当一个容器启动后,它会被移到内存中,而引导文件系统则会被卸载,以留出更多的内存共initrd磁盘镜像使用 到目前为止,docker看起来还很像一个典型的linux虚拟化栈。实际上,docker镜像的第二层是root文件系统rootfs,它位于引导文件系统之上 在传统的linux引导过程中,root文件系统会最先以只

董哥的黑板报 2万+

从零开始玩转 Docker:一站式入门指南,带你快速掌握镜像、容器与仓库

上次我们认识了docker,了解了docker的相关概念:镜像,容器,仓库那么这次我们就来上手一下docker,在这之前你需要安装docker到你的机器上面,这次我们就用Windows机器来演示docker,如果你不知道怎么安装,请参考我们先来看一下docker镜像有哪些命令。

编码人生 1445

Sevice Computing:玩转 Docker 容器技术

Sevice Computing:玩转 Docker 容器技术搭建实验环境 搭建实验环境 环境选择 容器需要管理工具、runtime 和操作系统,我们的选择如下: 管理工具 - Docker Engine 因为 Docker 最流行使用最广泛。 runtime - runc Docker 的默认 runtime 操作系统 - Ubuntu 安装 Docker 安装包,允许 ap...

weixin_40377691的博客 675

日常常用的 Docker 命令:轻松玩转容器世界

对于新手来说,Docker 可能看起来有些复杂,但掌握一些常用命令后,你会发现,玩转 Docker 实际上可以非常有趣!在使用这些清理命令时,请务必小心,确保你不需要删除的容器、镜像、卷或网络,以免丢失重要的数据或配置。有时候,你可能需要在正在运行的容器内部执行一些命令,比如进入容器的 Shell。命令,能列出所有可用的镜像。这样,你就能管理自己的镜像库,准备好随时启动容器。这条命令将把你带入容器内部,就像打开了一个小窗户,让你观察和操作内部世界。命令,你可以快速查看当前正在运行的所有容器。

qaz9821的专栏 1082

【玩转Docker容器 4】基于Docker搭建Docker私服,以及如何使用Docker私服详解

1.Nexus是什么 Nexus是一个强大的Maven仓库管理器,它极大地简化了自己内部仓库的维护和外部仓库的访问。利用Nexus你可以只在一个地方就能够完全控制访问 和部署在你所维护仓库中的每个Artifact。我们可以在局域网搭建一个maven私服,用来部署第三方公共构件或者作为远程仓库在该局域网的一个代理。 2.Nexus和Maven私服原理 解释:Nexus就是Maven的私服仓库,一般大...

小杰爱吃蛋的博客 4155

【学习笔记】《每天5分钟玩转Docker容器技术》

【学习笔记】《每天5分钟玩转Docker容器技术》 文章目录【学习笔记】《每天5分钟玩转Docker容器技术》镜像下载加速容器和虚拟机Docker架构DockerfileRUN、CMD和ENTRYPOINTShell与Exec(推荐)attach与execpause / unpause容器删除容器内存限额CPU限额实现容器的底层技术cgroup(Control Group)namespaceMo...

木元心的博客 712
上一篇: 设计模式-桥接模式
下一篇: 重温DDD领域驱动设计
Java_ttcd
博客等级 码龄4年 198粉丝 190原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值