剖析Docker(简介与常用命令)

全方位剖析Docker:架构、原理与实践 阅读详情

一.概述

Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。
Docker的英文本意是“搬运工”,在程序员的世界里,Docker搬运的是集装箱(Container),集装箱里装的是任意类型的App,开发者通过Docker可以将App变成一种标准化的、可移植的、自管理的组件,可以在任何主流系统中开发、调试和运行。说白了,docker是一种用了新颖方式实现的轻量级虚拟机,类似于VM,但是在原理和应用上和VM的差别还是很大的.并且docker的专业叫法是应用容器(Application Container)。

一个完整的Docker有以下几个部分组成:

dockerClien       #客户端
Docker Daemon     #守护进程
Docker Image      #镜像
DockerContainer   #容器

二.基本概念

Docker包括三个基本概念:
      镜像(Image)
      容器(Container)
      仓库(Repository)

1.镜像

Docker镜像是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等) 。
镜像不包含任何动态数据,其内容在构建之后也不会被改变。镜像构建时,会一层层构建,前一层是后一层的基础。每一层构建完就不会再发生改变,后一层上的任何改变只发生在自己这一层。
当新建一层时,之前的那一层就已经成为了镜像层,运行时是自下而上的,所以结果肯定会包含上一层所执行的结果,因为你对之前的镜像层没有进行插入操作,就只是在往上叠加,所以除了现在这层之外的所有层都是一个cache,执行起来比较快。
当你只想执行这一层而且不想要之前某一层的结果时,可以在Dockerfile里边进行修改删掉这一层的run,但是注意这个cache就被破坏了,需要重新执行得到一个新的cache,但是对于结果没有影响,就是比之前慢一点,因为要重新生成cache。

2.容器

个人对于镜像(Image)和容器(Container)的理解,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。
容器可以被创建、启动、停止、删除、暂停等。容器的实质是进程,但与直接在宿主执行的进程不同,容器进程运行于属于自己的独立的命名空间。
因此容器可以拥有自己的root文件系统、自己的网络配置、自己的进程空间,甚至自己的用户 ID 空间。容器内的进程是运行在一个隔离的环境里,
使用起来,就好像是在一个独立于宿主的系统下操作一样。这种特性使得容器封装的应用比直接在宿主运行更加安全。

3.仓库

镜像构建完成后,可以很容易的在当前宿主上运行,但是,如果需要在其它服务器上使用这个镜像,我们就需要一个集中的存储、分发镜像的服务,
Docker Registry 就是这样的服务。一个 Docker Registry 中可以包含多个仓库(Repository);每个仓库可以包含多个标签(Tag);每个标签对应一个镜像。

三.基础命令

1.docker的启动、停止、重启

systemctl start docker        #启动docker服务     
service docker start          
systemctl stop docker         #关闭docker服务 
service docker stop  
systemctl restart  docker     #重启docker服务
service docker restart       
systemctl daemon-reload       #重载守护进程 
chkconfig docker on           #开机自启docker

2.容器的管理

docker run -it --name vm1 ubuntu bash   #创建并运行一个新的容器 	   			(run=create+start)    -it 表示交互式
docker run -d  --name vm1 nginx         #创建并运行一个新的容器;-d表示打入后台
docker info                             #显示docker系统信息,包括镜像和容器数等
docker version                          #查看docker容器版本  
docker search  ...                      #搜索符合条件的镜像
docker ps -a                            #查看所有容器状态
docker ps                               #查看正在运行的容器进程
docker pull nginx                       #拉取镜像
docker push                             #将镜像推送至远程仓库
docker history nginx                    #查看指定镜像的创建历史
docker attach vm1                       #连接容器
docker top vm1                          #查看容器进程
docker logs vm1                         #查看容器指令输出; -f表示可以实时查看
docker inspect vm1                      #查看容器的参数(获取容器元数据)
docker stats vm1                        #查看容器资源使用率
docker diff vm1                         #查看容器修改
docker start vm1                        #启动容器
docker stop vm1                         #停止容器
docker restart vm1                      #重启容器
docker kill vm1                         #强制杀死容器
docker pause vm1                        #暂停容器
docker unpause vm1                      #恢复容器
docker rm vm1                           #删除容器; -f表示强制删除
docker export vm1 > vm1.tar             #导出容器
docker import vm1.tar image             #导入容器为镜像image

3.镜像管理
镜像用来创建容器,是容器的只读模板,默认可以从 docker hub 上下载。,每次创建新的镜像都会在父镜像上构建一个增量的层,基于 AUFS 技术。

