Ubuntu20.04にDockerをインストールして使用する方法


Dockerは、開発者やシステム管理者がアプリケーションを構築、実行、コンテナーと共有するための最も人気のあるオープンソースプラットフォームです。コンテナーは柔軟性があり、軽量で、ポータブルで、疎結合で、スケーラブルで、より安全であるため、コンテナー化(コンテナーを使用してアプリケーションをデプロイする)が一般的になりつつあります。

この記事は、初心者がいくつかの基本的なコマンドを使用してUbuntu 20.04LinuxシステムにDockerをインストールして使用する方法を学ぶための良い出発点です。このガイドでは、Docker Community Edition(CE)をインストールします。

Ubuntu20.04へのDockerのインストール

最新バージョンのDockerを使用するには、公式のDockerリポジトリからインストールします。したがって、公式のDockerリポジトリのGPGキーをシステムに追加することから始め、その後、次のコマンドを使用してリポジトリ構成をAPTソースに追加します。

$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable"

次に、次のコマンドを使用して、APTパッケージキャッシュを更新し、新しいDockerパッケージをシステムに含めます。

$ sudo apt update

次に、図のようにDockerパッケージをインストールします。

$ sudo apt install docker-ce

Dockerパッケージのインストールプロセス中に、パッケージインストーラーがsystemd(システムおよびサービスマネージャー)をトリガーして、Dockerサービスを自動的に開始して有効にします。次のコマンドを使用して、Dockerサービスがアクティブであり、システムの起動時に自動的に開始できるようになっていることを確認します。また、そのステータスを確認してください。

$ sudo systemctl is-active docker
$ sudo systemctl is-enabled docker
$ sudo systemctl status docker

Dockerサービスを管理および制御するためのsystemctlコマンドは他にもいくつかあります。これには次のものが含まれます。

$ sudo systemctl stop docker			#stop the docker service
$ sudo systemctl start docker			#start the docker service
$ sudo systemctl  restart docker		#restart the docker service

システムにインストールされているDockerCEのバージョンを確認するには、次のコマンドを実行します。

$ docker version

オプションや引数なしでdockerコマンドを実行すると、使用可能なdocker使用コマンドを表示できます。

 
$ docker

sudoコマンドを使用してDockerをroot以外のユーザーとして管理する

デフォルトでは、Dockerデーモンはユーザーrootが所有するUNIXソケット(TCPポートではなく)にバインドします。したがって、Dockerデーモンは常にrootユーザーとして実行され、dockerコマンドを実行するには、sudoを使用する必要があります。

さらに、Dockerパッケージのインストール中に、 docker というグループが作成されます。 Dockerデーモンが起動すると、dockerグループのメンバーがアクセスできるUNIXソケットが作成されます(rootユーザーと同等の権限が付与されます)。

sudoを使用せずにdockerコマンドを実行するには、次のように、dockerにアクセスすることになっているすべての非rootユーザーをdockerグループに追加します。この例では、コマンドは現在ログオンしているユーザー()またはユーザー名をdockerグループに追加します。

$ sudo usermod -aG docker $USER
OR
$ sudo usermod -aG docker username

グループへの変更をアクティブにするには、次のコマンドを実行します。

$ newgrp docker 
$ groups

次に、sudoなしでdockerコマンドを実行できることを確認します。次のコマンドは、テストイメージをダウンロードし、コンテナーで実行します。コンテナが実行されると、情報メッセージが出力されて終了します。これは、インストールが正常に機能しているかどうかをクロスチェックするもう1つの方法でもあります。

$ docker run hello-world

Dockerイメージの操作

Dockerイメージは、Dockerコンテナーを作成するための手順が記載された読み取り専用のテンプレートファイルです。カスタムイメージを作成することも、他のユーザーが作成してコンテナイメージの世界最大のライブラリおよびコミュニティであるDockerHubで公開したもののみを使用することもできます。

次のコマンドを使用して、DockerHubで centos イメージを検索できます。

