このチュートリアルの以前のバージョンは、finidによって作成されました。

序章

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

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

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

前提条件

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

  • Ubuntu18.04初期サーバーセットアップガイドに従ってセットアップされた1つのUbuntu18.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 bionic stable"

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

  1. sudo apt update

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

  1. apt-cache policy docker-ce

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

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

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

最後に、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 Mon 2021-08-09 19:42:32 UTC; 33s ago Docs: https://docs.docker.com Main PID: 5231 (dockerd) Tasks: 7 CGroup: /system.slice/docker.service └─5231 /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: Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/containers/create": dial unix /var/run/docker.sock: connect: permission denied. See 'docker run --help'.

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

  1. sudo usermod -aG docker ${USER}

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

  1. su - ${USER}

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

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

  1. id -nG
Output
sammy sudo docker

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

  1. sudo usermod -aG docker username

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