Docker的运行速度不快

这篇文章是Docker第二个圣诞日历的第21天的文章。

タイトルからあおり記事のようですが、説明が出回っていなかったので、Docker=速くなる、という誤解を解きたいと思います。少なくとも自分は長い間速くなるというのを信じてました。

在这个说明中,我们将基于在Production环境中引入Docker的前提进行操作。

为什么Docker被称为快速的呢?

よくDocker(Container)についての説明で以下のような説明がされています。

C66DB9A7-12A2-458D-BAA9-36AB54CCE990.png

引用来源:https://www.docker.com/what-docker

Docker 是一种容器技术,可以轻松创建、部署和运行应用程序,无论是在开发环境还是生产环境中。它可以将应用程序打包到一个独立的、可移植的容器中,容器中包含了应用程序的所有依赖项和运行环境。使用 Docker,开发人员可以更加高效地开发和测试应用程序,而运维团队也可以更加灵活和可靠地部署和扩展应用程序。

ラッパーが少ないから当然速いし、軽いよと。
私はこの図を見たときに、
なんて素晴らしい技術が開発されたんだ!
起動が遅くて、重いVMなんてもう必要なくなるんだ!
と狂喜しました。

实际情况如何呢?

ところが、Dockerを使い始める前に有識者に話を聞くと、実際には速くならないしむしろパフォーマンスが落ちるとの意見が。
完全にDocker社と意見が割れていて、どっちかが嘘を言っている?! と疑心暗鬼ながらもTutorialをやって、どんどんDockerにのめり込んでいきました。

以下为原文的中文同义句:

事实是

我开始使用Docker已经几个月了,在学习Docker方面非常努力的某一天,我在《Docker for the virtualization admin》这本电子书中了解到了真相。
摘要了一下”Physical or Virtual?”这个章节,

バーチャルマシンはDocker のhostサーバーとして素晴らしいものですが、企業ではよくベアメタルを使う方が良いと考えています。
Dockerエキスパート:

ベアメタルかバーチャルマシンかは場合によるし、良い点と悪い点がある。
CapacityとDisaster Recoveryの面ではバーチャルマシンが良いし、Latencyはベアメタルの方が良い。
問題は自分の状況にはどちらがいいのかを選択することであり、Dockerを使っていれば後から移管するにしても、大きな問題にはならないし、
Dockerが目指しているのはどちらを使えばいいとかではなく、どちらを使ってもDockerが違いを吸収してくれるということだよ。

eBook: https://goto.docker.com/docker-for-the-virtualization-admin.html

つまり、単純に速くなるとかそういうことではないと。
これを踏まえて最近の環境を振り返ってみると、クラウドでバーチャルマシンを使うことがデファクト・スタンダードになっていて(それにはそれなりの理由があって)、Dockerを導入する場合はそのバーチャルマシンにDockerを追加する形になるため、当然オーバーヘッドが増えるのが真実というか事実なのかなという結論に至りました。

Dockerについての最初に説明をよく見直してみると、バーチャルマシンとコンテナの違いを説明しているだけで、盲目的に速くなるとは書いてありませんでしたね。。。 なぜか、私はそう理解しまったのですが、説明が紛らわしいのか、または他の紹介記事はそのように誤った説明だったのかはよく覚えてません。
この件に関して、皆さんはどう理解していたのか、コメントお待ちしてます。

那么,在除了Production环境之外的情况下,

我想從另一個角度介紹一下Docker的優點,作為一個額外的好處。

为开发环境

我认为它在虚拟机方面占据了绝对优势。虽然虚拟机可以构建与本地隔离的环境,但是下载和启动操作系统映像等构建步骤很繁琐,而且非常麻烦。
相反,Docker的启动速度快,构建过程自动化,已经不再考虑没有Docker的开发了。
当然,一开始在使用卷进行持久化和容器间通信方面遇到了一些问题。。。

物联网(树莓派)

最近在Docker社区中很火的是在树莓派上使用Docker技术,我也认为它非常热门。
重点是:

    • Raspberry Pi でDockerネイティブで動作するので、バーチャルマシンより高速で、かつポータビリティが高い

 

    • ベアメタルということになるが、SDカードでOSを書き込むだけなので、こちらも再現性が高く復帰やレプリケーションが容易

 

    複数繋げたRaspberry PiをSwarmモード(Dockerコンテナをいろいろな構成に展開してオーケストレーションしてくれる)で分散処理できる。

目前为止还没有尝试过,但是我听说如果使用AWS EC2等服务进行高负荷处理时,费用会变得很高。因此,我打算购买大约1万日元的树莓派设备,搭建自己的家用服务器。

详细信息请参考:https://www.raspberrypi.org/blog/docker-comes-to-raspberry-pi/

结束

在第一次的Advent Calendar上,我尝试了一些具有挑战性的内容。期待您的指点和意见。
希望明年也能够成为一个美好的Docker年!

bannerAds