docker search                      #查询镜像
docker pull      				   #拉取镜像
docker push      			       #推送镜像
docker inspect    				   #查看镜像详情
docker images     				   #列出本地已有的所有镜像
docker load -i ubuntu.tar          #导入镜像
docker commit                      #更新镜像
docker rmi        				   #删除镜像
docker build      			       #创建镜像
最小 Docker 镜像 hello-world 剖析 开始学习 Docker 的同学基本上都是按照官方的 guide 来安装,之后要测试是否已经安装成功,官方会让你 pull 一个 hello-world 示例镜像下来并运行,如下命令: guohl@ghl-MBP ⮀ ~ ⮀ docker pull hello-world 31cbccb51277: Pull complete e45a5af57b00: Pull complete 511136ea3 阅读详情

相关推荐

Docker 从入门到实践系列三 - Docker 常用命令,netty源码剖析与实战笔记

镜像删除 容器命令 搜索镜像 下载镜像 运行容器 端口映射 启动做端口映射的容器 端口映射格式 查看端口映射 小结 查看容器 停止容器 启动容器 重启容器 删除容器 其他重要命令 查看容器日志 连接到正在运行容器 在运行的容器中执行命令 查看容器中正在运行进程 查看容器内部细节 容器和宿主机互相拷贝文件 更多操作命令 常用命令小结 []( )帮助命令 查看docker版本 docker vers..

m0_63174420的博客 531

万字总结!Docker简介及底层关键技术剖析

本文对Docker进行了详细介绍,对其与LXC、VM的区别做了对比说明,又对docker的关键组件镜像、容器、厂库做了介绍,最后对docker的关键底层技术命名空间、控制组、 UnionFS及网络和存储做了详细剖析。

slipegg的博客 2530

docker logs 实现剖析

Docker完全可以轻易构建用户的应用,即为 build;Docker还可以将应用快速分发,即为 ship;最后,Docker依然有能力秒级启动应用,即为 run。Build,Ship,Run,简单的3步,分分钟为 DevOps 创建了管理应用生命周期的捷径。应用是运行起来了,应用运行后,运行状态相信是工程师最关心的点。这一点,Docker如何帮工程师排忧解难呢?想知道应用是否仍在运行?「docke

木精灵的技术博客 6911

剖析Docker镜像原理

镜像的本质是什么?Docker 中一个 Ubuntu 镜像为什么只有一百多兆,而一个 Ubuntu 操作系统的 iso 文件要好几个G?在开启分享之前先分享一个前提知识。Linux 文件系统主要由boofts 和 rootfs两部分组成,其中bootfs:包含bootloader(引导加载程序)和kernel(内核)rootfs:root 文件系统,包含的 Linux系统中的 /dev、/proc、/bin、/etc 等标准目录和文件。

小曾同学的博客 1957

Renesas:定时器输入捕获

一、PWM输入捕获 1、Smart Configurator配置 注意:在使用前,需要使能对应的定时器!否侧无法正常进行输入捕获! 2、脉冲宽度的获取 如何区分高低电平的脉冲宽度:最常用的方法就是在触发中断后,判断IO口的高低电平,来确认是上升沿触发的中断还是下降沿触发的中断。 若无法进入中断,可查看:Renesas:配置中断的常规流程 (1)中断方式(Smart Configurator生成的代码) #pragma interrupt r_Config_TAUB0_0_i...

不吃鱼的猫的博客 2479

2025年第十六届蓝桥杯省赛C/C++大学B组 个人题解

也是写了写部分题解,朱波也是狠狠水了个省二┭┮﹏┭┮,毕竟许多算法知识没怎么学。

2301_80173664的博客 2431

【云原生•容器】Docker架构剖析,它还是你认识的那个Docker吗?(下)

【云原生•容器】Docker架构剖析,它还是之前认识的那个Docker吗?CRI从上文《Docker架构剖析,它还是之前认识的那个Docker吗?(上)》可以看到OCI规范提出目的是Google等科技大厂将容器运行时和镜像的实现从 Docker 项目中完全剥离出来,避免火热的容器技术被垄断在这家初出茅庐的Docker公司手里。后来Google又顺势退出kubernetes项目,在容器技术基本被Do...

god_86的专栏 1175

VINS技术路线与代码详解

VINS技术路线 写在前面:本文整和自己的思路,希望对学习VINS或者VIO的同学有所帮助,如果你觉得文章写的对你的理解有一点帮助,可以推荐给周围的小伙伴们,当然,如果你有任何问题想要交流,欢迎随时探讨。话不多说,下面上正文。 VINS代码地址:https://github.com/HKUST-Aerial-Robotics/VINS-Mono 参考文档:1.VINS-Mono A R...

