Dockerは、事実上どこでも実行できるポータブルで自給自足のコンテナーとしてアプリケーションを迅速に構築、テスト、デプロイできるようにするコンテナー化プラットフォームです。
Dockerは、コンテナーテクノロジーの事実上の標準であり、DevOpsエンジニアとその継続的インテグレーションおよびデリバリーパイプラインにとって不可欠なツールです。
このチュートリアルでは、Debian 9マシンにDockerをインストールするプロセスをガイドし、Dockerの基本的な概念とコマンドについて説明します。
前提条件#
このチュートリアルを続行する前に、sudo権限を持つユーザーとしてログインしていることを確認してください。このチュートリアルのすべてのコマンドは、root以外のユーザーとして実行する必要があります。
DebianにDockerをインストールする#
次の手順では、Dockerのリポジトリから最新の安定したDockerバージョンをインストールする方法について説明します。
-
インストールされているパッケージを最新バージョンに更新します:
sudo apt update
sudo apt upgrade
-
HTTPS経由で新しいリポジトリを追加するために必要な依存関係をインストールします:
sudo apt install apt-transport-https ca-certificates curl software-properties-common gnupg2
-
次の
curl
を使用して、リポジトリのGPGキーをインポートします コマンド:curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
次のように入力して、DockerAPTリポジトリをシステムのソフトウェアリポジトリリストに追加します。
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable"
$(lsb_release -cs)
Debianディストリビューションの名前を返します。この場合、stretch
を返します。 。 -
Dockerリポジトリが有効になったので、
apt
を更新します パッケージリストを作成し、最新バージョンのDocker CE(Community Edition)を次のコマンドでインストールします:sudo apt update
sudo apt install docker-ce
-
インストールが完了すると、Dockerサービスが自動的に開始されます。次のように入力して確認できます:
sudo systemctl status docker
● docker.service - Docker Application Container Engine Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled) Active: active (running) since Fri 2018-07-27 17:02:07 UTC; 1min 14s ago Docs: https://docs.docker.com Main PID: 16929 (dockerd) CGroup: /system.slice/docker.service
-
執筆時点で、Debian9で利用可能なDockerの現在のバージョンは
18.06.0-ce
です。 。 Dockerのバージョンを確認するには:docker -v
Docker version 18.06.0-ce, build 0ffa825
SudoなしでDockerコマンドを実行する#
デフォルトでは、管理者権限を持つユーザーのみがDockerコマンドを実行できます。
sudo
を付加せずに、root以外のユーザーとしてDockerコマンドを実行する場合 DockerCEパッケージのインストール中に作成されたdockerグループにユーザーを追加する必要があります。次のように入力してください:
sudo usermod -aG docker $USER
$USER
ユーザー名を保持する環境変数です。
ログアウトしてから再度ログインすると、グループメンバーシップが更新されます。
sudo
を付加せずにdockerコマンドを実行できることを確認するには 次のコマンドを実行して、テストイメージをダウンロードし、コンテナーで実行し、「HellofromDocker」メッセージを出力して終了します。
docker container run hello-world
出力は次のようになります。
Dockerコマンドラインインターフェース#
Dockerがインストールされたので、dockerCLIの基本的な構文を見てみましょう。
docker [option] [subcommand] [arguments]
使用可能なすべてのコマンドを一覧表示するには、docker
を実行します パラメータなし:
docker
[subcommand]
についてさらにサポートが必要な場合 、--help
を使用できます 以下に示すように切り替えます:
docker [subcommand] --help
Docker画像#
Dockerイメージは、実行可能ソフトウェアアプリケーションを構成するイメージのDockerfile内の命令を表す一連のファイルシステムレイヤーで構成されます。イメージは、アプリケーションと、ライブラリ、バイナリ、アプリケーションの実行に必要な命令などの他のすべての依存関係を含む不変のバイナリファイルです。
Dockerイメージは、Dockerコンテナーのスナップショットと考えることができます。
ほとんどのDockerイメージはDockerHubで利用できます。
Docker Hubはクラウドベースのレジストリサービスであり、他の機能の中でも特に、Dockerイメージをパブリックリポジトリまたはプライベートリポジトリに保持するために使用されます。
Docker Hubレジストリからイメージを検索するには、search
を使用します サブコマンド。
たとえば、Debianイメージを検索するには、次のように入力します。
docker search debian
出力は次のようになります。
ご覧のとおり、検索結果は5列のテーブルNAME
を出力します。 、DESCRIPTION
、STARS
、OFFICIAL
およびAUTOMATED
。
公式イメージは、Dockerがアップストリームパートナーと共同で開発したイメージです。
Docker Hub上のほとんどのDockerイメージは、バージョン番号でタグ付けされています。タグが指定されていない場合、Dockerは最新のイメージをプルします。
Dockerイメージのダウンロード#
Debianイメージの公式ビルドをダウンロードしたい場合は、image pull
を使用してダウンロードできます。 サブコマンド:
docker image pull debian
インターネットの速度に応じて、ダウンロードには数秒または数分かかる場合があります。
タグを指定していないため、dockerは最新のDebianイメージである9.5をプルします。以前のDebianバージョンのいくつかをプルしたい場合、たとえばDebian 8の場合は、docker image pull debian:8
を使用する必要があります。
画像がダウンロードされたら、次のように入力して画像を一覧表示できます。
docker image ls
出力は次のようになります:
Dockerイメージを削除する#
何らかの理由で画像を削除したい場合は、image rm [image_name]
を使用して削除できます。 サブコマンド:
docker image rm debian
Dockerコンテナ#
画像のインスタンスはコンテナと呼ばれます。コンテナは、単一のアプリケーション、プロセス、またはサービスのランタイムを表します。
これは最も適切な比較ではないかもしれませんが、プログラマーであれば、Dockerイメージをクラスとして、Dockerコンテナーをクラスのインスタンスとして考えることができます。
docker container
を使用して、コンテナーを開始、停止、削除、および管理できます。 サブコマンド。
Dockerコンテナを起動します#
次のコマンドは、Debianイメージに基づいてDockerコンテナを起動します。ローカルに画像がない場合は、最初にダウンロードされます:
docker container run debian
一見、何も起こらなかったように見えるかもしれません。まあ、それは真実ではありません。 Debianコンテナは、長時間実行されるプロセスがなく、コマンドを提供しなかったため、起動直後に停止します。そのため、コンテナは起動し、空のコマンドを実行してから終了しました。
スイッチ-it
コマンドラインを介してコンテナを操作できます。インタラクティブコンテナタイプを開始するには:
docker container run -it debian /bin/bash
root@ee86c8c81b3b:/#
上記の出力からわかるように、コンテナが開始されると、コマンドプロンプトが変更されます。これは、コンテナ内から作業していることを意味します。
Dockerコンテナのリスト#
実行中のコンテナを一覧表示するには、次のように入力します。
docker container ls
実行中のコンテナーがない場合、出力は空になります。
すべてのコンテナを表示するには、-a
を渡します スイッチ:
docker container ls -a
Dockerコンテナを削除する#
1つ以上のコンテナを削除するには、コンテナID(または複数のID)をコピーして、container rm
の後に貼り付けます。 サブコマンド:
docker container rm c55680af670c