【Docker01】入门

news2024/12/24 11:36:53

目录

概述

Docker平台

Docker可以做什么

快速、一致地交付应用程序

响应式部署和扩展

在同一硬件上运行更多工作负载

Docker架构

Docker守护程序(The Docker daemon)

Docker客户端(The Docker client)

Docker桌面(Docker Desktop)

Docker仓库(Docker registries)

Docker对象(Docker objects)

镜像(Images)

容器(Containers)

docker run命令示例

底层技术 


概述

        Docker是一个用于开发、交付和运行应用程序的开放平台。Docker使我们能够将应用程序与基础设施分离,以便快速交付软件。使用Docker,可以像管理应用程序一样管理基础设施。通过利用Docker的方法快速发送、测试和部署代码,可以显著减少编写代码和在生产中运行代码之间的延迟。

Docker平台

        Docker提供了在一个称为容器的松散隔离环境中打包和运行应用程序的能力。隔离和安全性允许您在给定的主机上同时运行多个容器。容器是轻量级的,包含运行应用程序所需的一切,因此不需要依赖于主机上当前安装的内容。就可以在工作时轻松地共享容器,并确保与您共享的每个人都能获得以相同方式工作的相同容器。

        Docker提供工具和平台来管理容器的生命周期:

  • 使用容器开发应用程序及其支持组件。
  • 容器成为分发和测试应用程序的单元。
  • 准备就绪后,将应用程序部署到生产环境中,作为容器或协调服务。无论您的生产环境是本地数据中心,云提供商还是两者的混合,这都是一样的。

Docker可以做什么

快速、一致地交付应用程序

        Docker允许开发人员使用提供应用程序和服务的本地容器在标准化环境中工作,从而简化了开发生命周期。容器非常适合连续集成和连续交付(CI/CD)工作流。

考虑以下示例场景:

  • 开发人员在本地编写代码,并使用Docker容器与同事共享他们的工作。
  • 他们使用Docker将应用程序推入测试环境,并执行自动化和手动测试。当开发人员发现错误时,他们可以在开发环境中修复它们,并将它们重新部署到测试环境中进行测试和验证。
  • 测试完成后,将修复程序发送给客户就像将更新后的映像推送到生产环境中一样简单。

响应式部署和扩展

        Docker基于容器的平台允许高度可移植的工作负载。Docker容器可以在开发人员的本地笔记本电脑上、数据中心的物理或虚拟机上、云提供商上或混合环境中运行。

        Docker的可移植性和轻量级也使其能够轻松地动态管理工作负载,根据业务需求几乎实时地扩展或拆除应用程序和服务。

在同一硬件上运行更多工作负载

        Docker重量轻、速度快。它为基于虚拟机管理程序的虚拟机提供了一种可行、经济高效的替代方案,因此可以使用更多的服务器容量来实现业务目标。Docker非常适合高密度环境和需要用更少资源做更多事情的中小型部署。

Docker架构

        Docker使用客户端-服务器体系结构。Docker客户端与Docker守护进程进行对话,后者负责构建、运行和分发Docker容器。Docker客户端和守护进程可以在同一系统上运行,也可以将Docker客户端连接到远程Docker守护进程。Docker客户端和守护进程通过UNIX套接字或网络接口使用RESTAPI进行通信。另一个Docker客户端是Docker Compose,它允许您使用由一组容器组成的应用程序。

Docker守护程序(The Docker daemon)

        Docker守护进程(dockerd)监听Docker API请求并管理Docker对象,如镜像、容器、网络和卷。守护进程还可以与其他守护进程通信,以管理Docker服务。

Docker客户端(The Docker client)

        Docker客户端(Docker)是许多Docker用户与Docker交互的主要方式。当您使用诸如docker run之类的命令时,客户端会将这些命令发送给dockerd,后者会执行这些命令。docker命令使用docker API。Docker客户端可以与多个守护进程进行通信。

Docker桌面(Docker Desktop)

        Docker Desktop是一款适用于Mac、Windows或Linux环境的易于安装的应用程序,使您能够构建和共享容器化的应用程序和微服务。Docker Desktop包括Docker守护进程(dockerd)、Docker客户端(Docker)、Docker-Compose、Docker Content Trust、Kubernetes和Credential Helper。

Docker仓库(Docker registries)

        Docker仓库存储Docker镜像。Docker Hub是一个任何人都可以使用的公共仓库,默认情况下,Docker被配置为在Docker Hub上查找镜像。您甚至可以运行自己的专用仓库。当使用docker pull或docker run命令时,所需的镜像将从配置的仓库中提取。当使用docker push命令时,镜像将被推送到配置的仓库中。

Docker对象(Docker objects)

        当使用Docker时,正在创建和使用镜像、容器、网络、卷、插件和其他对象。本节简要概述了其中一些对象。