wangshuailpp的博客 7万+

长文剖析 Docker 核心原理:从虚拟化到容器化,彻底搞懂 Docker 架构与基石

哈喽,大家好啊。在日常的 Java 后端开发中,相信各位对 Docker 这个词已经耳熟能详了。无论是微服务部署、环境搭建(DevOps / CI/CD),还是本地开发“一次构建,随处运行”,Docker 早已渗透到我们工作的方方面面。但你是否真的理解它背后的运作逻辑?为什么说它是继 JVM 之后又一次伟大的“虚拟化”革命?它和传统的 VM 到底有何区别?

2301_81073317的博客 1245

DeepSeek Harness接入QQ实战:把DSH变成赛博群友

大模型应用正从单机问答走向多平台集成,如何将模型能力嵌入即时通讯工具成为工程实践的热点。消息接入、会话管理、插件扩展是构建智能群聊机器人的核心三要素。DeepSeek Harness(DSH)作为一款模型会话工作流管理工具,凭借多会话管理、模型调用编排以及灵活的插件机制,能够在QQ群聊场景中实现“接收消息→模型生成→回复推送”的完整闭环。本文从基础概念切入,详解DSH接入QQ的两种实现路线——外部API转发与原生插件适配,覆盖环境准备、启动调试、接口调用与性能观察,并给出常见问题排查清单。无论是本地AI助理

weixin_27427619的博客 1860

【WorkBuddy专栏52】Codex与WorkBuddy生态适配、用户争夺与未来走向(下)

【WorkBuddy专栏52】Codex与WorkBuddy在中国大陆的发展——生态适配、用户争夺与未来走向(下)

AI人人懂 678

大数据Flink简介与架构剖析并搭建基础运行环境

Apache Flink 是一个框架和分布式处理引擎,用于在无边界和有边界数据流上进行有状态的计算。Flink 能在所有常见集群环境中运行,并能以内存速度和任意规模进行计算。

勤于笔记,成于点滴。 1821

工业级实战:C#上位机集成YOLO实现多目标跟踪(含数据库存储+报表导出)

推理核心:ONNX Runtime实现C#直接推理YOLO模型,GPU优先+CPU降级适配工业机;跟踪核心:SORT算法轻量级实现多目标跟踪,保证工业场景实时性与稳定性;数据核心:MySQL存储+本地缓存,Excel报表标准化导出,满足工业数据追溯与质检需求;部署核心:模型优化、GPU加速、开机自启,保证工业级7x24小时运行。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 474

Docker简介以及构架剖析

Docker简介Docker是2013发起的一个项目,早在2013年,Docker自诞生起,就是整个技术界的明星项目,当时我还在上海实习,就在各种技术媒体上看到了Docker的介绍文章,很多技术媒体宣称docker是一项技术突破,并且是一次技术革命,可惜当时由于本身是一个Android Framework开发者,眼界很低,对于这种OS虚拟化技术有点不屑一顾,而今转后台后才发现这项技术的重要性Doc...

从放弃到开始 329

基于YOLOv10的微小目标检测,多头检测器提升小目标检测精度

引入多头检测器助力YOLOv10,暴力提升小目标检测性能

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 2569

Python爬虫实战:利用Selenium与反反爬技术高效爬取企查查工商信息

本文将详细介绍如何使用Python最新爬虫技术(包括Selenium、Playwright、智能代理池等)爬取企查查工商信息数据。文章包含完整的代码实现、反反爬策略、数据解析与存储方案,以及法律合规性讨论,共计约8000字。企查查作为国内领先的企业信息查询平台,收录了超过2亿家企业的工商信息、司法信息、知识产权等数据。这些数据对于市场分析、商业决策等具有重要价值。法律边界提示禁止大规模爬取导致服务器过载不得绕过付费接口获取数据数据使用需遵守《个人信息保护法》商业用途需获得授权。

2201_76125261的博客 2236

Docker基础篇03:Docker常用命令

结合我们Git的学习心得,大家猜猜是否会有docker commit /docker push??【所有命令示意图】命令英文描述中文描述attach当前 shell 下 attach 连接指定运行镜像build通过 Dockerfile 定制镜像commit提交当前容器为新的镜像cp从容器中拷贝指定文件或者目录到宿主机中create创建一个新的容器,同 run,但不启动容器diff查看 docker 容器变化events从 docker 服务获取容器实时事件exec。

wangzhilong1996的博客 1105

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

【云原生•容器】Docker架构剖析,它还是从前那个Docker吗?(上)

