Docker入門②-Dockerの話とCLI版の導入(Windows 11)-
書いてて思ったんですが、このペースだとゴールまでに何年かかるか分かんないですね。なんか実際に手を動かした方がいい気がしてきました(決して文章が面倒になったわけではないです。決して。)
という事で今回はDockerの事をサクッと書いて次の回の準備をしましょう。
この記事の目的
Dockerとは何ぞやを知って、CLI版で動かす環境を構築する
Dockerとは
Dockerとはコンテナを動かす実質的なソフトウェアになります。デファクトスタンダードになっており、コンテナとDockerをほぼ同じニュアンスで使う人もいます。
どんなものかを図など使って説明するより実際に動かしてみた方が分かりやすいと思うのでちょっと構築しましょう。
基本的にWindowsではDocker Desktopというソフトを入れて使う必要があるのですが、ちょっと前に法人に対して有料化してしまいました。めんどくさいアカウント申請を社内でする必要が出てきた我々はもっとフランクに使える方法を探すのですが、それがWindows Subsystem for Linux(WSL)でDockerを使うやり方です。WSLとはWindowsの中にLinux(Ubuntu)を入れるこれもまた仮想マシンになります。実はプロキシを使っている会社だとWSLを入れるのも一苦労な事もあるのですが、ここではとりあえずそれは無視して一般的な方法で構築していきます。では早速!
WSLの構築
構築といってもPower Shellで
wsl --install
と入力すればよいです。うまくいかないときは、「Power Shellを管理者権限で実行する」「仮想マシンプラットフォームが有効になっている」ことを確認してみましょう。
成功していればアプリ一覧にアイコンがあります。
Ubuntuと表示されている方を選ぶとコマンドライン版が出てくるので、ユーザー名とパスワードの初期設定を行いましょう。
ちなみにですが、通常上記の手順で行えば最新のWSLが手に入るので問題ないと思われますが、WSLのバージョンによってはSystemdが使えないバージョンがあります。そうなるとDockerを使うのに苦労(systemdが動くサードパーティパッケージをインストールするなど)するのでなるべくWSL2を使いましょう。
systemctl list-units --type service --all
と入力してサービスが表示されればOKです。
余談ですがsystemdとはLinuxのサービスやデーモンを管理する機能の事です。Linuxを動かす中心的な機能の一つであり仕組みを把握するのは容易ではないですが多分好きな人は好きな分野です。かつては「init」という機能でサービスやデーモンを動かしていたようなのですが、最近になってSystemdを用いる方法が主流になってきたようです。前述のWSLの古いバージョンではこのinitが動いているのです。Linuxガチ勢以外でもsystemdを「起動時にコマンドやスクリプトを実行したい」という事でそれなりに使う頻度も多いのでどこかで解説したいですね。
Dockerのインストール
厳密に言うとDocker Engineをインストールします。公式マニュアルはこちら
その前にまずはUbuntuで何かインストールするときに行う儀式
sudo apt update sudo apt upgrade -y
をしましょう。
パッケージリストの更新が終わったら順にサイト通りにコマンドをコピペしますよー
- インストール済みパッケージリストの削除
for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done
- Dockerリポジトリの作成
# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
# Add the repository to Apt sources:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \ sudo tee /etc/apt/sources.list.d/docker.list > /dev/null sudo apt-get update
- Dockerパッケージのインストール
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
- Dockerがインストール出来たか確認
下のような文章が表示されればOK!
sudo docker run hello-world
- sudoなしで実行する
dockerコマンドをsudoを使わずに行うには次のコマンドを打って再起動をしましょう
sudo groupadd docker
sudo usermod -aG docker $USER
おわりに
まあ環境構築しただけなので何の実感もないと思いますが、これでdockerを操る準備が出来ました。