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

序章

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

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

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

前提条件

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

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

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

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

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

  1. sudo apt update

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

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

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

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

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

  1. sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable"

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

  1. sudo apt update

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

  1. apt-cache policy docker-ce

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

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

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

最後に、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 Thu 2018-07-05 15:08:39 UTC; 2min 55s ago Docs: https://docs.docker.com Main PID: 21319 (dockerd) CGroup: /system.slice/docker.service ├─21319 /usr/bin/dockerd -H fd:// └─21326 docker-containerd --config /var/run/docker/containerd/containerd.toml

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. id -nG
Output
sammy sudo docker

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

  1. sudo usermod -aG docker username

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