【Docker系列一】Docker 简介

news2025/3/24 11:23:18

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。
img

  • 推荐:kwan 的首页,持续学习,不断总结,共同进步,活到老学到老
  • 导航
    • 檀越剑指大厂系列:全面总结 java 核心技术,jvm,并发编程 redis,kafka,Spring,微服务等
    • 常用开发工具系列:常用的开发工具,IDEA,Mac,Alfred,Git,typora 等
    • 数据库系列:详细总结了常用数据库 mysql 技术点,以及工作中遇到的 mysql 问题等
    • 新空间代码工作室:提供各种软件服务,承接各种毕业设计,毕业论文等
    • 懒人运维系列:总结好用的命令,解放双手不香吗?能用一个命令完成绝不用两个操作
    • 数据结构与算法系列:总结数据结构和算法,不同类型针对性训练,提升编程思维,剑指大厂

非常期待和您一起在这个小小的网络世界里共同探索、学习和成长。💝💝💝 ✨✨ 欢迎订阅本专栏 ✨✨

博客目录

    • Docker 是什么
    • Docker 的优势
      • 1. 环境一致性
      • 2. 轻量级和高效
      • 3. 快速部署和扩展
      • 4. 隔离性和安全性
      • 5. 生态系统和社区支持
    • Docker 的应用场景
      • 1. 微服务架构
      • 2. 持续集成和持续部署(CI/CD)
      • 3. 开发环境标准化
      • 4. 多租户应用
      • 5. 云原生应用
    • Docker 的安装与配置
      • 1. 安装 Docker
      • 2. 配置 Docker
      • 3. 使用 Docker
    • 总结

Docker 是什么

Docker 是一种开源的容器化平台,旨在简化应用程序的开发、部署和运行。它通过将应用程序及其依赖项打包到一个轻量级的容器中,使得应用程序可以在任何环境中一致地运行。Docker 的核心思想是“一次构建,随处运行”,这意味着开发者可以在本地开发环境中构建和测试应用程序,然后将其部署到生产环境中,而无需担心环境差异带来的问题。

Docker 容器与传统的虚拟机(VM)有所不同。虚拟机通过虚拟化硬件来运行完整的操作系统,而 Docker 容器则共享宿主机的操作系统内核,只包含应用程序及其依赖项。这使得 Docker 容器更加轻量级、启动更快,并且资源利用率更高。
在这里插入图片描述

Docker 的优势

1. 环境一致性

Docker 容器确保了开发、测试和生产环境的一致性。开发者可以在本地构建和测试应用程序,然后将其部署到任何支持 Docker 的环境中,而无需担心环境差异导致的兼容性问题。这大大减少了“在我机器上能运行”的问题。

2. 轻量级和高效

Docker 容器共享宿主机的操作系统内核,因此它们比传统的虚拟机更加轻量级。容器的启动时间通常在几秒钟内,而虚拟机可能需要几分钟。此外,Docker 容器占用的磁盘空间和内存更少,使得在同一台物理机上可以运行更多的容器。

3. 快速部署和扩展

Docker 容器可以快速启动和停止,使得应用程序的部署和扩展变得更加高效。通过使用 Docker Compose 或 Kubernetes 等工具,可以轻松地管理多个容器的部署和扩展,满足高并发和大规模应用的需求。

4. 隔离性和安全性

Docker 容器提供了进程级别的隔离,每个容器都运行在独立的环境中,互不干扰。这种隔离性不仅提高了应用程序的安全性,还使得在同一台机器上运行多个应用程序变得更加容易。

5. 生态系统和社区支持

Docker 拥有庞大的生态系统和活跃的社区支持。Docker Hub 是一个公共的镜像仓库,开发者可以在其中找到各种预构建的镜像,如数据库、Web 服务器、编程语言环境等。此外,Docker 与许多流行的开发工具和平台集成,如 Jenkins、GitLab、Kubernetes 等,进一步扩展了其应用场景。
在这里插入图片描述

Docker 的应用场景

1. 微服务架构

Docker 容器非常适合微服务架构。在微服务架构中,应用程序被拆分为多个独立的服务,每个服务都可以独立开发、部署和扩展。Docker 容器为每个微服务提供了一个独立的运行环境,使得微服务之间的依赖关系更加清晰,部署和扩展更加灵活。

