GNU/Linux >> Linux の 問題 >  >> Panels >> Docker

LinuxにDockerとDockerComposeをインストールする方法

Dockerは、Linuxシステムでコンテナーを構築および実行するために必要なすべてのものを提供します。コンテナは軽量仮想マシンに似ています。ホストのオペレーティングシステムカーネルを使用して実行されるポータブルアプリケーションイメージを作成できます。

Dockerは、Debian、Fedora、CentOS、およびRaspbianプラットフォームで使用できます。これらのディストリビューションの派生物も機能します。 Dockerは、サポートされているほとんどのプラットフォームにx86/x64およびARMビルドを提供します。 aptを備えたDebianシステムを使用しています このガイドのパッケージマネージャー。他のディストリビューションに固有の手順は、Dockerドキュメントにあります。

Docker Composeを使用すると、複数のコンテナーのスタックを構築して実行できます。アプリケーションのコンテナを構成するYAMLファイルを作成します。次に、1つのコマンドを使用して、すべてのコンテナーを起動し、それらをリンクすることができます。 Composeは、スタックのコンポーネントを個別のコンテナ化されたサービスに分離するのに役立ちます。

ComposeはDockerとは独立して配布されます。 Composeを追加する前にDockerをインストールします。そうしないと、Composeが機能しなくなります。

関連: Dockerを使用してPHPとApacheをコンテナ化する方法

Dockerをインストールする

オペレーティングシステムのパッケージマネージャーを使用して、最新のDockerリリースをインストールできます。 Dockerのリポジトリを追加し、パッケージリストを更新してから、Dockerをインストールする必要があります。

Debian / Ubuntu

インストールプロセスに必要な依存関係を追加することから始めます:

sudo apt-get update
sudo apt-get install apt-transport-https ca-certificates curl gnupg lsb-release

次に、DockerのリポジトリGPGキーを追加します:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

ソースにリポジトリを追加し、パッケージリストを更新します:

echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update

これでDockerをインストールできます:

sudo apt-get install docker-ce docker-ce-cli containerd.io
Fedora

Dockerのパッケージリポジトリを追加します:

sudo dnf -y install dnf-plugins-core
sudo dnf config-manager --add-repo https://download.docker.com/linux/fedora/docker-ce.repo

Dockerのインストール:

sudo dnf install docker-ce docker-ce-cli containerd.io

CentOS

Dockerのパッケージリポジトリを追加します:

sudo yum -y install yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/fedora/docker-ce.repo

Dockerのインストール:

sudo yum install docker-ce docker-ce-cli containerd.io

SudoなしでDockerを使用する

Dockerデーモンはrootとして実行されます 。通常、Dockerコマンドの前にsudoを付ける必要があります 。 Dockerを頻繁に使用している場合、これは面倒になる可能性があります。 dockerに自分を追加する groupを使用すると、sudoなしでDockerを使用できます 。

sudo usermod -aG docker $USER

グループに参加したら、ログアウトして再度ログインします。または、newgrp dockerを実行します 更新されたグループにすぐにログインするコマンド。これで、sudoを削除できるようになります。 Dockerコマンドから。

Dockerインストールのテスト

Dockerがインストールされたので、動作をテストします。最小限のhello-worldを使用できます 画像。

docker run hello-world:latest

ターミナルに数行の出力が表示されるはずです。 Dockerは最初にhello-world:latestを探します マシン上の画像。存在しないため、イメージはDockerHubリポジトリからプルされます。

イメージがプルされると、そこから新しいコンテナが作成されます。コンテナは、基本的な「helloworld」メッセージを送信して終了するように構成されています。テキストが表示されている場合は、Dockerのインストールが機能しています!

Dockerサービスの管理

systemctlを使用してサービスを検査することで、Dockerが実行されているかどうかを確認できます。 。考慮すべき2つのコンポーネント、dockerがあります およびcontainerddocker CLIがコマンドを送信するDockerEngineデーモンです。 containerd は、実際にコンテナを実行する基盤となるランタイムです。

sudo systemctl status docker.service
sudo systemctl status containerd.service

システム上の他のサービスと同じようにデーモンを管理できます。 systemctl stopを使用します Dockerを一時的に停止し、コンテナーで使用されているシステムリソースを解放する場合:

sudo systemctl stop docker.service

systemctl startを使用してサービスを再起動できます 。

Docker-Composeの追加

