序章

Docker は、コンテナでアプリケーションプロセスを管理するプロセスを簡素化するアプリケーションです。 コンテナを使用すると、リソースが分離されたプロセスでアプリケーションを実行できます。 これらは仮想マシンに似ていますが、コンテナーはより移植性が高く、リソースに優しく、ホストオペレーティングシステムへの依存度が高くなっています。

Dockerコンテナーのさまざまなコンポーネントの詳細な概要については、 Dockerエコシステム:一般的なコンポーネントの概要をご覧ください。

このチュートリアルでは、Ubuntu20.04にDockerCommunity Edition(CE)をインストールして使用します。 Docker自体をインストールし、コンテナーとイメージを操作して、イメージをDockerリポジトリーにプッシュします。

前提条件

このチュートリアルに従うには、次のものが必要です。

  • Ubuntu20.04初期サーバーセットアップガイドに従ってセットアップされた1つのUbuntu20.04サーバー(sudo非rootユーザーとファイアウォールを含む)。
  • 手順7と8に示すように、独自のイメージを作成してDocker Hubにプッシュする場合は、 DockerHubのアカウント。

ステップ1—Dockerをインストールする

公式Ubuntuリポジトリで利用可能なDockerインストールパッケージは最新バージョンではない可能性があります。 最新バージョンを確実に入手するために、公式のDockerリポジトリからDockerをインストールします。 これを行うには、新しいパッケージソースを追加し、DockerからGPGキーを追加してダウンロードが有効であることを確認してから、パッケージをインストールします。

まず、既存のパッケージのリストを更新します。

  1. sudo apt update

次に、aptがHTTPS経由でパッケージを使用できるようにするいくつかの前提条件パッケージをインストールします。

  1. sudo apt install apt-transport-https ca-certificates curl software-properties-common

次に、公式DockerリポジトリのGPGキーをシステムに追加します。

  1. curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

DockerリポジトリをAPTソースに追加します。

  1. sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable"

これにより、新しく追加されたリポジトリのDockerパッケージでパッケージデータベースも更新されます。

デフォルトのUbuntuリポジトリではなくDockerリポジトリからインストールしようとしていることを確認してください。

  1. apt-cache policy docker-ce

Dockerのバージョン番号は異なる場合がありますが、次のような出力が表示されます。

apt-cacheポリシーdocker-ceの出力
docker-ce:
  Installed: (none)
  Candidate: 5:19.03.9~3-0~ubuntu-focal
  Version table:
     5:19.03.9~3-0~ubuntu-focal 500
        500 https://download.docker.com/linux/ubuntu focal/stable amd64 Packages

docker-ceはインストールされていませんが、インストールの候補はUbuntu 20.04のDockerリポジトリ(focal)からのものであることに注意してください。

最後に、Dockerをインストールします。

  1. sudo apt install docker-ce

これでDockerがインストールされ、デーモンが起動し、プロセスが起動時に開始できるようになります。 実行されていることを確認します。

  1. sudo systemctl status docker

出力は次のようになり、サービスがアクティブで実行中であることを示します。

Output
● docker.service - Docker Application Container Engine Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled) Active: active (running) since Tue 2020-05-19 17:00:41 UTC; 17s ago TriggeredBy: ● docker.socket Docs: https://docs.docker.com Main PID: 24321 (dockerd) Tasks: 8 Memory: 46.4M CGroup: /system.slice/docker.service └─24321 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

Dockerをインストールすると、Dockerサービス(デーモン)だけでなく、dockerコマンドラインユーティリティまたはDockerクライアントも提供されるようになりました。 このチュートリアルの後半で、dockerコマンドの使用方法について説明します。

手順2— Sudoを使用せずにDockerコマンドを実行する(オプション)

デフォルトでは、dockerコマンドは、 root ユーザー、またはDockerのインストールプロセス中に自動的に作成されるdockerグループのユーザーのみが実行できます。 dockerコマンドの前にsudoを付けずに、または docker グループに入れずに実行しようとすると、次のような出力が得られます。

Output
docker: Cannot connect to the Docker daemon. Is the docker daemon running on this host?. See 'docker run --help'.

dockerコマンドを実行するたびにsudoと入力しないようにするには、ユーザー名をdockerグループに追加します。

  1. sudo usermod -aG docker ${USER}

新しいグループメンバーシップを適用するには、サーバーからログアウトして再度ログインするか、次のように入力します。

  1. su - ${USER}

続行するには、ユーザーのパスワードを入力するように求められます。

次のように入力して、ユーザーがdockerグループに追加されたことを確認します。

  1. groups
Output
sammy sudo docker

ログインしていないdockerグループにユーザーを追加する必要がある場合は、以下を使用してそのユーザー名を明示的に宣言します。

  1. sudo usermod -aG docker username

この記事の残りの部分では、[X83X]