镜像(Images)

        镜像是一个只读模板,带有创建Docker容器的说明。通常,一个镜像是基于另一个镜像,并进行一些额外的自定义。例如,可以构建一个基于ubuntu镜像的镜像,但安装Apache web服务器和应用程序,以及运行应用程序所需的配置详细信息。可以创建自己的镜像,也可以只使用他人创建并在仓库中发布的镜像。要构建自己的镜像,可以创建一个Dockerfile,该文件使用简单的语法来定义创建镜像和运行镜像所需的步骤。Dockerfile中的每个指令都会在镜像中创建一个层。当更改Dockerfile并重建镜像时,只会重建那些已更改的层。与其他虚拟化技术相比,这是使镜像如此轻便、小巧和快速的部分原因。

容器(Containers)

        容器是镜像的可运行实例。可以使用Docker API或CLI创建、启动、停止、移动或删除容器。可以将容器连接到一个或多个网络,将存储连接到容器,甚至可以根据容器的当前状态创建新镜像。默认情况下,容器与其他容器及其主机的隔离相对较好。可以控制容器的网络、存储或其他底层子系统与其他容器或主机的隔离程度。容器由其镜像以及创建或启动时提供给它的任何配置选项定义。删除容器后,未存储在永久存储中的对其状态的任何更改都将消失。

docker run命令示例

        以下命令运行一个ubuntu容器,以交互方式连接到本地命令行会话,并运行/bin/bash。

docker run -i -t ubuntu /bin/bash

        当您运行此命令时,会发生以下情况(假设使用的是默认仓库配置):

  1. 如果在本地没有ubuntu映像,Docker会从配置的仓库中提取它,就像手动运行docker pull ubuntu一样。
  2. Docker创建了一个新的容器,就像手动运行了一个Docker容器创建命令一样。
  3. Docker为容器分配一个读写文件系统,作为容器的最后一层。这允许运行中的容器在其本地文件系统中创建或修改文件和目录。
  4. Docker创建了一个网络接口,将容器连接到默认网络,因为没有指定任何网络选项。这包括为容器分配一个IP地址。默认情况下,容器可以使用主机的网络连接连接到外部网络。
  5. Docker启动容器并执行/bin/bash。因为容器以交互方式运行并连接到您的终端(由于-i和-t标志),所以可以在输出记录到终端时使用键盘提供输入。
  6. 当键入exit以终止/bin/bash命令时,容器会停止,但不会被删除。可以重新启动或删除它。

底层技术 

        Docker是用Go编程语言编写的,并利用Linux内核的几个特性来提供其功能。Docker使用一种名为名称空间的技术来提供称为容器的隔离工作空间。当你运行一个容器时,Docker会为这个容器创建一组名称空间。

        这些名称空间提供了一层隔离。容器的每个方面都在一个单独的命名空间中运行,其访问权限仅限于该命名空间。 

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

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

相关文章

KingSCADA3.8保姆级安装教程

大家好,我是雷工! 最近开始学习KingSCADA,今天这篇详细记录安装KingSCADA3.8的过程。 首先下载需要的安装版本,此处以从官网下载的最新版本KingSCADA3.8为例,双击:Setup.exe ; 一、安装主程序 1、点击“…

电脑端(PC)按键精灵2013——入门小白 详细 教程