docker-compose は別のバイナリであり、プロジェクトのGitHubリリースから直接ダウンロードするのが最適です。最も人気のあるLinuxディストリビューションでは、パッケージマネージャーにComposeが含まれていますが、かなり古くなっている可能性があります。

Docker Composeのリリースページに移動し、最新のバージョン番号をメモします。執筆時点では、1.29.0でした。 。

1.29.0の代わりに表示されているバージョンに置き換えてください 以下のコマンドで。これにより、システムに適したバイナリがダウンロードされ、/usr/local/binにドロップされます。 。

sudo curl -L "https://github.com/docker/compose/releases/download/1.29.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

次に、ファイルを実行可能にします:

sudo chmod +x /usr/local/bin/docker-compose

これで、docker-composeを使用できるようになります ターミナルでコマンドを実行します。 docker-compose --versionを実行してみてください 確認します。

単純なDocker-作成ファイルの作成

docker-composeを使用するには docker-compose.ymlを作成する必要があります ファイル。これは、アプリケーションのスタックを構成するコンテナについて説明しています。コンテナで使用されるポートバインディング、環境変数、ネットワーク、およびボリュームを指定できます。

同じdocker-compose.ymlで宣言されたコンテナ ファイルは自動的に同じスタックの一部になります。これらはDockerネットワークにリンクされているため、docker-compose.ymlを使用して相互に通信できます。 ホスト名としてのサービス名。

これが簡単なdocker-compose.ymlです PHP WebサーバーとMySQLデータベースを実行するには:

version: "3"

services:
  app:
    image: php8.0-apache
    environment:
      - MYSQL_SERVER=mysql
      - MYSQL_USERNAME=root
      - MYSQL_PASSWORD=example
    ports:
      - ${PORT:-80}:80
    restart: unless-stopped
  mysql:
    image: mysql:8.0
    expose:
      - 3306
    environment:
      - MYSQL_ROOT_PASSWORD
    volumes:
      - mysql:/var/lib/mysql
    restart: unless-stopped

volumes:
  mysql:

docker-compose up -dを実行すると、両方のサービスを起動できます。 。両方のイメージがDockerHubからプルされていることがわかります。その後、コンテナが起動します。 docker-compose stopを使用して両方を停止できます 。 docker-compose downを使用します コンテナを削除します。

サンプルのYAMLファイルは、いくつかのDockerCompose機能を示しています。コンテナはservicesの下で定義されます ノード。各コンテナはDockerimageを宣言します。 。シェル環境変数をコンテナに渡すことができます(environments )およびDockerポートバインドのセットアップ(ports )。 ${VARIABLE:-DEFAULT}を使用して、環境変数を文字列に補間できます。 構文。変数がシェルに設定されていない場合は、DEFAULT 代わりに値として使用されます。 Docker Composeの詳細については、専用ガイドをご覧ください。

概要

一般的なLinuxディストリビューションのパッケージマネージャーを使用して、Dockerを簡単にインストールできます。 Dockerリポジトリを追加してから、docker-ceをインストールします 、docker-ce-cli およびcontainerd.io 。これらのコンポーネントは、コンテナを構築して実行するために必要なすべてのものを提供します。

稼働状態になったら、Dockerfileを記述できます。 docker build -t my-app:latest .を使用します それを構築します。次に、docker run my-app:latestを使用します コンテナを起動します。

Docker-Composeは、複数のコンテナの「スタック」を簡単に実行できるようにする追加の抽象化レイヤーです。 Composeを使用すると、複数のコマンドを手動で連続して実行する必要がありません。宣言型のYAMLファイルを記述して、docker-compose upを使用できます。 すべてのコンテナを一斉に起動します。

関連: Docker Composeとは何ですか、またどのように使用しますか?


Docker
  1. DockerをFedoraLinuxシステムにインストールする方法

  2. Ubuntu18.04にDockerをインストールして使用する方法

  3. CentOSにDockerComposeをインストールして使用する方法

  1. Ubuntu18.04にDockerComposeをインストールして使用する方法

  2. CentOS7にDockerをインストールして使用する方法

  3. CentOS7にDockerComposeをインストールして使用する方法

  1. Debian10LinuxにDockerをインストールして使用する方法

  2. Debian10LinuxにDockerComposeをインストールして使用する方法

  3. ArchLinuxにDockerをインストールして使用する方法