2. 持续集成和持续部署(CI/CD)

Docker 容器可以无缝集成到 CI/CD 管道中。开发者可以在本地构建和测试应用程序,然后将其打包成 Docker 镜像,并通过 CI/CD 工具自动部署到测试环境和生产环境。这大大加快了软件交付的速度,并减少了人为错误。

3. 开发环境标准化

Docker 容器可以帮助团队标准化开发环境。开发者可以使用相同的 Docker 镜像来构建和测试应用程序,确保每个团队成员都在相同的环境中工作。这减少了因环境差异导致的问题,并提高了开发效率。

4. 多租户应用

Docker 容器可以为多租户应用提供隔离的运行环境。每个租户的应用可以运行在独立的容器中,确保数据和应用的安全性和隔离性。这对于 SaaS(软件即服务)应用尤其重要。

5. 云原生应用

Docker 容器是云原生应用的核心技术之一。云原生应用通常采用微服务架构,并使用容器化技术进行部署和管理。Docker 容器与 Kubernetes 等容器编排工具结合,可以轻松地在云环境中部署、扩展和管理应用。

Docker 的安装与配置

1. 安装 Docker

Docker 支持多种操作系统,包括 Linux、Windows 和 macOS。以下是在 Linux 系统上安装 Docker 的步骤:

  1. 更新系统包:首先,确保系统包是最新的。

    sudo apt-get update
    sudo apt-get upgrade
    
  2. 安装依赖包:安装 Docker 所需的依赖包。

    sudo apt-get install apt-transport-https ca-certificates curl software-properties-common
    
  3. 添加 Docker 官方 GPG 密钥

    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
    
  4. 添加 Docker 仓库

    sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
    
  5. 安装 Docker CE

    sudo apt-get update
    sudo apt-get install docker-ce
    
  6. 验证安装:安装完成后,可以通过运行以下命令来验证 Docker 是否安装成功。

    sudo docker --version
    

2. 配置 Docker

安装完成后,可以根据需要进行一些基本配置:

  1. 启动 Docker 服务

    sudo systemctl start docker
    sudo systemctl enable docker
    
  2. 添加用户到 Docker 组:为了避免每次使用 Docker 时都需要使用sudo,可以将当前用户添加到docker组。

    sudo usermod -aG docker $USER
    

    然后,重新登录以应用更改。

  3. 配置 Docker 镜像加速器:在国内使用 Docker 时,可能会遇到镜像下载速度慢的问题。可以通过配置镜像加速器来提高下载速度。编辑/etc/docker/daemon.json文件,添加以下内容:

    {
      "registry-mirrors": ["https://<your-mirror-url>"]
    }
    

    然后,重启 Docker 服务:

    sudo systemctl daemon-reload
    sudo systemctl restart docker
    

3. 使用 Docker

安装和配置完成后,就可以开始使用 Docker 了。以下是一些常用的 Docker 命令:

  • 拉取镜像:从 Docker Hub 拉取一个镜像。

    docker pull ubuntu
    
  • 运行容器:使用拉取的镜像运行一个容器。

    docker run -it ubuntu /bin/bash
    
  • 查看运行中的容器:列出当前正在运行的容器。

    docker ps
    
  • 查看所有容器:列出所有容器,包括已停止的。

    docker ps -a
    
  • 停止容器:停止一个运行中的容器。

    docker stop <container_id>
    
  • 删除容器:删除一个已停止的容器。

    docker rm <container_id>
    
  • 删除镜像:删除一个本地镜像。

    docker rmi <image_id>
    

总结

Docker 作为一种强大的容器化技术,正在改变应用程序的开发、部署和运行方式。它通过提供环境一致性、轻量级和高效的容器、快速部署和扩展、隔离性和安全性等优势,成为现代软件开发和运维的重要工具。无论是微服务架构、持续集成和持续部署、开发环境标准化,还是云原生应用,Docker 都展现出了其广泛的应用场景。通过简单的安装和配置,开发者可以快速上手 Docker,并利用其强大的功能来提升开发效率和应用程序的可靠性。

觉得有用的话点个赞 👍🏻 呗。
❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄

💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!👍 👍 👍

🔥🔥🔥Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙

img

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

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

相关文章

C++进阶——封装红黑树实现map和set