$ docker search centos 

イメージをローカルにダウンロードするには、pullコマンドを使用します。この例は、公式のcentosイメージをダウンロードする方法を示しています。

$ docker pull centos

ダウンロードが完了すると、ローカルシステムで利用可能なイメージを一覧表示できます。

$ docker images

イメージが不要になった場合は、システムから削除できます。

$ docker rmi centos
OR
$ docker rmi centos:latest    #where latest is the tag

Dockerコンテナの実行と管理

Dockerコンテナーは、Linuxでネイティブに実行され、ホストマシンのカーネルを他のコンテナーと共有するプロセスです。 Dockerイメージに関しては、コンテナーは単なる実行イメージです。

新しい centos イメージに基づいてコンテナを起動するには、次のコマンドを実行します。ここで、“ centos” はローカルイメージ名、“ cat/etc/centos-release”はローカルイメージ名です。コンテナで実行するコマンド:

$ docker run centos cat /etc/centos-release

コンテナは、ホストとは別のファイルシステム、ネットワーク、および分離されたプロセスツリーという独自のプロセスを持っているという点で分離された個別のプロセスを実行します。以下に示すように、コンテナのID、IDプレフィックス、または名前を使用してコンテナを操作できることに注意してください。上記のコンテナプロセスは、コマンドの実行後に終了します。

Dockerコンテナーを一覧表示するには、次のようにdockerpsコマンドを使用します。 -l フラグを使用して、すべての状態で最後に作成されたコンテナーを表示します。

$ docker ps
OR
$ docker ps -l

終了したコンテナを含むすべてのコンテナを表示するには、 -a フラグを使用します。

$ docker ps -a

終了後にコンテナIDを使用してコンテナを開始することもできます。たとえば、前のコマンドでは、コンテナIDは94c35e616b91です。示されているようにコンテナーを開始できます(コマンドを実行して終了することに注意してください)。

$ docker start 94c35e616b91

IDを使用して実行中のコンテナーを停止するには、図のようにstopコマンドを使用します。

$ docker stop 94c35e616b91

Dockerでは、コンテナーの実行時に -name オプションを使用してコンテナーに名前を割り当てることもできます。

$ docker run --name my_test centos cat /etc/centos-release
$ docker ps -l

これで、コンテナ名を使用してコンテナを管理(開始、停止、統計、削除など)できます。

$ docker stop my_test
$ docker start my_test
$ docker stats my_test
$ docker rm my_test

Dockerコンテナへのインタラクティブセッションの実行

コンテナ内で対話型シェルセッションを起動して、コンテナ内でコマンドを実行できるようにするには、次のコマンドを実行します。

$ docker run --name my_test -it centos

上記のコマンドでは、 -it スイッチがDockerに、コンテナーのstdinに接続された疑似TTYを割り当てるように指示し、コンテナー内にインタラクティブなbashシェルを作成します。

図のようにexitコマンドを発行して終了できます。

# exit

終了したくない場合は、コンテナーから切り離して実行したままにすることができます。これを行うには、 CTRL + p 、次に CTRL + q キーシーケンスを使用します。

ローカル標準入力、出力、およびエラーストリームを実行中のコンテナーにアタッチするattachコマンドを使用して、コンテナーに接続し直すことができます。

$ docker attach my_test

さらに、 -d フラグを使用して、デタッチモードでコンテナを起動できます。次に、attachコマンドを使用して、端末の標準入力、出力、およびエラーストリームを実行中のコンテナにアタッチします。

$ docker run --name my_test -d -it centos
$ docker attach my_test

最後になりましたが、次のコマンドを実行することで、ホストセッションから実行中のコンテナを停止できます。

$ docker kill my_test

それで全部です!このガイドでは、Ubuntu 20.04LinuxにDockerCEをインストールして使用する方法について説明しました。ご不明な点がございましたら、以下のフィードバックフォームを使用してお問い合わせください。