Dockerは、事実上どこでも実行できるポータブルで自給自足のコンテナーとしてアプリケーションを迅速に構築、テスト、デプロイできるようにするコンテナー化テクノロジーです。 Dockerは、コンテナーデプロイメントの事実上の標準になり、DevOpsエンジニアとその継続的インテグレーションおよびデリバリーパイプラインにとって不可欠なツールです。
このチュートリアルでは、Ubuntu 18.04マシンにDockerをインストールする方法と、Dockerの基本的な概念とコマンドについて説明します。
前提条件#
このチュートリアルを続行する前に、sudo権限を持つユーザーとしてログインしていることを確認してください。このチュートリアルのすべてのコマンドは、root以外のユーザーとして実行する必要があります。
UbuntuへのDockerのインストール#
Dockerインストールパッケージは公式のUbuntu18.04リポジトリで入手できますが、常に最新バージョンであるとは限りません。推奨されるアプローチは、Dockerのリポジトリから最新のDockerパッケージをインストールすることです。
Dockerリポジトリの有効化#
-
パッケージリストを更新し、HTTPS経由で新しいリポジトリを追加するために必要な依存関係をインストールすることから始めます。
sudo apt update
sudo apt install apt-transport-https ca-certificates curl gnupg-agent software-properties-common
-
次の
curl
を使用して、リポジトリのGPGキーをインポートします コマンド:curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
-
Docker APTリポジトリをシステムに追加します:
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
Docker CEのインストール#
Dockerリポジトリが有効になったので、必要なDockerバージョンをインストールできます。
-
Dockerの最新バージョンをインストールするには、以下のコマンドを使用します。特定のDockerバージョンをインストールする場合は、この手順をスキップして次の手順に進んでください。
sudo apt update
sudo apt install docker-ce
-
特定のバージョンをインストールするには、最初にDockerリポジトリで利用可能なバージョンをリストします。
apt list -a docker-ce
このコマンドは、使用可能なDockerバージョンを2番目の列に出力します。
docker-ce/bionic 5:18.09.7~3-0~ubuntu-bionic amd64 docker-ce/bionic 5:18.09.6~3-0~ubuntu-bionic amd64 docker-ce/bionic 5:18.09.5~3-0~ubuntu-bionic amd64
たとえば、バージョン
18.09.6
をインストールするには 次のように入力します:sudo apt install docker-ce=5:18.09.6~3-0~ubuntu-bionic
Dockerパッケージが自動的に更新されないようにするには、保留としてマークします。
sudo apt-mark hold docker-ce
インストールが完了すると、Dockerサービスが自動的に開始されます。次のように入力して確認できます:
sudo systemctl status docker
出力は次のようになります:
● docker.service - Docker Application Container Engine
Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor p
Active: active (running) since Tue 2019-07-02 11:28:40 UTC; 15min ago
Docs: https://docs.docker.com
Main PID: 11911 (dockerd)
Tasks: 10
CGroup: /system.slice/docker.service
sudoなしでdockerコマンドを実行する#
デフォルトでは、Dockerコマンドを実行するには管理者権限が必要です。
sudo
を付加せずに、root以外のユーザーとしてDockerコマンドを実行するには ユーザーをdocker
に追加する必要があります グループ。このグループは、DockerCEパッケージのインストール中に作成されます。これを行うには、次のコマンドを実行します。
sudo usermod -aG docker $USER
$USER
ユーザー名を保持する環境変数です。
ログアウトしてから再度ログインして、グループメンバーシップを更新します。
Dockerが正常にインストールされ、sudo
を付加せずにdockerコマンドを実行できることを確認するには 、実行:
docker container run hello-world
このコマンドは、テストイメージをダウンロードし、コンテナーで実行し、「HellofromDocker」メッセージを出力して終了します。出力は次のようになります。
Dockerのアップグレード#
新しいDockerバージョンがリリースされたら、標準のアップグレードプロセスを使用してパッケージを更新できます。
sudo apt update
sudo apt upgrade
Dockerのアンインストール#
Dockerをアンインストールする前に、すべてのコンテナー、イメージ、ボリューム、およびネットワークを削除してください。
apt
でインストールされた他のパッケージと同様に、Dockerをアンインストールできます。 :
sudo apt purge docker-ce
sudo apt autoremove
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
を使用します サブコマンド。
たとえば、Ubuntuイメージを検索するには、次のように入力します。
docker search ubuntu
出力は次のようになります。
ご覧のとおり、検索では5列のテーブルNAME
が出力されます。 、DESCRIPTION
、STARS
、OFFICIAL
およびAUTOMATED
。
公式イメージは、Dockerがアップストリームパートナーと共同で開発したイメージです。
Docker Hub上のほとんどのDockerイメージは、バージョン番号でタグ付けされています。タグが指定されていない場合、Dockerは最新のタグをプルします。
Dockerイメージのダウンロード#
たとえば、Ubuntu 18.04イメージの最新の公式ビルドをダウンロードするには、次のimage pull
を使用します。 コマンド:
docker image pull ubuntu
インターネットの速度によっては、ダウンロードに数秒または数分かかる場合があります。
タグを指定しない場合、Dockerは最新のUbuntuイメージをプルします。この記事の執筆時点では18.04です。
以前のUbuntuリリース、たとえばUbuntu 16.04をダウンロードする場合は、docker image pull ubuntu:16.04
を使用する必要があります。 。
ダウンロードしたすべての画像を一覧表示するには、次のように入力します。
docker image ls
出力は次のようになります:
Dockerイメージを削除する#
何らかの理由で画像を削除したい場合は、image rm [image_name]
を使用して削除できます。 サブコマンド:
docker image rm ubuntu
Dockerコンテナ#
画像のインスタンスはコンテナと呼ばれます。コンテナは、単一のアプリケーション、プロセス、またはサービスのランタイムを表します。
これは最も適切な比較ではないかもしれませんが、プログラマーであれば、Dockerイメージをクラスとして、Dockerコンテナーをクラスのインスタンスとして考えることができます。
docker container
を使用して、コンテナーを開始、停止、削除、および管理できます。 サブコマンド。
Dockerコンテナを起動します#
次のコマンドは、Ubuntuイメージに基づいてDockerコンテナを起動します。ローカルに画像がない場合は、最初に画像がダウンロードされます:
docker container run ubuntu
一見、何も起こらなかったように見えるかもしれません。まあ、それは真実ではありません。 Ubuntuコンテナは、長時間実行されるプロセスがなく、コマンドを提供しなかったため、起動後すぐに停止します。コンテナが起動し、空のコマンドを実行してから終了しました。
スイッチ-it
コマンドラインを介してコンテナを操作できます。インタラクティブコンテナタイプを開始するには:
docker container run -it ubuntu /bin/bash
[root@719ef9304412 /]#
上記の出力からわかるように、コンテナが開始されると、コマンドプロンプトが変更されます。これは、コンテナ内から作業していることを意味します。
Dockerコンテナのリスト#
アクティブなコンテナを一覧表示するには、次のように入力します。
docker container ls
実行中のコンテナーがない場合、出力は空になります。
アクティブなコンテナと非アクティブなコンテナの両方を表示するには、-a
を渡します。 スイッチ:
docker container ls -a
Dockerコンテナを削除する#
1つ以上のコンテナを削除するには、コンテナID(または複数のID)をコピーして、container rm
の後に貼り付けます。 サブコマンド:
docker container rm c55680af670c