Docker の使い方が間違っている可能性があります。はい、たとえ何年も使用していたとしても、効果がある可能性は十分にあります。 何か このリストには、あなたがすべきではないことがあります。そこで、Docker の使い方がおそらく間違っている 4 つの方法と、代わりに何をすべきかを紹介します。
Docker Run コマンドによるコンテナーの起動を停止する
Docker Compose は非常に優れています
長い間、私はコンテナーの起動に Docker Run コマンドを使用していました。私はしませんでした 実は 私はコンテナ管理に Porttainer を使用しているため、Docker Run を使用します。ただし、Docker Compose は使用しなかったので、それが問題でした。
Docker Run を使用すると、実行中のコンテナーに変更を加える必要がある場合に、最後にコンテナーを起動したときに使用したコマンドを覚えておく必要があります。一方、Docker Compose を使用すると、必要な新しい設定を使用して Docker Compose YAML ファイルを編集し、コンテナーを再起動するだけです。
ホームラボで Docker Run から Docker Compose に切り替えると、Docker ワークフローが大幅に改善されました。 Compose ファイルにジャンプして簡単な変更を加え、数秒でコンテナを再起動できるようになりました。以前は、変更を加えるのに数分かかることもありました。
まだ Docker Run (または Compose ファイル以外のコンテナ起動方法) を使用している場合は、Compose に切り替える時期が来ました。後で感謝することになります。
Docker ボリュームは絶対に必要な場合にのみ使用してください
バインド マウントにより、構成への簡単な読み取り/書き込みアクセスが可能になります
過去に Docker ボリュームを悪用している人を見たことがあるので、自分でも Docker ボリュームを使用することを検討しましたが、実行する気にはなれません。
名前付き Docker ボリュームとは、Docker がすべての権限を制御する領域に特別なフォルダー自体を作成することです。 Docker にとっては、よりクリーンで管理が容易になる可能性がありますが、管理が必ずしも簡単であるとは限りません。
Docker ボリュームの特徴は、Docker が配置すると決めた場所にボリュームが存在することです。通常、これは次のとおりです /var/lib/docker/volumes/volume_name/_dataただし、実行しているシステムによって異なる場合があります。
名前付きの Docker ボリュームを使用する代わりに、バインド マウントを使用することを選択します。バインド マウントとは、ファイルとフォルダーを選択した特定の場所に配置するように Docker に指示することです。私はすべての Docker コンテナを管理するために Porttainer (Docker 管理プラットフォーム) を使用しています。
そこで、すべてのバインドマウントを下に置きました /portainer。これにより、Docker ファイルがどこに保存されているかを正確に知ることが容易になり、また、それらのバックアップも簡単になります。そのフォルダーのアクセス許可は私が管理しており、そのフォルダーの保存場所を決定するのは私であるため、どのシステム上でもそのフォルダーを見つけるのは簡単です。
バインド マウントを使用すると、Docker ボリュームと比較して Docker 管理が簡単になるため、可能な限りバインド マウントを使用することを強くお勧めします。
シークレットと変数を .env ファイルに入れます
これらを Docker Compose ファイルまたは Docker Run コマンドに入れるのはやめてください。
Docker Compose ファイルまたは Docker Run コマンドを作成し、秘密の API キー、パスワード、またはその他の安全な変数をプレーン テキストで配置して、すべてが表示されるようにするという作業は、誰もが経験したことがあると思います。便利ですが、安全ではありません。
シークレットを Compose ファイル内に直接置く代わりに、より安全な .env に置くことができます。これは環境変数を保護する従来の方法であり、非常に簡単に実行できます。
たとえば、変数に名前を付けることができます OPENAI_API_KEY=mysupersecretopenaikey .env ファイル内。次に、Compose ファイルで、次のコマンドを使用してその変数を呼び出すことができます。 $関連情報は以下のリンクからご確認いただけます そして、それを .env ファイルからプルすることを認識します。
この種のワークフローに慣れるには少し時間がかかり、Porttainer などを使用している場合は少し複雑になりますが、シークレットを Compose ファイルに直接入力するよりも確実に安全です。
1 つの Compose ファイル内で関連サービスをデプロイするのがさらに簡単になります
Compose ファイルを使用することは素晴らしい最初のステップですが、それを使いこなすことによって、Docker のパワーを完全に認識し始めることができます。
WordPress、MariaDB、Nginx Proxy Manager などのいくつかの関連サービスを利用したいとします。 3 つのサービスすべてを 3 つの異なる Compose ファイルとして起動する代わりに、それらすべてを 1 つの単一ファイル内で起動できます。
関連サービスを組み合わせることで、さまざまなメリットが得られます。 1 つは、システムをよりクリーンで整頓された状態に保つことです。次に、スタックの 1 つの部分を編集する必要がある場合、多くの場合、複数の部分を編集する必要があるため、複数のファイルを開く手間が省けます。
また、同じ Compose ファイル内で作成されたコンテナは、コンテナ同士が簡単に通信できるようにする内部ネットワークを自動的に共有します。したがって、WordPress に MariaDB インスタンスの IP アドレスを指定しようとする代わりに、コンテナー名を変数として使用して呼び出すだけで、自動的に機能します。
-
- ブランド
-
カムルイ
- CPU
-
AMD Ryzen 7 7735HS
- グラフィックス
-
AMD Radeon 680M
- メモリ
-
16GB LPDDR5
- ストレージ
-
512GB NVMe
KAMRUI Hyper H1 ミニ PC は、手足を使わずに高性能デスクトップを必要とするセットアップに最適です。 AMD Ryzen 7 7735HS 8 コア 16 スレッド プロセッサーと 16 GB の LPDDR5 RAM (ユーザーによるアップグレードは不可) を誇ります。ただし、プリインストールされた 512GB NVMe ドライブは、より大きなドライブに交換することができ、必要に応じて追加のストレージ用に 2 つ目の NVMe スロットがあります。
-
- CPU
-
インテル第8世代Core i5
- グラフィックス
-
インテル統合型 UHD グラフィックス 630
- ストレージ
-
256ギガバイト
Dell OptiPlex 7060 ミニ デスクトップ PC は、ホームラボやオフィスでの使用に最適です。第 8 世代 i5 プロセッサーを搭載しており、すぐに Windows 11 Pro を実行できます。 16 GB の DDR4 RAM と 256 GB SSD が付属しており、将来アップグレードしたい場合でもユーザーが修理できます。
Docker は非常に強力ですが、間違った使い方も簡単です
私は 5 年以上にわたって Docker を広範囲に使用してきましたが、Docker が提供する隠された機能の多くを実際に明らかにし始めたのはつい最近のことです。重要なのは、これらの機能は秘密であるかのように隠されているわけではなく、利点が明確に明らかではない場合があるというだけです。
たとえば、Docker Compose のことは数年前から知っていましたが、これまで私がやっていた古い方法よりもどれほど優れているかはまったくわかりませんでした。今では、もっと早く Compose に切り替えれば良かったと思っています。今は使っているだけで嬉しいです。
したがって、このリストにあることをまだ実行していない場合 (または、まだ間違ったことを行っている場合)、この夏に自分のやっていることを変更し、業界の標準にもっと準拠するようにしてください。
完全ガイドはこちら