フッターコンテンツにスキップ
Iron Academy Logo
C#を学ぶ
C#を学ぶ

その他のカテゴリー

LinuxでのDockerとPortainerのインストール

Tim Corey
~18m

すべてがオペレーティングシステム上に直接あるべきというわけではありません。 SQL Serverのようなツールはリソースを大量に消費し、それらをおおっぴらに実行するということは、必要ない時でもリソースが消費されることを意味します。 コンテナはこの問題を解決します: 必要なときに立ち上げ、必要ないときには停止させます。 Dockerはこのワークフローを動かすエンジンであり、Portainerは管理可能にするためにCLIコマンドライブラリを暗記しなくても、軽量なGUIを提供します。

Tim CoreyのLinux開発シリーズに基づいたこの内訳では、Ubuntu上での完全なセットアップ、aptリポジトリの登録、エンジンのセットアップ、個人用マシンでのsudo要件の削除、Portainer CEを永続化するコンテナとしてデプロイするまでの詳細を示します。

ステップ1: Dockerのaptリポジトリの追加

[3:10 - 6:00] Docker自体をaptでインストールする前に、Dockerのパッケージソースを登録し、システムにそれを信頼させる理由を与える必要があります。 Dockerはこれを1回の貼り付けで処理する単一のコピー可能なコマンドブロックを提供しています。 [docs.docker.com]にアクセスし、[Install] セクションに移動して、[Ubuntu]を選択してください。 "aptリポジトリを使用してインストール"セクションのコマンドが必要です。

そのブロックは、いくつかの操作を順に実行します: 必要な証明書ツールのインストール、Dockerの公式GPGキーのダウンロード、その権限の調整、およびAPTソースリストにリポジトリアドレスを書き込みます。ドキュメントからそのままコピーし、Ctrl+Shift+Vによりターミナルに貼り付けて、一度に全体を実行してください。

強調すべき重要な点: 新しいパッケージソースを盲目的に追加しないでください。 その証明書をインストールする前に、そのソースを信頼できることを確認してください。 Dockerは信頼性があり、信頼に値しますが、その原則は追加するすべてのソースにも当てはまります。 このアプローチは実際には、多くのパッケージマネージャーがデフォルトで行うものよりも厳密であり、それは特徴であり、複雑さではありません。

ステップ2: Dockerエンジンのインストール

[6:00 - 7:10] リポジトリが登録されている場合、Dockerのインストールは単一のaptコマンドで行います:

sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
SHELL

プロンプトが表示されたら確認し、aptはダウンロードとインストールを処理します。 Dockerは起動時に自動的に開始するように設定されているので、追加の手順なしで再起動後にバックグラウンドで実行されます。

すべてが正常に動作することを確認するには、hello-worldコンテナを実行してみてください:

sudo docker run hello-world
sudo docker run hello-world
SHELL

Dockerはイメージをダウンロードし、それを実行し、確認メッセージを出力します。 その出力はインストールが正常に動作していることを意味します。 hello-worldコンテナは一度だけ実行され、終了するように設計されています。 これはエンジンが応答していることを確認するためだけに存在します。

ステップ3: sudoなしでDockerを実行する(個人用マシンのみ)

[7:45 - 10:30] デフォルトでは、Dockerコマンドはsudoが必要です。なぜなら、コンテナの管理は特権操作です。 共有サーバーまたはプロダクションマシンでは、この設定をそのままにしておきましょう。 個人開発マシンを一人で管理している場合、自分をdockerグループに追加するとプレフィックスが取り除かれます:

sudo usermod -aG docker $USER
sudo usermod -aG docker $USER
SHELL

現在のアカウントをそれに追加するには-aGを使用します。 大文字小文字に注意してください: $USERは大文字である必要があります。 変更はログアウトして再ログインするまで有効になりません; グループメンバーシップが正しく適用されるには、単純なログアウトよりもフルシステムの再起動の方が信頼性があります。 これが完了すると、sudoなしで動作します。

これは利便性のトレードオフであり、セキュリティの改善ではありません。 開発用マシンにのみ保持してください。

ステップ4: Portainerのためのボリュームの作成

[11:30 - 12:45] Portainerを起動する前に、ボリュームを作成して、そのデータをコンテナの再起動や交換を超えて持続させます:

docker volume create portainer_data
docker volume create portainer_data
SHELL

