终于读懂了 Docker

前言:
😄作者简介:小曾同学.com,小伙伴们也可以叫我小曾,一个致力于测试开发的博主⛽️
[TencentCloudSDKException] code:FailedOperation.ServiceIsolate message:service is stopped due to arrears, please recharge your account in Tencent Cloud requestId:5843c2f0-a3fe-4348-a186-65e103a9968a

[En]

[TencentCloudSDKException] code:FailedOperation.ServiceIsolate message:service is stopped due to arrears, please recharge your account in Tencent Cloud requestId:0befb696-2403-4469-ab3a-74dcc9ca3f6e

座右铭:不想当开发的测试,不是一个好测试✌️。
如果感觉博主的文章还不错的话,还请点赞、收藏哦!👍

本篇主要是整理了下 Docker 相关的理论知识。针对Docker容器相关的命令,小伙伴们可关注博客:Docker命令详解

文章目录

Docker 是基于 Go 语言的开源应用容器虚拟化技术。
Docker的主要目标是 build、ship and run any app,anywhere,即通过对应用组件的封装、分发、部署、运行等生命周期的管理,达到应用组件级别的一次封装、到处运行(来源于官网)。这里的应用组件,即可以是一个Web应用,也可以是一套数据库服务,甚至是一个操作系统或编译器。

通俗的讲,可以将 Docker 可以类比于 VMware,如果开发想要在生产环境运行,则直接将本地应用及所需要的环境打包成一个镜像,将镜像运行在 Docker 中,这样就可以解决测试环境和生产环境不一致的问题。(镜像可以类比我们常见的 ubuntu.iso镜像文件。)

  1. 为什么会有Docker

为了从根本上解决开发和运维环境不一致的问题。也就是说,在安装时,把原始环境一模一样地复制过来,开发人员利用 Docker 可以消除协作编码时” 在我的机器上可正常工作“的问题。

开发在打包应用时,将应用所需要的文件打包成一个镜像文件,将镜像运行在docker中。从而达到一次镜像,处处运行。
可以一句话概括为: 解决了运行环境和配置问题的软件容器,方便做持续集成并有助于整体发布的容器虚拟化技术

  1. Docker容器与传统虚拟机比较

图片来源于官网 https://www.docker.com/resources/what-container/

终于读懂了 Docker
左图是 Docker 容器架构,右侧是传统虚拟机架构。
Infrastructure可以看做是宿主机, Hypervisor可以看做是VMware。
Docker 容器架构直接在宿主机上运行,而传统虚拟机需要在宿主机中安装一个虚拟机,然后在虚拟机中机型部署。Docker 与传统虚拟机具体比较内容如下:
  1. 传统虚拟机技术基于安装在主操作系统上的虚拟机管理系统(VM),创建虚拟机,在虚拟机上安装linux操作系统,再从 Linux 操作系统中安装部署各种应用。也就是说,传统虚拟机技术是虚拟出一套硬件后,在其上运行一个完整操作系统,在该系统上再运行所需要应用进程。这样导致的问题是资源占用多,冗余步骤多,启动慢。
  2. Docker 容器内的应用进程直接运行在宿主机的内核(内核级虚拟化),容器内没有自己的内核且也没有进行硬件虚拟。因此容器要比传统虚拟机更为轻便。
  3. 每个容器之间互相隔离,每个容器有自己的文件系统,容器之间进行不会相互影响,能区分计算资源,容器之间也可以建立通信机制。

当被问:为什么Docker比VM虚拟机快???可以从以下两方便回答。

  1. Docker 有着比虚拟机更少的抽象层,因为 Docker 不需要虚拟机实现硬件资源虚拟化,运行在 Docker 容器上的程序直接使用的都是实际物理机的硬件资源,因为在CPU、内存利用率上 Docker 将会在效率上有明显发优势。
  2. Docker 利用的是宿主机的内核,而不需要加载操作系统 OS 内核。

; 4. Docker的三大核心

4.1 镜像(image)

当我们安装一个虚拟机的时候,需要有一个.iso镜像文件,说的是一个意思,所以可理解为镜像是一个只读文件。当然镜像也是创建 Docker 容器的基础。

4.2 容器(container)

容器是从镜像创建的应用运行实例,可以将其启动、开始、停止、删除。也可以把容器看做一个简易版的 Linux 系统

4.3 仓库(repository)

[TencentCloudSDKException] code:FailedOperation.ServiceIsolate message:service is stopped due to arrears, please recharge your account in Tencent Cloud requestId:c5498c7f-2083-4798-92da-a29876ae2f78

[En]

[TencentCloudSDKException] code:FailedOperation.ServiceIsolate message:service is stopped due to arrears, please recharge your account in Tencent Cloud requestId:e6bdb89f-a80a-4101-a61f-70e8a2d35729

最大的公开仓库是 Docker Hub,国内的公开仓库包括阿里云网易云等。

  1. Mac中docker安装

Mac 中安装 Docker 十分简单,在此不做赘述。可以参考官网提供的步骤https://docs.docker.com/get-docker/

注意:Docker 并非是一个通用的 容器工具,它依赖于已存在并运行的 Linux 内核环境。也就是说,如果想在 windows 上部署 Docker,需要先安装一个虚拟机,并在安装一个linux操作系统。在安装linux系统的虚拟机中运行 Docker。

  1. 阿里云镜像加速配置

  2. 首先登录阿里云平台https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors

    终于读懂了 Docker
    终于读懂了 Docker
docker info

终于读懂了 Docker
  1. 本章小结

本章主要介绍了Docker的基本概念、Docker 容器和传统虚拟机的区别、阿里云镜像加速配置等,总结 Docker 容器的优势有以下几点。(以下内容来源于《Docker技术入门与实战》)

  • 一次构建、随处运行
  • 更快速的应用交付和部署
  • 更便捷的升级和扩缩容
  • 更简单的系统运维
  • 更高效的计算资源利用

补充:针对Docker容器相关的命令,小伙伴们可关注小编的另一篇博客:Docker命令详解

Original: https://blog.csdn.net/weixin_42182599/article/details/127052648
Author: 小曾同学.com
Title: 终于读懂了 Docker

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/561341/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球