[編集者注] Dockerはオープンソース化されて以来、大手企業から幅広い注目を集めています。おそらく今では、インターネット企業は、自社の運用・保守システムが Docker (または Pouch など) に基づいていない場合、自らをインターネット企業と呼ぶことを恥ずかしく思うでしょう。 この記事では、Docker の基本的な概念、初歩的な使用方法、Docker を使用すると効率が大幅に向上するシナリオについて簡単に紹介します。 原理 Docker に関する最も単純で、やや誤った理解は、「Docker は非常に優れたパフォーマンスを備えた仮想マシンである」というものです。 上で述べたように、これは多少誤った発言です。 Docker は従来の仮想マシン技術よりもはるかに高度です。具体的には、Docker はホスト マシン上のハードウェア セットを仮想化してからオペレーティング システムを仮想化することはありません。代わりに、Docker コンテナ内のプロセスをホスト マシン上で直接実行できるようになります (Docker はファイル、ネットワークなどを分離します)。このようにして、Docker は「より軽量になり、より高速に実行され、同じホスト マシン上でより多くのインスタンスを作成できるようになります。」 Docker には、イメージ、コンテナ、リポジトリという 3 つの主要な概念があります。
関連コマンド 1. インストール Dockerのインストールは非常に便利です。 macOS、Ubuntu などにはワンクリックインストールツールまたはスクリプトがあります。詳細については、公式の Docker チュートリアルを参照してください。 インストール後、ターミナルに docker と入力します。使用方法の説明が表示されれば、ほとんどの場合インストールは成功していることになります。 2. ベースイメージを見つける DockerHub などの Web サイトでは多くの画像が提供されています。通常は、そこからベースイメージとして画像を見つけて、その後の操作を続行します。 ここでは、Ubuntu ベースイメージを例にしてノード環境を構成します。 「リンクが長すぎる」ため、Docker Hubへの国内アクセスが遅くなる可能性があります。多くの国内メーカーが提供する画像アクセラレータが使用可能です。 3. ベースイメージを取得する docker pull コマンドを使用して、関連するハブ Web サイトからローカル コンピューターにイメージをプルします。同時に、プル処理中に、画像が複数の「レイヤー」に従ってプルされていることがわかります。
すべてのローカルイメージを表示するには、docker images を実行します。
4. Dockerコンテナを作成する docker create コマンドは、イメージからコンテナを作成し、コンテナ ID を出力します。
コンテナを実行するには、docker start を使用します。
実行中のコンテナを表示するには、docker ps を使用します。
docker exec を使用してコンテナに入ります。
docker run を使用して、コンテナを 1 つのステップで作成して実行し、コンテナに入ります。
5. コンテナにNode環境をインストールする コンテナに入った後の操作は通常の環境と同じです。シンプルなノード環境をインストールします。
6. コンテナをコミットして新しいイメージを作成する Ghost を使用して Windows をインストールするのと同じように、多くの場合、独自のイメージをカスタマイズし、その中にいくつかの基本環境 (上記のノードなど) をインストールして、必要な基本イメージを作成したいと考えています。ここで docker commit が役に立ちます。
次に、新しく作成した画像を試してみましょう。
大丈夫そうですね。 7. イメージをDocker Hubにプッシュする 画像が作成されたので、それを他の人とどのように共有しますか?ここでは、Docker Hub にプッシュする例を取り上げます。 最初のステップは、docker hub にアカウントを登録し、ターミナルでそのアカウントにログインしてプッシュすることです。
8. Dockerfileを使う時が来た 継続的インテグレーションに Docker を使用していますか? Docker について知る前にこれを聞いたことがあるはずですが、これはどこかからコードをコピーして実行する必要があることを意味します (はい、少し travis-ci に似ています)。 Dockerfile の時間です! Dockerfile は、一連のコマンドとパラメータで構成されるスクリプトです。 docker build を使用してスクリプトを実行し、イメージをビルドして自動的に何かを実行します (travis-ci の .travis.yml に似ています)。 Dockerfile の形式は次のとおりです。
ベースイメージは、FROM BASE_IMAGE から指定する必要があります。 より詳細な仕様と手順については、Dockerfile リファレンスを参照してください。ここでは、上記の rccoder/myworkspace:v1 をベースイメージとして、例としてルートディレクトリにディレクトリを作成します。 Dockerfile は次のとおりです。
次に以下を実行します:
Dockerfile の力により、Docker には無限の可能性が残されています。 何ができるか ここまで述べてきましたが、実際の運用環境で Docker は何ができるのでしょうか?よく使われるものは以下のとおりです(コメントに追加してください) 1. 複数環境の展開切り替え ビジネス開発においては、開発環境とオンライン環境を区別する必要があることがよくあります。 Docker を使用すると、開発環境のコードと環境をそのまま汚染なくオンライン環境に移行できます。特定の自動化プロセスと組み合わせることで、自動リリースを実現できます。 2. フロントエンドクラウド構築 node_modules の厄介な問題により、同じリポジトリで開発している複数の人が、異なるパッケージ バージョンを使用している複数の人に遭遇することが多く、他の人と異なるバージョンを使用していることに気付かないこともあり、最終的にはリリース後にオンラインの問題が発生します。 Docker を使用すると、クラウド内に新しいコンテナを作成し、汚染なく低コストでリモートでコードをビルドし、さまざまな人が同じバージョンを使用することを保証できます。 3. 複雑な環境でもワンクリックで設定 シナリオによっては、非常に複雑な環境を構成する必要がある場合があります (たとえば、新入生は Java 環境を構成する必要があります)。この場合、Docker を使用して環境構成をカプセル化し、低コストで誰でも使用できるイメージを直接生成できます。 4. 継続的インテグレーションユニットテスト travis-ciに似ている 5. 同じアプリケーションの複数のバージョンとファイルの分離 たとえば、このプロジェクトはノード 6 に依存し、そのプロジェクトはノード 8 に依存します (これは単なる例であり、ハード ディスクが十分に大きい場合は、nodeinstall を使用して解決することをお勧めします)。 100 個の WordPress プログラムが同じサーバー上で実行されています (相互汚染を防ぐために Docker を使用して分離を確立できます)。 6. お金を節約する まあ、低コストの安全性が売られ過ぎです(霧)。 |
<<: Office 365の中国でのビジネスは商用利用開始4年目で400%以上成長
>>: 米財務省はアリババに対し、米国内でのクラウドコンピューティングサービスの提供を禁止する可能性がある。
Baidu が長期間更新されない問題の対処方法。実は、これは相対的なものです。Baidu はもう更新...
photonvpsのトラフィックが33Tにアップグレードされたというニュースを見ました(XENベース...
最近、ある疑問について考えていました。同じ SEO を行っている人でも、なぜ成功する人がいる一方で、...
gigsgigscloud は香港データセンターに独立サーバーを一式設置する予定です。サーバーは現在...
プロの SEO 担当者として、私たちはウェブサイトの包含に常に注意を払います。ほとんどのウェブマスタ...
老干媽は最近とても人気が出ていますが、その人気を支えたのは「南山ピザハット」と3つの「老千媽」です。...
eName.cnは6月6日、今年初めにDNS障害により多くのTaobaoユーザーが正常に閲覧や注文が...
2009年に設立されたHostlixは、仮想ホスティング、VPS、独立サーバーを主な事業とするロシア...
中小電子商取引企業は春節を前に新たな人員削減の波に直面しており、従業員を解雇しているのは国美オンライ...
企業が快適な領域から抜け出そうとする上で、人間性こそが最大の障害となります。企業が、多くの大きなアイ...
多くの好材料により、中国のレンタカー市場は急速にパンデミック前の水準に回復し、さらに改善すると予想さ...
編集者注わずか 4 年で、iOS システム プラットフォームを基盤として、サードパーティ アプリケー...
「もし私があなたに1000万あげたら、あなたはそれをどう使いますか?」この質問は大規模な予算を持つ企...
「犬は毛糸の代金を払うが、豚は勘定を払う。」この古典的な格言は、インターネットの考え方の本質を要約し...
1:自己評価。ウェブサイトを構築してから 3 年以上経ちますが、私たちはローカルのオンサイト プロモ...