Dockerは、分離された開発コンテナーを作成できる仮想化プラットフォームです。 2013年に導入されたDockerは、オペレーティングシステムやプラットフォームに関係なく、任意のマシンでアプリケーションを簡単に実行する機能を提供します。現在、多くの開発者は、コンテナー内でのアプリのテストとデプロイにDockerを使用しています。コンテナは、リソースが分離された仮想インスタンスであり、単一のホストマシンで複数の分離されたシステムを実行する機能を提供します。
Dockerを使用すると、開発環境と本番環境の間で非互換性を生じるリスクを冒すことなく、さまざまなプラットフォームでアプリケーションを簡単に作成、デプロイ、および実行できます。また、インフラストラクチャをより効率的な方法で管理することもできます。
Dockerには、コミュニティエディション(Docker CE)とエンタープライズエディション(Docker EE)の2つのエディションがあります。 Docker EEは、エンタープライズ対応のコンテナー管理ソリューションです。
Dockerコンテナイメージは、レジストリと呼ばれる公式リポジトリからダウンロードできます。これには、DockerHubなどのパブリックレジストリまたはRegistryHubなどのプライベートレジストリが含まれます。 dockercommitを使用して独自のカスタマイズされたイメージを作成することもできます。
このガイドでは、RockyLinux8にDockerをインストールして使用する方法を学習します。
この記事を完了するには、次のものが必要です。
- RockyLinux8の新規インストール
- システムに少なくとも2GBのRAMがインストールされている必要があります。オプションで、必要に応じて2GB以上を割り当てることができます。 2つのvCPU/CPUコアとDocker用の最低20GBのシステムディスクスペース、および作成するコンテナイメージの数に応じて追加の空きスペース。
- sudo権限を持つユーザーがサーバーで構成されています
まず、次のコマンドを使用して、サーバーが最新であることを確認します。
sudo dnf update -y
以前のバージョンのDockerがシステムにインストールされている場合は、次のコマンドを使用してそれらを削除する必要があります。
sudo dnf remove docker*
まず、次のコマンドを使用して、公式のDockerリポジトリを追加します。
sudo dnf install -y dnf-utils
sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
次のコマンドを使用して、システムリポジトリを更新します。
sudo dnf update -y
次のコマンドを使用して、新しく追加されたリポジトリを一覧表示できます。
sudo dnf repolist -v
次のように、DockerCEをシステムにインストールします。
sudo dnf install -y docker-ce
インストール後、次のコマンドを使用してDockerEnterpriseEditionのバージョンを確認できます。
docker --version
次のような出力が表示されます。
Dockerサービスを開始し、システムの起動時に自動的に開始するように設定します。
sudo systemctl start docker
sudo systemctl enable docker
Dockerサービスのステータスを確認します。
sudo systemctl status docker
アクティブ(実行中)が緑色で表示されます。このような出力が表示された場合、Dockerのインストールは成功しています。 qキーを押して終了し、コマンドプロンプトに戻ります。
Dockerを標準ユーザーとして実行すると、「デーモンの起動エラー」のようなエラーが発生する場合があります。 dockerコマンドの前にsudoを付けずに実行できるようにするには、次のコマンドを使用して現在のシステムユーザーをDockerグループに追加します。
sudo usermod -aG docker $USER
ここで、$USERはシステムユーザーの名前です。この変更を有効にするには、ログアウトしてから再度ログインします。
DockerハブからDockerイメージhello-worldをプルすることで、Dockerが正しくインストールされていることを確認できます。 Dockerハブは、便利なDockerイメージを含むパブリックレジストリです。独自のイメージを作成することも、Dockerハブから作成済みの共有イメージをプルすることもできます。
docker container run hello-world
hello-worldイメージがホスト上に見つからない場合、Dockerは自動的にそれを検出し、DockerHubからダウンロードします。イメージがダウンロードされた後、dockerデーモンはイメージから新しいコンテナーをインスタンス化し、内部のプログラムを実行して「Hello fromDocker!」を出力します。
Dockerコマンドの使用
これでDockerがインストールされて機能するようになりました。それでは、Dockerの使用方法を見てみましょう。次のように入力するだけで、すべてのDockerコマンドを一覧表示できます。
docker
OSType、アーキテクチャ、CPU、合計メモリなどの情報を取得するには、dockerでコマンド情報を実行します。
sudo docker info
Docker Hubで利用可能な画像を検索するには、dockerコマンドを使用して検索コマンドを実行できます。たとえば、centos画像を検索するには、次のように入力します
sudo docker search centos
スクリプトはDockerHubをクロールし、一致する画像を返します。以下のcentosで利用可能な画像のリストを見ることができます。
OKが表示されます 公式のステータス これらの画像がプロジェクトの背後にある会社によってサポートされていることを示す列。
プルコマンドを使用すると、使用するイメージを特定した後、コンピューターにイメージをダウンロードできます。
sudo docker pull centos
このコマンドは、Centosイメージの最新バージョンをコンピューターにプルします。システム上の画像のリストを表示するには、次のように入力します。
sudo docker images
出力は次のようになります。
Dockerコンテナの実行
dockerrunまたはdockercreateコマンドを使用して、Dockerコンテナーを実行できます。 docker runを使用すると、新しいコンテナをインタラクティブに作成したり、ローカルファイルシステム、レジストリ、またはdockerハブから既存のイメージを渡すことができます。
dockerは次のようにコマンドライン構文を実行します:
sudo docker run [OPTIONS] IMAGE [COMMAND] [ARG…]
例として、上記のDockerハブから取得したcentosの最新のイメージを使用してコンテナーを実行してみましょう。
sudo docker run centos
これで、コンテナIDを持つコンテナ内にいます。この例では、2d80435f0d91です。次のようなコマンドプロンプトが表示されます。
コンテナ内では、rootユーザーであるため、sudoを使用せずに任意のコマンドを実行できます。たとえば、dnf updateコマンドを実行して、centosイメージ内のパッケージを更新できます。
dnf update
コンテナ内で行った変更は、そのコンテナにのみ影響します。プロンプトでexitと入力すると、コンテナを終了できます。
このチュートリアルでは、サーバーにDockerをインストールする方法、イメージとコンテナーを操作する方法を学びました。これらの基本的な概念に慣れたら、Dockerの公式ドキュメントのより高度なトピックに進むことができます。