电脑端(PC)按键精灵——1.入门详细说明: 本篇幅介绍的按键精灵的下载和安装;如果已经安装则直接看下面命令内容 电脑端(PC)按键精灵——2.键盘命令和鼠标命令 电脑端(PC)按键精灵——3其他命令 电脑端(PC)按键精灵——4.控制命令(判断、循…

使用华为云免费资源训练Paddle UIE模型

一、创建虚拟环境 好习惯,首先创建单独的运行环境 conda create -n uie python3.10.9 conda activate uie 二、安装paddle框架及paddlenlp 2.1 参考官方文档安装paddle 开始使用_飞桨-源于产业实践的开源深度学习平台 首先查看自己服务器cuda版本,…

redis_5种数据结构及其底层实现原理详解

1、 redis中的数据结构 Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(无序集合)及zset(有序集合) 在秒杀项目里…

LED显示屏有色差要怎么处理?

LED显示屏在销售的时候不可避免的会产生尾货。这些尾货由于是不同批次的产品,亮度不可避免的有差异,拼装之后显示效果不佳,这时候就必须使用逐点校正技术。你知道LED显示屏的亮度和对比度是如何调节的吗? 消除差异逐点校正是一项用…

winForm常用控件

一般控件 Label TextBox:文本框 Button RadioButton CheckBox ComboBox:下拉框 CheckedListBox:带复选框的列表项 DateTimePicker:日期时间选择控件 ListBox:列表项 ListView:以五种不同视图显示项的集合 MaskedTextBox:格式化文本框 MonthCalendar:月历 NumberIcUp…

选择Zoho CRM的三大原因

上周,美国IT杂志PCMag发布了关于CRM系统的新评价,Salesforce Sales Cloud Lightning Professional、Zoho CRM、HubSpot CRM、Zendesk、SugarCRM等多个CRM品牌上榜。借此机会,我们来说说Zoho CRM为什么值得推荐? PCMag&#xff0c…

答对这道面试题,直接原地入职:说一下公司常用MySQL分库分表方案

一、数据库瓶颈 不管是IO瓶颈,还是CPU瓶颈,最终都会导致数据库的活跃连接数增加,进而逼近甚至达到数据库可承载活跃连接数的阈值。在业务Service来看就是,可用数据库连接少甚至无连接可用。接下来就可以想象了吧(并发…

XML概述和编写文件

XML概述 XML是一种可扩展的标记语言 标记语言&#xff1a;通过标签来描述数据的一门语言&#xff08;标签有时我们也将其称之为元素&#xff09; 可扩展&#xff1a;标签的名字是可以自己定义的 语法规则示例代码是由一对尖括号和一组合法标识符组成<student>在xml标…

CDN在流媒体的如何内容交付

流媒体是当今最大的趋势之一&#xff0c;这是一种全新的内容消费方式&#xff0c;涉及特定的技术和挑战&#xff0c;视频是目前互联网上要求最多的内容格式&#xff0c;使用CDN分发视频需要与分发其他内容不同。 视频作为内容的本质是不同的&#xff0c;因为用户通常希望立即观…

机器学习入门实例-MNIST手写数据集-二分分类效果评估

接上文的Binary Classifier&#xff0c;将数据分成“是2”和“非2”两类。 Performance Measures 分类效果评价方法 Accuracy&#xff08;准确性&#xff09; y_train_2 (y_train 2) ... from sklearn.linear_model import SGDClassifier sgd_clf SGDClassifier(random_s…

连锁店销售管理系统有哪些功能?应该如何选购?

不管是直营还是加盟&#xff0c;想要实现门店的精细化管理&#xff0c;把不同门店的业绩做好&#xff0c;离不开连锁店销售管理系统的支持。 一款真正能够为连锁店经营带来帮助的连锁店销售管理系统应该具备哪些基本功能&#xff0c;以及选择连锁店销售管理系统时有哪些常见的问…

【科研工具】Zotero实现自动翻译

科研党基本都用过Zotero吧&#xff0c;方便文件管理和做笔记。我常使用的一款插件&#xff0c;可以实现paper英文内容的自动翻译为中文&#xff0c;非常简单、好用&#xff0c;现推荐给大家。 目录 一、下载zotero-pdf-translate插件 1.1 登录GitHub 1.2 找到.xpi文件并下载…

java 拼接字符串的方法

1.拼接字符串的方法&#xff0c;先要将字符串转化为数字类型&#xff0c;再根据需要拼接。这样可以避免直接拼接导致的错误。 2.将字符串转化为数字类型&#xff0c;这个就是一个循环。可以使用循环的方法&#xff0c;但是循环次数不宜太多&#xff0c;否则容易出错。 3.可以使…

微信小程序登陆(全流程-前后端)

环境要求 1.注册一个小程序 2.微信开发者工具 3.idea(springboot) 目录 项目准备 用户登陆 前端开发&#xff0c;传递code index.wxss index.js 后端编写&#xff0c;调用微信接口&#xff0c;获取openId 现在用户的所有信息都拿不到&#xff0c;只能用户自己填写 其…

MySQL的停止与启动、与客户端的连接(参见黑马程序员)

1、启动与停止 &#xff08;1&#xff09;Windowsr 输入 services.msc 在其中找MySQL并点鼠标右键&#xff0c;即可设定是停止还是启动 &#xff08;2&#xff09;以管理员身份打开cmd命令 &#xff08;具体步骤&#xff1a;左下角点搜索输入cmd&#xff0c;在出现的选项里…

数字温湿度传感器DHT11

今天我们来说说一个新的模块DHT11——温湿度传感器 顾名思义&#xff0c;通过开发DHT11能够进行温湿度检测&#xff0c;是一个非常实用且有趣的模块&#xff0c;下面我们先对DHT11基本信息做一个了解&#xff0c;然后进行开发。 DHT11的优点&#xff1a; ►相对湿度和温度测…

算法篇——N个数之和大集合(js版)

1.两数之和 给定一个整数数组 nums 和一个整数目标值 target&#xff0c;请你在该数组中找出 和为目标值 target 的那 两个 整数&#xff0c;并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是&#xff0c;数组中同一个元素在答案里不能重复出现。 你可以按…

如何招生?一文教你高职院校有效的招生技巧

生源&#xff0c;是每一所高校的生存之本和生命线。 近几年招生宣传工作作为高职院校招生工作中的重要环节之一&#xff0c;具有政策性强&#xff0c;涉及面广&#xff0c;工作量大等特点&#xff0c;直接关系到学校可持续发展问题。 随着新媒体时代的发展&#xff0c;高职院…

炫酷的3DCSS卡片样式

先效果图展示&#xff1a; 再上代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title><style>*,*::after,*::before {margin: 0;padding: 0;box-sizing: bord…