为完全不了解「Docker」的人介绍「Docker」入门的魅力
「我想要向職場的人們更加推廣 Docker!」基於這樣的想法,我寫了一篇關於 Docker 魅力的文章,旨在回答那些問「Docker 是什麼?」的人們。
关于Docker的安装方法,我们已经整理在《在Amazon EC2上搭建Docker CE环境》一文中,请一并阅读。
「Docker」是什么?
「Docker(舵客)」是近年备受关注的虚拟化软件。
根据《2017年国内OpenStack/Docker的導入状況に関するユーザー調査結果を発表》,2017年在企业中引入Docker的情况显示,有6.0%的企业在生产环境中使用,有13.1%的企业在开发/测试/验证阶段使用。
Docker受到关注的首要原因是其简便性。借助Docker,您可以轻松构建以下服务器环境。
-
- nginxやApacheによるWEBサーバー
-
- PHPやJavaによるAPサーバー
-
- MySQLやPostgreSQLによるDBサーバー
- redmine、GitLab、JenkinsなどのDevOps環境
就个人而言,使用Docker来试验各种开源软件非常方便。
Docker的原理和机制
为什么Docker如此受关注,尽管已经有VMWare和VirtualBox这样的虚拟化软件?
我们来看一下Docker和传统的基于主机的虚拟化,比如VMWare和VirtualBox等,所使用的基础技术上的差异。Docker是通过一种被称为“容器化虚拟化”的基础技术来实现虚拟化的。
主机虚拟化(VMWare,VirtualBox)
- アプリケーションを実行するためにはまずゲストOSを起動させなければならず、CPUやメモリ、ディスクなどのリソースも多く消費する
容器虚拟化技术(Docker)
- コンテナはホストOSから見ると単一のプロセスとして扱われ、カーネル部分をホストOSと共有するため、リソース使用量が非常に少ない
![Dockerの実行環境](https://cdn.silicloud.com/blog-img/blog/img/657d228b37434c4406c275eb/16-1.png)
「超入門Docker:第1篇 認識Docker – @IT」
容器化虚拟化通过在操作系统上构建与其他进程隔离的应用执行环境,实现比托管式虚拟化更少的计算机资源下的虚拟化环境。
使用Docker的好处
通过利用被称为容器化的基础技术,Docker实现了以下三个特点。
1. 在少量资源的情况下,能够高效运行应用程序。
容器化虚拟化能够更高效地运行在较少的计算资源上,因为它不需要模拟传统托管虚拟化所需的硬件。
通过“基础设施即代码”可以实现对基础设施环境的版本管理。
「基础设施即代码」是一种将基础设施环境的状态以源代码的形式进行管理,并自动将其配置到服务器上的机制。Docker可以通过名为「Dockerfile」的文本文件编写镜像的配置,以及通过名为「docker-compose.yml」的文本文件编写容器的配置,因此可以使用诸如git等版本管理系统记录基础设施环境的状态。
下面是Redmine官方公开的docker-compose.yml脚本。如您所见,如果最基本的配置需求,只需几行脚本即可构建服务器。
version: '3.1'
services:
redmine:
image: redmine
restart: always
ports:
- 8080:3000
environment:
REDMINE_DB_MYSQL: db
REDMINE_DB_PASSWORD: example
db:
image: mysql:5.7
restart: always
environment:
MYSQL_ROOT_PASSWORD: example
MYSQL_DATABASE: redmine
红宝石 | Docker 商店
还有一个巨大的吸引力是,有丰富的Dockerfile可用于构建各种开源软件。
可以实现「不可变基础架构」。
「不可变基础设施」是一种通过丢弃应用程序运行环境并重新创建环境来进行配置更改的方法。服务器状态都在Dockerfile中描述,因此可以随时丢弃旧状态的服务器,并重新构建一个“没有任何修补痕迹,干净整洁的服务器”。
为了使用Docker,你至少应该理解的基本知识。
Docker的吸引力你理解了吗?最后,我想解释两个使用Docker的重要概念,即”Docker镜像”和”Docker容器”。
![](https://cdn.silicloud.com/blog-img/blog/img/657d228b37434c4406c275eb/33-0.png)
理解架构 – Docker-docs-ja 1.11.0 文件
「Docker镜像」是指
「Docker镜像」是指包含操作系统和应用程序的模板。根据不同的操作系统,用户空间部分的镜像被称为「基础镜像」,而「基础镜像」不包含内核部分。
在Docker Store上,几乎所有常见的操作系统基础镜像,如CentOS和Ubuntu,都可以找到。此外,该网站上还提供了一些包含操作系统和应用程序的镜像。
「Docker容器」是一种设施
「Docker容器」是由原始Docker映像生成的虚拟服务器。还可以从相同的Docker映像生成多个容器。Docker容器作为主机上的一个进程来运行。
直到适应为止,这些概念可能会感觉有点难以理解,但实际上只要自己实际生成了各种容器,就能很快理解。
最终
如果使用Docker,人们可以轻松地构建AI、区块链和智能音响所需的服务器和应用环境。希望这篇文章能够成为让更多人了解Docker的契机。