過去数か月にわたり、私たちは一連の業界見本市のイベントに参加し、エンタープライズ向けのDockerについて世界に教えるのに役立ってきました。 過去 6週間以内に、HPE Discover、DockerCon、RedHat Summit、Cisco Liveに参加しました。 私は各イベントでDockerを代表し、参加者と話すのを手伝うことができました。 IT運用の仕事をしている人もいれば、開発の仕事をしている人もいます。 また、会社のインフラストラクチャ チームで IT 管理者として働いている多くの人と話をしましたが、時間が経つにつれて、彼らが尋ねる質問の種類に関していくつかの傾向に気づき始めました。 これは考えさせられました。 IT 管理者からよく寄せられる質問をまとめてみてはいかがでしょうか。 つまり、まったく同じ疑問を持っているITインフラストラクチャの専門家が他にもいる可能性が高いということです。
だからここにあります。 IT管理者が待っているリスト。 IT 管理者からの最も一般的な 10 の質問 (およびその回答)。
- では、Dockerとは正確には何ですか? 「コンテナアプリケーション」について何かありますか?
Dockerは、IT運用チームと開発者チームの両方がアプリケーションの構築、出荷、実行に使用するオープンプラットフォームであり、ソフトウェアサプライチェーン全体で各チームが必要とする俊敏性、移植性、および制御を提供します。 アプリケーションの実行に必要なすべてのものを含む、アプリケーションをパッケージ化する標準のDockerコンテナを作成しました。 この標準化により、チームはアプリケーションをコンテナ化し、あらゆる環境、あらゆるインフラストラクチャで実行し、あらゆる言語で記述することができます
- Docker コンテナーとはどのようなもので、VM とどう違うのですか?コンテナ化は仮想化インフラストラクチャに取って代わりますか?
コンテナ化は仮想化とは大きく異なります。 これは、コンテナ(1つ以上)を作成して実行するツールであるDockerエンジンから始まり、互換性のあるOSを備えた物理、仮想、またはクラウドホストにDockerがインストールしたソフトウェアです。 コンテナ化は、ホストオペレーティングシステム内のカーネルを利用して、複数のルートファイルシステムを実行します。 これらのルートファイルシステムを「コンテナ」と呼びます。 各コンテナーはホスト OS 内でカーネルを共有するため、同じホスト上で複数の Docker コンテナーを実行できます。 VM とは異なり、コンテナーには OS がありません。 それらは単に基盤となるカーネルを他のコンテナと共有するだけです。 ホストで実行されている各コンテナーは完全に分離されているため、同じホストで実行されているアプリケーションは相互に認識されません (Docker Networking を使用して、ホスト上で実行されているコンテナーが相互に通信できるようにするマルチホスト オーバーレイ ネットワークを作成できます)。
次の図は、左側にコンテナー化、右側に仮想化を示しています。 コンテナ化(左)は、仮想化(右)とは異なり、ハイパーバイザーや複数のOSを必要としないことに注目してください。
Docker コンテナーと従来の VM は相互に排他的ではないため、コンテナーを VM に置き換える必要はありません。 Docker コンテナーは、実際には VM 内で実行できます。 これにより、チームは各サービスをコンテナー化し、VM ごとに複数の Docker コンテナーを実行できます。
- 「ドッカライジング」の利点は何ですか?...
環境を Docker 化することで、エンタープライズ チームは Docker コンテナー as a Service プラットフォーム (CaaS) を活用できます。 CaaSは、開発チームとIT運用チームに、環境内での俊敏性、移植性、および制御を提供します。
開発者は、アプリケーションをすばやく構築して出荷できるため、Dockerを気に入っています。 Dockerコンテナは移植性があり、あらゆる環境(物理、仮想、またはクラウドホストにDocker Engineがインストールされている)で実行できるため、開発者は再コーディングすることなく、開発、テスト、ステージング、本番環境からシームレスに移行できます。 これにより、アプリケーションのライフサイクルが加速され、アプリケーションを13倍頻繁にリリースできるようになります。 また、Docker コンテナーを使用すると、開発者はアプリケーションをデバッグし、更新されたイメージを作成し、アプリケーションの更新バージョンをすばやく出荷することが非常に簡単になります。
IT 運用チームは、開発者がセルフサービス方式でアプリを構築して出荷できるようにしながら、環境を管理および保護できます。 Docker CaaSプラットフォームはDockerによってサポートされており、オンプレミスにデプロイされ、ロールベースのアクセス制御、LDAP/ADとの統合、イメージ署名などのエンタープライズセキュリティ機能が満載です。
さらに、IT 運用チームは、Docker化されたアプリケーションをあらゆる環境で管理、デプロイ、スケーリングできます。 たとえば、Docker コンテナーの移植性により、チームは AWS で実行されているワークロードを、再コーディングやダウンタイムなしで Azure に移行できます。 また、チーム缶は、クラウド環境から物理データセンターにワークロードを移行し、その逆の作業も行います。 これにより、チームは特定のインフラストラクチャタイプに縛られるのではなく、ビジネスニーズに最適なインフラストラクチャを利用できます。
仮想化などの従来のツールと比較したDockerコンテナの軽量性と、VM内でDockerコンテナを実行する機能を組み合わせることで、チームは インフラストラクチャを20倍 最適化し、プロセスのコストを節約できます。
- インフラストラクチャの観点から、Dockerには何が必要ですか? Dockerはデータセンターで実行されているハードウェアの一部であり、環境にどの程度の負担がかかりますか?
Dockerエンジンは、ホスト(ベアメタルサーバー、VM、またはパブリッククラウドインスタンス)にインストールされるソフトウェアであり、必要な唯一の「Dockerインフラストラクチャ」です。 このツールは、Dockerコンテナを作成、実行、および管理します。 したがって、実際には、ハードウェアのインストールはまったく必要ありません。
Dockerエンジン自体は非常に軽量で、合計で約80MBの重さがあります。
- 「ドッキングされたノード」とはどういう意味ですか? このノードはオンプレミスまたはクラウドに配置できますか?
Docker化されたノードは、Dockerエンジンがインストールされて実行されているベアメタルサーバー、VM、またはパブリッククラウドインスタンスです。
Docker は、オンプレミスとクラウドに存在するノードを管理できます。Docker Datacenter は、企業がアプリケーションの作成、管理、デプロイ、スケーリングに使用するオンプレミス ソリューションであり、 Docker チームからのサポートが付属しています。 データセンターだけでなく、仮想プライベートクラウドまたはパブリッククラウドプロバイダー(AWS、Azure、Digital Ocean、SoftLayerなど)に存在するホストを管理できます。
- Docker コンテナーは OS 全体をパッケージ化し、デプロイを容易にしますか?
ドッカーコンテナはOSをパッケージ化しません。 アプリケーションの実行に必要なすべてのものを含むアプリケーションをパッケージ化します。 エンジンは、ホストで実行されている OS の上にインストールされます。 コンテナーは OS カーネルを共有し、1 つのホストで複数のコンテナーを実行できるようにします。
- Docker エンジンはどの OS で実行できますか?
Docker Engine は、最新のすべての Linux ディストリビューションで動作します。 また、Ubuntu、CentOS、OpenSUSE、RHEL 用の 商用サポートされた Docker Engine も提供しています。 Windows Server 2016 で実行されている Docker のテクニカル プレビューもあります。
- Docker はインフラストラクチャの管理にどのように役立ちますか? すべてのインフラストラクチャなどをコンテナ化しますか?
Docker は、インフラストラクチャの管理に重点を置いていません。 インフラストラクチャに依存しないプラットフォームは、アプリケーションを管理し、Docker Datacenterなどのソリューションを介してインフラストラクチャの種類に関係なく、アプリケーションをスムーズに実行できるようにします。 これにより、必要な俊敏性、移植性、および制御性が得られます。 チームは、実際のインフラストラクチャを管理する責任があります。
- ホストごとに実行できるコンテナーの数はいくつですか。
実行できるコンテナーの数に関しては、これは実際には環境によって異なります。 アプリケーションのサイズと使用可能なリソースの量(つまり、CPUなど)はすべて、環境で実行できるコンテナーの数に影響します。 残念ながら、コンテナは魔法ではありません。 新しいCPUを最初から作成することはできません。 ただし、リソースをより効率的に利用する方法を提供します。 コンテナ自体は非常に軽量であり(共有OSとコンテナごとの個々のOSを覚えておいてください)、実行中のプロセスの間だけ持続します。 不変のインフラストラクチャ。
- 「ドッキング化プロセス」を開始するにはどうすればよいですか
チームが作業を開始する最善の方法は、開発者が Docker for Mac または Docker Windowsをダウンロードすることです。これらは、Mac または Windows デバイス上の Docker のネイティブ インストールです。彼らから、開発者はアプリケーションを取得してDockerfileを作成します。Dockerfile は、すべてのアプリケーション構成が指定される場所です。これは基本的に、Docker イメージの青写真です。イメージはアプリケーションのスナップショットであり、Docker Engine が参照するものであるため、スピンアップしているコンテナーがどのように見えるかがわかります。
開発者がまだDockerを使用していない場合。 彼らが www.docker.comでもっと学ぶことができる私たちのウェブサイトに彼らを自由に指摘してください
ボーナスの質問:私たちの環境にはいくつかのモノリシックアプリケーションがあります。 しかし、Dockerはマイクロサービスでのみ機能しますか?
これはDockerに関する最大の誤解の1つであるため、これを追加しました。 Dockerは、モノリシックアプリやマイクロサービスベースのアプリをコンテナ化するために絶対に使用できます。 Docker を活用しているほとんどのお客様は、レガシー モノリシック アプリケーションをコンテナー化して、Docker コンテナーが提供する分離性と移植性のメリットを享受していることがわかりました。 Docker コンテナーは、任意のアプリケーション (モノリシックまたは分散) をパッケージ化し、ワークロードを任意のインフラストラクチャに移行できることを忘れないでください。 この移植性により、企業のお客様はハイブリッドクラウドへの移行などの戦略を採用できます。
マイクロサービスの場合、お客様は通常、各サービスをコンテナー化し、Docker Compose などのツールを使用して、これらのマルチコンテナー分散アプリケーションを単一の実行中のアプリケーションとして運用環境にデプロイします。
一部の企業では、ハイブリッド環境を使用しており、時間の経過とともにドッキングされたモノリシックアプリケーションを徐々に再構築して、ドッキングされた分散アプリケーションになっています。 これは、当社の Docker データセンターのお客様である ADP の場合 です。
だからそこにあります。 IT 管理者が Docker について尋ねる上位 10 の質問のリストと、適切な測定のためのボーナスの質問。
さて、質問があります。 あなたのチームはDockerを使い始めましたか? そうでない場合は、新しい辛さを試す時期かもしれません。
コンテナとVMについて詳しく知りたい場合は、数週間前の 「仮想化管理者向けのコンテナ」と呼ばれるこのウェビナー録画をご覧ください。
あなたの興味をピークにするかもしれない追加のリソース:
- Docker データセンターについて学習 する
- Swisscom が運用環境で 400 VM から 20 VM に移行 した方法をご覧ください
- 一部の Docker データセンターのお客様からの ケーススタディを見る