目录 1、源码及框架分析 2、模拟实现map和set 2.1 复用的红黑树框架及Insert 2.2 iterator的实现 2.2.1 iterator的核心源码 2.2.2 iterator的实现思路 2.3 map支持[ ] 2.4 map和set的代码实现 2.4.1 MyMap.h 2.4.2 MySet.h 2.4.3 RBTree.h 2.4.4 Test.cpp 1、源码及…

‘闭包‘, ‘装饰器‘及其应用场景

‘闭包’, 装饰器’及其应用场景 一, 闭包及其应用场景 图解 闭包的定义 概述: 内部函数 使用了 外部函数 的变量, 这种写法就称之为闭包. 格式: def 外部函数名(形参列表):外部函数的(局部)变量def 内部函数名(形参列表):内部函数的(局部)变量return 内部函数名前提条件: …

IDEA 快捷键ctrl+shift+f 无法全局搜索内容的问题及解决办法

本篇文章主要讲解IDEA、phpStrom、webStrom、pyCharm等jetbrains系列编辑器无法进行全局搜索内容问题的主要原因及解决办法。 日期&#xff1a;2025年3月22日 作者&#xff1a;任聪聪 现象描述&#xff1a; 1.按下ctrlshiftf 输入法转为了繁体。 2.快捷键ctrlshiftr 可以全局检…

Powershell WSL导出导入ubuntu22.04.5子系统

导出Linux子系统 导出位置在C盘下,根据自己的实际情况更改即可Write-Host "export ubuntu22.04.5" -ForegroundColor Green wsl --export Ubuntu-22.04 c:\Ubuntu-22.04.tar 导入Linux子系统 好处是目录可用在任意磁盘路径,便于迁移不同的设备之间Write-Host &quo…

论文笔记(七十三)Gemini Robotics: Bringing AI into the Physical World

Gemini Robotics: Bringing AI into the Physical World 文章概括1. 引言2. Gemini 2.0的具身推理2.1. 具身推理问答&#xff08;ERQA&#xff09;基准测试2.2. Gemini 2.0的具身推理能力2.3. Gemini 2.0支持零样本和少样本机器人控制 3. 使用 Gemini Robotics 执行机器人动作3…

AI + 医疗 Qwq大模型离线本地应用

通义千问Qwq-32b-FP16可用于社区医院、乡镇卫生院、诊所等小型医疗机构&#xff0c;替代专业合理用药系统&#xff0c;作为药品知识库&#xff0c;实现以下功能&#xff1a; 药品信息智能查询&#xff1a;检索药品的详细说明书、适应症、禁忌症、不良反应及药物相互作用等关键信…

元音辅音及其字母组合发音

文章目录 单元音长元音/ɑː//ɔ://u://i://ɜː/// 短元音/ʌ//ɒ//ʊ//ɪ//ə//e/ 双元音/eɪ//aɪ//ɔɪ//ɪə//eə//ʊə//əʊ//aʊ/ 辅音3个鼻辅音m n ŋ 5个独立浊辅音w j r l h 20个清浊相对的辅音s zʃ ʒf vθ p bt dk gts dztʃ dʒtr dr 以下是列举的部分字母组合…

【Vitis AIE】FPGA图像处理 11 双线性插值 Bilinear Interpolation

双线性插值 https://github.com/Xilinx/Vitis-Tutorials/tree/2024.2/AI_Engine_Development/AIE/Design_Tutorials/11-Bilinear_Interpolation 简介 双线性插值是一种使用重复线性插值来插值两个变量函数的方法。它通常用于以下应用&#xff1a; 图像处理和计算机视觉&…

Linux | 安装 Samba将ubuntu 的存储空间指定为windows 上的一个磁盘

01 安装 samba 文件来实现。比如把我们 ubuntu 的存储空间指定为我们 windows 上的一个磁盘,然后我们在这个磁盘里面创建 .c 文件,进行我们代码的修改和编写,可以安装 samba 文件来实现。 samba 是一种网络共享服务,可以通过网络访问我们指定的文件夹 02 第一步:下…

一文说清预训练与微调:AI的双重训练法则

什么是预训练&#xff1f; 预训练是大型语言模型训练的第一步。它在资金和计算能力的支持下&#xff0c;通过深入分析大量的文本数据&#xff0c;使模型建立起语言的基本构架。在这一阶段&#xff0c;模型通过学习海量的书籍、文章和网页&#xff0c;识别出语言的语法、句法和…

