ブログに戻る

CentOS 7でのDockerのインストールとセットアップ

CentOS 7でのDockerのインストールとセットアップ

はじめに

Docker は、コンテナ内でのアプリケーションプロセスの実行と管理を容易にするプラットフォームです。アプリケーションをインフラストラクチャから分離する方法を提供します。コンテナは仮想マシンと非常に似ていますが、よりポータブルで効率的、かつ使いやすいものです。DockerをLinuxディストリビューションにインストールする様々な方法があります。既存のオペレーティングシステムにDockerをインストールする最も一般的で簡単な方法は、yumコマンドを使用することです。

このチュートリアルでは、CentOS 7でDockerをセットアップして使用する方法を、いくつかの簡単なステップで説明します。

前提条件:

このチュートリアル全体で実行するすべてのコマンドは非rootユーザーとして実行され、必要に応じてsudoキーワードを使用してrootアクセスが提供されます。

ステップ1:CentOS 7インスタンスでのDockerのセットアップ

公式のCentOS 7リポジトリには、Dockerの最新のインストールパッケージが含まれていない場合があります。このセクションでは、公式のDockerリポジトリから最新バージョンのDockerをインストールします。まず、以下を使用してパッケージデータベースを更新する必要があります。

アップデート手順が完了したら、以下のコマンドを実行して最新バージョンのDockerをダウンロードしてインストールします。

これでDockerがインストールされました。以下のコマンドを実行してDockerデーモンを起動できます。

Dockerデーモンが実行されているかどうかを確認するには、以下を入力します。

systemctl statusコマンドの出力は、実行中であることを示す以下の共有出力のようになるはずです。

最後に、マシンを再起動したときにDockerが確実に起動するようにするには、次のコマンドを使用します。

Dockerのインストールにより、Dockerサービスとクライアントユーティリティ(Dockerコマンドラインクライアント)が提供されます。チュートリアルの次のセクションでは、Dockerコマンドを実際に使用してさらに理解を深めることができます。

また、こちらのパブリッククラウド上のUbuntuにDockerをインストール&操作する方法に関する詳細なチュートリアルもご覧ください.

ステップ2:SudoプレフィックスなしでのDockerコマンドの使用

Dockerコマンドを実行するにはroot権限が必要です。したがって、コマンドを実行するには、先頭にsudoを付ける必要があります。インストール中に、デフォルトでDockerグループが作成されます。ユーザーをそのグループに追加すると、sudoなしでDockerコマンドを実行できます。sudoなしでDockerコマンドを実行しようとしたり、ユーザーをグループに追加しなかったりすると、以下のような出力が表示されます。

ユーザー名をDockerグループに追加することで、sudoを使用せずにDockerコマンドを実行できるようになります。

別のユーザーをDockerグループに追加するには、コマンド内のユーザー名を置き換えるだけです。

このガイドの残りの部分では、すべてのコマンドがDockerユーザーグループのユーザーによって実行されることを前提としています。そうでない場合は、コマンドにsudoプレフィックスを使用できます。

ステップ 3: Dockerコマンドの実行

Dockerがインストールされ、実行されているので、Dockerコマンドラインユーティリティに慣れるためのいくつかのコマンドを見てみましょう。Dockerコマンドは通常、次のような形式をとります。

利用可能なすべてのサブコマンドを確認するには、次を使用します。

現在(Docker 20.10.3 時点)、利用可能なサブコマンドの完全なリストは以下の通りです。

特定のコマンドで –help フラグを使用すると、そのコマンドに関する詳細情報を取得できます:

システムに関する詳細情報を取得するには、以下を使用します:

ステップ 4: Docker イメージの操作

Docker イメージは、Docker コンテナの設計図と言えます。これらのイメージは通常、Docker Hub からプルされます。これは Docker プロジェクトによって管理されているレジストリです。誰でも Docker Hub に独自のイメージを作成してプッシュできます。その結果、レジストリ内で多種多様なアプリケーションや OS ディストリビューションを簡単に見つけることができます。Docker Hub へのアクセスを確認する簡単なプログラムを試してみましょう:

以下のような出力が表示され、Docker が動作していることが確認できます:

search コマンドを使用すると、Docker Hub 上のさまざまな Docker イメージを検索できます。たとえば、CentOS イメージを検索するには、以下のコマンドを参照してください:

検索クエリにより、部分一致したすべてのイメージ of リストが表示されます。この場合の出力は以下のようになります:

検索結果には、イメージに関する情報を説明するさまざまな列があります。OFFICIAL列の「OK」は、そのイメージがアプリケーションの背後にある企業によって作成され、サポートされていることを示します。イメージが決定したら、Docker pullコマンドを使用してローカルマシンにダウンロードできます。

イメージをダウンロードした後、Docker runコマンドを使用してコンテナを実行できます。事前にダウンロードせずに直接イメージを実行しようとすると、Dockerはイメージをダウンロードした後にコンテナを実行します。

以下のコマンドを使用して、ローカルマシンにダウンロードされたイメージの一覧を表示できます。

以下のような出力が表示されるはずです。

