新しいテクノロジーを学習する場合など、ローカルに開発環境をセットアップする必要がある場合があります。あるいは、デバッグや変更を容易にするために、会社のプロジェクトで同様のセットをローカルに構築する必要がある場合もあります。 開発環境には、MySQL、Redis、Nginx、MQ、Elasticsearch などが含まれます。今日は MySQL を使用していても、明日は PostgreSQL を使用するかもしれません。すべてをローカルにインストールする場合、不可能ではありませんが、非常に面倒であり、インストール中にさまざまな問題が発生する場合があり、非常にイライラします。 早くてエレガントな方法はありますか? これが今日お話しする内容です。Docker はもはや新しいテクノロジーではありません。これは非常に一般的で人気のある技術的ソリューションであるとも言えます。 私が Docker を使い始めたのは 2015 年だったと記憶していますが、もう 8 年近く経ちます。時間があっという間に過ぎていくのにはため息しか出ません。 写真 その間、私は多くのクラスメートや同僚に Docker を勧めました。私はただ彼らにこう言いました。「これはローカル開発環境をセットアップするのに本当に便利です。」その後、現在の規模にまで発展したということは、予想もしていませんでした。 ベテラン開発者であれば、おそらくすでに使用していることでしょう。初心者であれば、できるだけ早く使用してください。環境設定にかかる時間を節約できるだけでなく、学習も可能になります。結局のところ、コンテナ化されたデプロイメントは現在非常に一般的なので、それについてさらに学ぶ必要があります。 Dockerの原則と基本コマンド根拠どのようなテクノロジーを使用する場合でも、まずその技術原理を理解し、明確な考えを持つ必要があります。 Docker は、Google がリリースした Go 言語を使用して開発および実装されています。 Linux カーネルの OverlayFS クラスの cgroup、名前空間、Union FS などのテクノロジを使用して、プロセスをカプセル化および分離します。これは、オペレーティング システム レベルでの仮想化テクノロジです。分離されたプロセスはホストや他の分離されたプロセスから独立しているため、コンテナとも呼ばれます。 Docker は仮想マシンとよく比較されます。その理由は、その用途と使用方法が非常に似ているためです。つまり、物理マシン上で複数の仮想システムを起動するということです (今のところはそうしておきます)。使用の観点から見ると、Docker を仮想マシンとして使用できますが、実際の基礎となる技術原理はまったく異なります。 あなた自身が変身して、Docker と仮想マシンの中に立っているとします。内部から見ると、仮想マシンには独自の CPU (仮想 CPU)、メモリ、ハードディスクがあることがわかります。外側にはホストマシンのCPU、ハードディスク、メモリなどがある。Dockerの内側から外を見ると、現在の物理マシンのどのコンテナにいても、ホストマシンのCPU、ハードディスク、メモリなどが見えることがわかる。つまり、Docker コンテナはホスト マシンのリソースをそのまま独自のリソースとして使用するため、各コンテナのハードウェア構成は同じですが、仮想マシンは完全に仮想化されたセットになります。 基本コマンドDocker には多くのコマンドがありますが、よく使用されるのはほんのわずかです。 ミラー関連画像を取得する
ミラーリストを表示
コンテナ関連コンテナを表示
コンテナを作成して起動する
コンテナに入る
この記事は Docker チュートリアルではないため、単なる出発点にすぎません。具体的なチュートリアルやドキュメントはインターネット上のいたるところにあります。 Dockerデスクトップをインストールする次はローカル実践を開始し、Dockerを使用してローカル環境を素早く構築します。 イメージやコンテナをより便利かつ直感的に管理するためにインストールできる Docker ビジュアル クライアントがいくつかあります。もちろん、上手であればコマンドラインを完全に使用することも可能です。 私はそんなに上手じゃないんです。それらのパラメータをまったく覚えていないので、クライアントをインストールする必要があります。 Mac、Linux、Windows をサポートする公式クライアントである Docker Desktop をインストールしました。私はほとんどの場合 Mac を使用しますが、Windows を使用しなければならない場合もあるため、Docker Desktop が唯一の選択肢となります。 Macのみをご利用の場合は、Docker Desktopよりもスムーズと言われるOrbStack(https://orbstack.dev/)をインストールすることもできます。 ダウンロードしてインストールするDocker Desktop の公式 Web サイト (https://www.docker.com/products/docker-desktop/) にアクセスし、システムに応じて対応するバージョンをダウンロードします。 写真 ダウンロード後、ワンクリックでインストールするだけです。 Docker 環境が直接インストールされるため、手間が省けます。以下はコンソール インターフェイスです。左側のナビゲーションでは、イメージ リスト、コンテナー リスト、マップされたボリュームを表示できます。 写真 コマンドラインに docker -v と入力します。正しいバージョン番号が表示されれば、Docker サービスが正常にインストールされたことを意味します。 Docker バージョン 24.0.2、ビルド cb74dfc 次に行う必要があるのは、国内のミラー ソースを設定することです。誰もがその理由を知っています。海外のミラーソースを使用する場合、1 日で取得できない可能性があります。 「設定」ボタンをクリックし、左側の「Docker Engine」を選択します。 写真 次に、右側の設定ボックスに次の設定を追加し、下部に追加します。 追加後、「適用して再起動」をクリックすると、Docker サービスが再起動されます。 サービスをインストールするMySQL、Nginx、Redis、Zookeeper はすべてサービスであり、それぞれこの方法でインストールできます。プロジェクトに必要なサービスがいくつあっても、1 つずつインストールするだけで、非常に高速になります。 PostgreSQL について学びたかっただけなので、ローカルにインストールするのではなく、Docker コンテナを起動しました。もちろん、コンテナ化はデータベースなどの I/O アプリケーションには推奨されませんが、ローカル開発とテストでは問題になりません。 この検索ボックスにキーワードを入力して、対応する画像を見つけます。ここでキーワードPostgreSQLを入力します。 Nginx をインストールする場合は、Nginx などと入力します。 写真 たくさんリリースされていますが、私は通常、ダウンロード数が最も多い最初のものを探します。 写真 引っ張ることも走ることもできます。 pull はイメージをプルすることであり、run はイメージをプルしてコンテナを起動することです。 写真 通常は実行し、実行をクリックしてしばらく待ちます。国内のミラーソースは既に設置されているため、速度は非常に速く、わずか10秒程度です。 (インターネットの速度によっては、画像ファイルをダウンロードする必要があるため、アプリケーションによってはサイズが数百 MB になる場合があります) ダウンロード後、実行を選択したため、起動パラメータが直接ポップアップ表示されました。 写真 画像名を設定するコンテナ名は、見た瞬間にそれが何に使用されているかがわかるようにするために使用されます。管理を容易にするために使用されます。私はこれをPostgreSQLと名付けました。 ポート マッピングの設定 (ポート)サービス自体には独自のポートがあり、たとえば、MySQL は 3306 で、これはコンテナー内のサービス自体の起動ポートです。しかし、最終的にはホストを介してサービスにアクセスする必要があるため、コンテナ内のポートをホスト ポートにバインドする必要があります。これをポートマッピングと呼びます。このようにして、ホスト ポートを介してコンテナー内のポートにアクセスできるようになります。たとえば、MySQL コンテナのポート 3306 をホスト マシンのポート 13306 にマッピングしました。その後、データベース接続を設定すると、ローカル IP:13306 を使用して MySQL コンテナーにアクセスできるようになりました。 PostgreSQL コンテナでは、ローカル ポート 15432 をコンテナのポート 5432 にバインドし、15432 を接続ポートとして使用できるようになりました。 ディレクトリ マッピング (ボリューム)多くのサービスはストレージ ディレクトリを使用しますが、コンテナー自体はホスト マシン上にあるため、コンテナー内のサービス ディレクトリをホスト マシンのディレクトリにマップする必要があります。これをディレクトリ マッピングと呼びます。たとえば、Nginx コンテナの /etc/nginx ディレクトリをホストの /apps/nginx/ ディレクトリにマップします。次に、ホスト上の /apps/nginx ディレクトリにアクセスすると、Nginx コンテナの構成ファイルが表示されます。 PostgreSQL コンテナで、/etc/postgresql/postgresql.conf 構成ファイルをローカル ディレクトリにマッピングしました。 環境変数サービスの起動では、環境変数として構成できる起動変数が使用される場合があります。たとえば、Java jar パッケージを起動する場合は、JVM 関連のパラメータを構成する必要があります。これらのパラメータは、起動時に使用するために環境変数に配置できます。 PostgreSQL にはパスワードが必要なので、ここでパスワード環境変数 POSTGRES_PASSWORD を設定します。 すべての設定が完了したら、実行ボタンをクリックしてコンテナを起動します。 次に、コンテナが起動され、対応するログが出力されていることがわかります。 写真 次に、左側の「コンテナー」をクリックして、起動したコンテナーといくつかの基本的な構成を確認します。 写真 その後、クライアント経由で接続できます。 写真 写真 また、コンテナの詳細ではコンテナの内部ファイル、ステータス、構成情報、ログなどを表示したり、コマンドラインを入力することもできます。 写真 やっと最初は遅いかもしれませんが、慣れると非常に速くなります。ローカルに直接インストールして構成するよりもはるかに高速です。一部のソフトウェアはインストールや設定が非常に面倒で、多くの時間を無駄にしてしまうことになります。 docker バージョンを提供するオープンソース フレームワークやアプリケーションも多数あります。この方法を習得すると、これらのフレームワークとアプリケーションをすぐにインストールして検証および使用できるようになり、ユーザー エクスペリエンスが桁違いに向上します。 |
<<: リリース戦略の選択: ZadigX、Alibaba Cloud、Argo、Spinnaker、Harness、Codefresh...
4月12日、JD.comはダブルピンインドメイン名wangyin.comをひっそりと購入し、オンライ...
この番組の人気はスター効果によるところが大きいと考える人が多いが、この手法を使っていないバラエティ番...
インターネットは膨大な情報リポジトリです。インターネットは毎日どれくらいの情報を生成するのでしょうか...
Magic Cube Cloud は、Dragon Boat Festival プロモーションを提供...
[[334877]]分散一貫性 (コンセンサス) は、分散システムの基礎として、コンピュータ システ...
現在、Weibo を通じたマーケティングは重要な手段の 1 つになっています。Weibo はすぐに共...
今から11月12日まで、zji(つまり、2011年に設立されたWeixiang Hostingですが...
私たちのウェブサイト構築のキャリアの中で、非常に奇妙な現象を発見しました。それは、企業はウェブサイト...
raksmartクラウドサーバーはどうですか? raksmart香港クラウドサーバーはどうですか? ...
SEO 担当者は誰でも、混乱、当惑、困惑、そして成長の時期を経験します。今日は、私自身の SEO 成...
当初、同社の運用および保守担当者は、一部のホスト マシン上のプロセスの CPU 使用率が異常に高いと...
Hostsirは中国人が運営しています。主にx1apiの製品です。いつでも転送できるパスワードのオン...
ますます多くの広告主がWeChat 広告に注目し、掲載しており、これは当社が広告とマーケティングの分...
パブリック クラウドの導入の増加により、企業は SD-WAN の利点を活用する方法の調査を開始せざる...
「実は、インターネット分野に限らず、グローバルビジネスの歴史においても、基本的には巨大なエコシステム...