【初心者】DebianへDockerインストール
はじめに
この記事はDebianへDocker Engine、containerd、Docker Composeをインストールします。
Dockerとは
Dockerとは軽量で高速に動作するコンテナ型仮想環境用のプラットフォームです。
DockerにはDocker CE(無料版)とDocker EE(有料版)があります。他にも、Docker Desktop for MacやDocker Desktop for WindowsのようなDocker CEをGUIで操作可能にした製品もあります。
DockerのインストールにはDebianの64ビットバージョンが必要です。
Dockerの仕組み
ハイパーバイザー型はゲストOSをインストールする必要がありますが、DockerではホストOSのカーネルを共有することでゲストOSを必要としません。その分だけDockerは軽快に動作します。このような技術をコンテナ型と呼びます。
図にもあるDocker Engineとはアプリケーションを構築しコンテナ化するDockerのコアとなるコンポーネントです。containerdというコンテナランタイムとセットで動作します。
Docker Engineの構成要素は3つです。
Docker CLIを使ってREST APIが動作し、ネットワーク上のDocker Hubから取得したイメージをもとにDockerデーモンがコンテナを立てたり、イメージビルド等の処理を行います。
Dockerについて、多少理解ができたと思うのでインストールまでの流れを説明します。今回はリポジトリを利用したインストールを行います。
step1 aptのパッケージを更新し、HTTPS経由でDockerの公式GPG鍵を追加します。
step2 リポジトリのセットアップ
step3 パッケージのインストール
Dockerの公式GPG鍵を取得
Dockerの以前バージョンがインストールされている場合はアンインストールしてください。
$ apt remove docker docker-engine docker.io containerd runc
必要なパッケージ、更新を行います。
# パッケージの更新
$ sudo apt update
# パッケージの取得
$ sudo apt install ca-certificates curl gnupg lsb-release
Dockerの公式GPG鍵を追加します。
$ curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
リポジトリのセットアップ
$ echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Dockerのインストール
$ apt update
$ apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin
Docker Composeもインストールしています。
Docker Composeとは複数のDockerコンテナを扱う際に、効率的な操作ができるツールです。
Docker Engineがインストールできているかどうか確認するため、hello-worldイメージを実行します。
sudo docker run hello-world
よく使われるdockerのコマンドです。
# DockerfileをもとにDockerイメージを作成
$ docker image build [option] <Dockerfile Path>
# Dockerイメージを使ってDockerコンテナを起動
$ docker container run [option] <Image Name>
# 作成済(停止中)のコンテナを起動
$ docker container start [option] <Container Name>
# 起動中のDockerコンテナを停止
$ docker container stop [option] <Container Name>
# 停止中のコンテナを削除
$ docker container rm [option] <Container Name>
# 起動中のコンテナ内で、コマンドを実行
$ docker container exec [option] <Container Name> <Command>
さいごに
この記事に関する間違いなどありましたらコメントください。
最後まで読んでいただきありがとうございました。
Discussion