【云原生•容器】Docker架构剖析,它还是从前那个Docker吗?Docker架构Docker采用client/server架构,客户端向服务器发送请求,服务器负责构建、运行和分发容器:Docker架构说明:我们日常使用各种docker命令,如docker run、docker pull等,其实就是在使用Docker客户端(Docker CLI);客户端将用户输入指令解析发送到docker后端服...

god_86的专栏 1108

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

【云原生】Docker 常用命令使用

docker infoDocker Hub 是由Docker公司负责维护的公共注册中心,包含大量的容器镜像,Docker工具默认公共镜像下载镜像地址 https://hub.docker.com配置镜像加速器和harbor 仓库地址

康师傅没有眼泪 1679

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Docker 与 Containerd 交互机制简单剖析

Docker 与 Containerd 交互机制简单剖析

虽非技冠群英首,愿与同道共长歌; 大鹏一日同风起,扶摇直上九万里; 954

深入剖析Flannel-简介

随着docker容器化兴起,云计算面对的挑战越来越大,例如:网络管理、存储等。一个数据中心很容易搞出成百上千个容器,这么多的容器我们需要如何管理呢?今天来介绍的flannel就是为了解决网络问题。 一、网络管理方案 目前使用最多的解决方案有两种:直接路由和overlay network。具体差异如下:   特点 代表 直接路由 采用直接路由的方式,这种方式性能损耗最低,...

程序员的世界 2万+

剖析 Docker Swarm 操作对原有容器端口影响

命名空间变更后,就如同进入一个全新且陌生的网络环境,端口失效在所难免。通过对上述各因素的详细剖析可知,与操作绝非孤立地改变节点的某一特性,而是从网络配置、服务发现、DNS 以及资源分配等多维度重塑节点运行环境。这些深层次变革在带来集群强大功能与高效管理的同时,也不可避免地对原有的容器端口映射造成冲击,致使端口失效。唯有深入理解这些内在原理,才能在遭遇问题时精准施策,保障 Docker Swarm 集群稳定运行。

qq_40189664的博客 1108

揭秘Docker底层魔法:容器化技术的深度剖析

在当今快速发展的云计算和大数据领域,容器化技术以其高效、灵活和轻量级的特点,迅速成为了开发者们炙手可热的选择。而Docker,作为容器化技术的领军者,更是凭借其卓越的性能和丰富的功能,赢得了全球范围内的广泛关注和认可。然而,Docker的成功并非偶然。其背后所蕴含的底层原理和技术实现,才是支撑其高效运行和广泛应用的关键所在。这些原理涉及到操作系统的内核机制、虚拟化技术、进程管理、文件系统等多个方面,是计算机科学领域中的深奥知识。

xyyy060908的博客 1462

Docker实战06|深入剖析Docker Run命令

Linux下的/proc文件系统是由内核提供的,它其实不是一个真正的文件系统,只包含了系统运行时的信息(比如系统内存、mount设备信息、一些硬件配直等),它只存在于内存中,而不占用外存空间。它以文件系统的形式,为访问内核数据的操作提供接口。实际上,很多系统工具都是简单地去读取这个文件系统的某个文件内容,比如lsmod,其实就是cat /proc/modules。当遍历这个目录的时候,会发现很多数字,这些都是为每个进程创建的空间,数字就是它们的PID。

程序员溪昂 2068

组件组成:剖析 Docker 组件作用及其底层工作原理

我简单介绍了 Docker 架构的形成,相信你已经对 Docker 的架构有了一个整体的认知。这一讲我将带你深入剖析 Docker 的各个组件的作用及其底层的实现原理。 首先我们来回顾一下 Docker 的组件构成。 Docker 的组件构成 Docker 整体架构采用 C/S(客户端 / 服务器)模式,主要由客户端和服务端两大部分组成。客户端负责发送操作指令,服务端负责接收和处理指令。客户端和服务端通信有多种方式,即可以在同一台机器上通过UNIX套接字通信,也可以通过网络连接远程通信。 .

小楼一夜听春雨,深巷明朝卖杏花 2302

docker 简介

Docker是一种遵从Apache2.0协议开源的Linux容器管理解决方案,它通过进程和进程通信技术对操作系统的文件资源和网络的进行隔离,实现了包含文件资源、系统资源(shell环境等)以及网络资源的容器创建和管理。每一个容器都有一个唯一的进程,当该进程结束的时候,容器也会完全的停止。 其他信息 Go语言编写 适用于Linux平台(仅适用) Docker 官网:http://www.doc...

john春风 268
上一篇: zabbix监控之zabbix-agent被动变为主动
下一篇: 基于docker images 搭建2048游戏与部署nginx服务
小杨118709
博客等级 码龄8年 141粉丝 138原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值