コンテナは本質的に一時的であり、1つを破壊するとその中に保存されているものはすべて消去されます。 ボリュームはコンテナのライフサイクルの外に存在し、Dockerによって管理されるパスにありますので、Portainerの設定はそれを破壊して再構築しても保持されます。

ステップ5: Portainerコンテナの実行

[12:45 - 14:10] Portainer CE自体もDockerコンテナです。 完全な実行コマンドは以下の通りです:

docker run -d -p 9000:9000 --name portainer \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v portainer_data:/data \
  portainer/portainer-ce
docker run -d -p 9000:9000 --name portainer \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v portainer_data:/data \
  portainer/portainer-ce
SHELL

分解してみると、-dはコンテナをデタッチ状態で実行し、バックグラウンドに留まります。 -p 9000:9000はホストポート9000を公開し、コンテナ内部の対応する内部アドレスにルーティングします。 最初の-vはDockerソケットをマウントし、Portainerに他のコンテナとイメージの可視性と制御を与えます。 この方法でソケットを接続することは、GUIがDocker環境全体を読み取り管理できる理由です。 2番目の/dataにリンクし、その状態を永続化します。

portainer/portainer-ce (Community Edition)からプルしてください。 portainer.ioウェブサイトは有料のEnterprise版をリードしていますが、CEは無料で完全にローカルや個人用として使用可能です。

Portainer UIのナビゲート

[14:10 - 17:30] コンテナが開始されると、ブラウザを開き、http://localhost:9000にアクセスしてください。 Portainerは初回アクセス時に管理者パスワードの作成を促します; それは12文字以上である必要があります。 ログイン後、追加の環境を追加せずにクイックセットアップウィザードをクリックし、ダッシュボードからローカル環境を選択します。

ホームビューは要約を示します: ダウンロードされたイメージ、存在するコンテナ、設定されたネットワーク、および使用中のボリュームです。 各セクションをクリックすることで、完全な制御を得られます。 イメージの下に、セットアップ中に実行された2回のプルによってhello-worldとPortainer CEイメージが表示されます。 コンテナでは両方のhello-world実行が停止状態で表示され、Portainer自体はアクティブに実行されています。

コンテナパネルからどのエントリを開始、停止、または削除することができます。 コンテナを選択してログをクリックすることによって、その出力を表示します。 hello-worldのエントリは、実行された2回の通常の挨拶テキストを表示します。 コンテナを再起動し、そのログを確認することで、新しい出力が最初の下に追加されることを確認します。

ボリュームはマウントパスとともにリストされています。 /var/lib/docker/volumes/の下にその場所を表示し、エンジンがディスク上に保存するすべての名前付きボリュームデータを示します。

PortainerをDocker Desktopより選ぶ理由

[17:30 - 18:10] Docker DesktopはGUIと一緒に出荷されますが、大きなオーバーヘッドが伴います。これは実際の作業負荷をシステムリソースで利用したいLinux開発マシンで問題となります。 Portainer CEはコンテナ自体として実行され、はるかに少ないメモリとCPUを消費します。 それは、イメージとコンテナの閲覧、ログの読み取り、ボリュームの管理、サービスの開始と停止など、実用的なニーズをカバーし、重さを伴いません。

次に来るもの

[17:50 - 18:30] DockerとPortainerが揃ったら、次のステップはコンテナとしてSQL Serverを実行することです。 単一のdocker runコマンドがイメージをプルしてインスタンスを開始します。 Portainerコンテナパネルから、セッションの終了時にそれを停止し、再び必要なときに再起動することができます。 このパターンはRedisや連続して実行するには高価であるが、コンテナ化するには容易なその他のインフラツールにも同様に適用されます。

結論

[18:30 - end] 要約: DockerのaptリポジトリをGPGキーで登録し、portainer/portainer-ceコンテナを実行します。 そこから、localhost:9000が日常的なタスクのためにCLIに触れることなくLinux上でコンテナを管理するためのGUIを提供します。

作業中のライブマシンでのインストールを追うTim CoreyのYouTubeチャネルビデオを完全に視聴してください。

Hero Worlddot related to LinuxでのDockerとPortainerのインストール
Hero Affiliate related to LinuxでのDockerとPortainerのインストール

好きなことを共有することで収入を増やす

.NET、C#、Java、Python、またはNode.jsを使用する開発者向けのコンテンツを作成しますか?あなたの専門知識を副収入に変えましょう!

アイアンサポートチーム

私たちは週5日、24時間オンラインで対応しています。
チャット
メール
電話してね