996引擎-接口测试:音效测试NPC

996引擎-接口测试:音效测试NPC 参考资料local offset = 1 -- 默认偏移量function main(player, newOffset)offset = newOffset or offset -- 更新偏移量local buttonWidth =

miniconda安装保姆级教程|win11|深度学习环境配置

一、官网安装miniconda miniconda官网&#xff1a;Miniconda - Anaconda 点击Download按钮 在红框位置输入邮箱并点击submit&#xff0c;下载链接将会发到邮箱中 邮箱中将会收到如图所示邮件&#xff0c;点击下载 选择windows对应的miniconda安装包 miniconda安装包安装完成如…

Linux shell脚本-概述、语法定义、自定义变量、环境变量、预设变量、变量的特殊用法(转义字符、单双引号、大小括号)的验证

目录 1.shell概述 1.1作为应用程序&#xff1a; 1.2 shell 作为一门语言 2.shell 语法 2.1 shell脚本的定义与执行 &#xff08;1&#xff09;新建文件 &#xff08;2&#xff09;程序开头第一行 必须写shell的类型 &#xff08;3&#xff09;程序编写完后&#xff0c…

数据驱动进化:AI Agent如何重构手机交互范式?

如果说AIGC拉开了内容生成的序幕&#xff0c;那么AI Agent则标志着AI从“工具”向“助手”的跨越式进化。它不再是简单的问答机器&#xff0c;而是一个能够感知环境、规划任务并自主执行的智能体&#xff0c;更像是虚拟世界中的“全能员工”。 正如行业所热议的&#xff1a;“大…

DL学习笔记:穿戴设备上的轻量级人体活动识别方法

Hello&#xff0c;大家好&#xff01;这里是《Dream 的深度学习笔记》,本系列将聚焦三个学习方面&#xff1a; 论文解读&#xff1a;拆解经典论文与最新突破 技术实现&#xff1a;从模型搭建到实际部署 应用案例&#xff1a;涵盖图像识别、深度学习、人工智能等热门方向 让…

windows安装配置FFmpeg教程

1.先访问官网&#xff1a;https://www.gyan.dev/ffmpeg/builds/ 2.选择安装包Windows builds from gyan.dev 3. 下滑找到release bulids部分&#xff0c;选择ffmpeg-7.0.2-essentials_build.zip 4. 然后解压将bin目录添加path系统变量&#xff1a;\ffmpeg-7.0.2-essentials_bui…

Qt/C++项目积累:4.远程升级工具 - 4.1 项目设想

背景&#xff1a; 桌面程序一般都支持远程升级&#xff0c;也是比较常用的场景设计。如酷狗音乐的升级&#xff0c;会提供两个选项&#xff0c;自动帮助安装或是新版本提醒&#xff0c;由用户来决定是否升级&#xff0c;都属于远程升级的应用及策略。 看看经过这块的功能了解及…

同旺科技USB to SPI 适配器 ---- 指令循环发送功能

所需设备&#xff1a; 内附链接 1、同旺科技USB to SPI 适配器 1、周期性的指令一次输入&#xff0c;即可以使用 “单次发送” 功能&#xff0c;也可以使用 “循环发送” 功能&#xff0c;大大减轻发送指令的编辑效率&#xff1b; 2、 “单次发送” 功能&#xff0c;“发送数据…

单表达式倒计时工具:datetime的极度优雅(Kimi)

一个简单表达式&#xff0c;也可以优雅自成工具。 笔记模板由python脚本于2025-03-22 20:25:49创建&#xff0c;本篇笔记适合任意喜欢学习的coder翻阅。 【学习的细节是欢悦的历程】 博客的核心价值&#xff1a;在于输出思考与经验&#xff0c;而不仅仅是知识的简单复述。 Pyth…

Linux:基础IO---文件描述符

文章目录 1. 前言1.1 C语言文件知识回顾 2. 文件2.1 文件基础知识 3. 被打开的文件3.1 以C语言为主&#xff0c;先回忆一下C文件接口3.2 过渡到系统&#xff0c;认识文件系统调用3.3 访问文件的本质3.4 重定向&&缓冲区 序&#xff1a;在深入了解了进程的内容后&#xf…