有关Docker的笔记

关于Docker

这篇文章

这是我个人总结的有关Docker的笔记,参考了以下书籍。

    • プログラマーのためのDocker教科書 第一版

Docker実践ガイド

另外,我还整理了以下相关知识。

    • コンテナとは

 

    • Dockerとは

Dockerの概要
Dockerを支える仕組み
Dockerのメリット
docker-compese

容器的定义是什么?

这是一项虚拟化技术。它在主机操作系统上创建逻辑分区,将应用程序和库的执行环境封闭起来,就像使用独立的服务器一样。它逻辑上分隔了主机操作系统的资源,并通过多个容器进行共享和使用。
这个分区称为容器。实现容器的技术称为容器虚拟化技术。
由于容器的开销较小,所以它们运行轻量高速。此外,可以将应用程序的开发环境和执行环境进行打包,快速部署或销毁。

コンテナ .png

Docker 是什么?

这是一个使用容器虚拟化技术来执行和管理应用程序的开源平台,具有以下特点:

    • Linux上で動作する

 

    GO言語で書かれている。

在撰写文章的过程中,Docker已经成为容器虚拟化技术的事实标准。
在Docker中,我们可以在操作系统上搭建一个称为Docker守护程序的容器管理软件,并在其上构建容器。
容器可以根据一个称为Docker镜像的包含了应用程序/库/中间件、操作系统和网络配置等的集合来创建,同时也可以将创建好的容器转化为镜像。Docker镜像实际上是一个存储了执行应用程序所需文件集合的目录。

Docker的支撑机制

区划化的机制 huà de

使用Linux的命名空间功能来实现Docker的容器化。通过命名,将以下属性隔离到容器中。

    • PID

プロセスごとのID

Network

ネットワークディバイス、IPアドレス、ポート番号、ルーティングテーブル、フィルタリングテーブル

UID、GID

ユーザーID、グループID

Mount

マウントシステム

UTS

ホスト名、ドメイン名

IPC

プロセス間通信のオブジェクト

资源管理机制

使用Linux的cgroup机制来管理资源的分区化。cgroup是一种将进程分组并进行管理的机制。通过使用cgroup来限制容器可以使用的资源,可以防止耗尽主机的资源。

网络的机制 de

容器之间的通信

在Docker中,每个容器都被分配了一个虚拟网卡。这些虚拟网卡连接到名为docker0的虚拟桥接器,用于容器之间的通信。
另外,容器之间的通信使用了链接功能。Docker容器可以附加别名,而链接功能可以通过这些别名实现容器之间的通信。

容器与外部网络的通信

使用Docker时,通过使用NAPT(网络地址端口转换)功能连接到外部网络。
NAPT是一种能够转换IP地址和端口号的功能,它可以透明地转换私有地址和全局地址。

Docker的优势

移植性 – Transplantability

通過將開發環境和執行環境打包成適用於Docker的容器,我們可以在任何地方使用相同的容器創建。這有助於統一開發環境。

共享

您可以在DockerHub上共享您创建的Docker镜像。此外,在DockerHub上,您还可以使用官方的开源软件镜像等,相对容易地使用开源软件。

docker-compose : Docker容器编排

Docker容器通常不是单独完成的,而是通过多个容器的协作来构建一个系统。
在这种情况下,手动配置和启动每个容器可能会非常繁琐。这时登场的就是docker-compose。使用docker-compose可以批量、构建、管理和协作容器。

结束时 (感想?)

这次我们从Docker到底是什么开始,研究了Docker的工作原理、优点,以及一些用于实际构建Docker容器的工具,并总结了下来。
如果在开发环境搭建等方面使用Docker的话,使用Docker Compose可能足够了。但实际的产品中,会使用到被称为容器编排的技术,比如Kubernetes,或者使用云端构建Kubernetes环境的GKE(Google Kubernetes Engine)等。
如果有机会的话,我还计划研究并总结这方面的内容。

广告
将在 10 秒后关闭
bannerAds