このチュートリアルの後半では、イメージを変更してコンテナを実行できるようになります。これらの新しいイメージは、Docker Hubや、Dockerイメージをホストするその他のレジストリに追加(プッシュ)できます。

ステップ 5: インタラクティブなコンテナの実行

コンテナにはさまざまな種類があります。あなたがステップ4で実行したhello-worldコンテナは、メッセージを出力した後に実行を終了するタイプのコンテナです。もう1つのタイプは、インタラクティブなコンテナです。インタラクティブコンテナは、仮想マシンと同じような感覚で使用できます。

最新のCentOSイメージからコンテナを作成してみましょう。Docker runコマンドで-iおよび-tフラグを使用すると、CentOSコンテナにインタラクティブにアクセスできます。

コマンドプロンプトが変更され、以下のような出力になるはずです。

これで、実行するすべてのコマンドがコンテナ内で実行されるようになります。これは、仮想マシン内でコマンドを実行するのと似ています。それでは、MySQL サーバーをCentOSコンテナにインストールしてみましょう。これを行うには、以下を使用します。

ステップ 6: コンテナ内の変更をDockerイメージにコミットする

コンテナを起動した後は、ファイルの作成や変更、アプリのセットアップなど、同様の仮想マシンで実行可能なすべての操作を行うことができます。これらの変更はそのコンテナにのみ保持され、コンテナを破棄すると行った変更は失われることに注意してください。

チュートリアルのこのパートでは、行った変更を加えてコンテナから新しいDockerイメージを作成する方法を学びます。 Step5 の後、MySQLサーバーがインストールされたCentOSコンテナが実行されています。このコンテナは、通常のCentOSイメージとは異なります。このコンテナの状態を保存して、後で利用することができます。まず、以下を使用してコンテナを終了する必要があります:

以下のコマンドを使用して、コンテナで行った変更を新しいDockerイメージにコミットします:

コマンドにおいて、-mはコミットメッセージを指し、基本的には行われた変更を示す必要があります。-aタグは作成者を記載するために使用されます。Container-idは、Step5 でコンテナをインタラクティブモードで実行した後に取得したものであり、通常、リポジトリはDocker Hubのユーザー名になります。例えば:

イメージがコミットされたので、docker imagesコマンドを実行すると、古いイメージに加えて新しいイメージも表示されるはずです:

コマンドの出力は以下のようになるはずです:

例に示されているように、Docker HubのCentOSイメージを使用して、新しいイメージcentos-mysqlが作成されます。サイズの違いは、いくつかの変更が行われたことを示しています。この例では、コンテナにMySQLサーバーが追加されました。次回MySQLサーバーを搭載したコンテナが必要になったときは、新しいイメージを実行するだけで、プリインストールされたMySQLサーバーが動作するCentOSコンテナが手に入ります。

ステップ 7: Dockerコンテナの管理

Dockerに慣れてきて、しばらく使用していると、すでにいくつかの実行中および非アクティブなコンテナが存在しているはずです。アクティブなコンテナの一覧を取得するには、以下を使用します:

以下のような出力が表示されるはずです:

アクティブなコンテナと非アクティブなコンテナの両方をリストするには、コマンドで -a フラグを使用する必要があります。

最後に作成したコンテナを見つけるには、-l フラグを指定します。

実行中/アクティブなコンテナを停止するには、次のシンプルなコマンドを実行します。

container-id は Docker ps コマンドの出力で確認できます。

ステップ 8: リポジトリへのイメージの公開

新しいイメージを作成した後の次のステップは、それを友人と共有することです。Docker Hub やその他のレジストリを使用して、世界中に公開することもできます。イメージをプッシュする前に、それぞれのレジストリにログインする必要があります。

チュートリアルの次のパートでは、イメージを Docker Hub にプッシュする方法を学びます。まず、Docker Hub にサインアップします。以下のコマンドを使用してイメージをプッシュするには、Docker Hub にログインする必要があります。

正しいパスワードを入力し、認証が成功すると、イメージをプッシュできます。イメージをプッシュするには、以下のコマンドを使用します。

コマンドの出力は次のようになります。

イメージをプッシュすると、以下の画像に示すように、アカウントのダッシュボードに表示されます。

docker account dashboard

同様の方法で失敗した場合は、ログインしていない可能性があります。

ログインして、プッシュを再試行できます。

結論

Docker を活用する方法はたくさんあります。このチュートリアルは、開始するのに十分な情報を提供するはずです。また、Docker は非常にトレンドのプロジェクトであるため、使用方法やさまざまなユースケースに関する多くの詳細をプロジェクトのブログページ.

Docker で何ができるかについて詳しく知るには、他の Docker チュートリアルも確認してください。

ハッピーコンピューティング!

author

Pranay Kapgate

著者 · CloudSigma

Preslav DobrevはCloudSigmaのクリエイティブデザイナーであり、従来型および革新的なマーケティングチャネルを活用した一貫性のあるビジネスアイデンティティに注力しています。彼は芸術的なビジョンと戦略的マーケティングを融合させ、インパクトのあるブランドナラティブを生み出すことに長けています。

コメント

コメントはまだありません。最初のコメントを投稿しましょう。