【WSL】WSL2 ~ Docker-CE / 環境構築編 ~

■ はじめに

https://dk521123.hatenablog.com/entry/2020/12/08/165505

で設定した Docker Desktop だが、有料化したらしいので
その代替えを調べてみた。

目次

【1】Docker Desktop の 有料化
 1)無料で使える条件
【2】Docker-CE
【3】構築手順
 1)Docker Desktop をアンインストール
 2)WSL2 の Ubuntuに Docker CE をインストール
 3)Linux に Docker Engineをインストール
 4)Docker を使うための設定
 5)動作確認
 6)Docker compose のインストール(任意)

【1】Docker Desktop の 有料化

「Docker Desktop 4.0」リリースで
料金プランを刷新され、有料化した

https://www.itmedia.co.jp/news/articles/2109/02/news112.html
https://forest.watch.impress.co.jp/docs/news/1347558.html

1)無料で使える条件

* 以下の条件では、そのまま無料で使える。
 => ただ、仕事では使うのは厳しい、、、

[1] スモールビジネス
(従業員数250人未満かつ年間売上高1000万ドル未満)
[2] 個人利用
[3] 教育機関
[4] 非商用のオープンソースプロジェクト

【2】Docker-CE

* CE (Community Edition; コミュニティエディション)
 => 要は、Dockerの無償版

https://www.publickey1.jp/blog/17/dockerdockerdocker_enterprise_editioncommunity_edition.html

Docker社から提供される無償版のDockerは
「Docker Community Edition」(以下Docker CE)になることも発表

https://www.docker.com/docker-news-and-press/docker-launches-new-enterprise-edition-accelerate-business-critical

Docker CE is free and is available
 for Mac and Windows, for AWS and Azure, and for CentOS, Debian, Fedora and Ubuntu

Docker Community Edition for “Do IT Yourself” Dev and Ops
Docker Community Edition (CE) is a free platform for open infrastructure
 that addresses the needs of both the dev and ops communities. 

https://github.com/docker/docker-ce/blob/master/LICENSE

Apache License 2.0

【3】構築手順

1)Docker Desktop をアンインストール
2)WSLコマンドなどでLinuxをインストール
3)Linux に Docker Engineをインストール
4)Docker を使うための設定
5)動作確認
6)Docker compose のインストール(任意)

1)Docker Desktop をアンインストール

 Control Panel などから、
Docker Desktop を Windows 上から完全に削除

2)WSLコマンドなどでLinuxをインストール

* コマンドプロンプト or PowerShell を立ち上げて
 以下をコマンドする

コマンド例

# 使用可能な Linux ディストリビューションを一覧表示
# wsl --list --online
wsl -l -o

# Ubuntu をインストールする場合(今回は、Ubuntuを選択)
wsl --install -d Ubuntu

# Debian の場合
wsl --install --distribution Debian

※補足:WSLコマンドのヘルプ

* 「wsl --help」でヘルプが日本語で出るので役に立つかも。
 => 他のコマンドについては、以下の関連記事を参照のこと

https://dk521123.hatenablog.com/entry/2023/01/29/000000

3)Linux に Docker Engineをインストール

リポジトリのセットアップ

sudo apt-get update

sudo apt-get install \
    ca-certificates \
    curl \
    gnupg \
    lsb-release

curl -fsSL https://download.docker.com/linux/ubuntu/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/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Dockerエンジンのインストール

sudo apt-get update

sudo apt-get install docker-ce docker-ce-cli containerd.io

4)Docker を使うための設定

一般ユーザーへの権限付与

# WSL用ユーザ を docker グループに所属させる
sudo usermod -aG docker $USER

Docker デーモンの起動の設定

# Docker デーモンを手動で起動する
sudo /etc/init.d/docker start

補足:systemctlコマンドについて

* WSLではsystemdがPID1で動いていないため、
 systemctlなどのコマンド(e.g. sudo systemctl start docker)が使えない
 => 使用する場合は「Genie」を導入する必要がある(以下の関連記事を参照のこと)

https://dk521123.hatenablog.com/entry/2021/11/03/003836

Docker デーモンの自動起動の設定

vi ~/.bashrc
~~~~~
sudo /etc/init.d/docker start
~~~~~

Dockerコマンドでsudo のパスワードを入力なしで使うための設定

sudo visudo
~~~~~
%docker ALL=(ALL)  NOPASSWD: /etc/init.d/docker
~~~~~

5)動作確認

sudo docker run hello-world

6)Docker compose のインストール(任意)

# インストール用ディレクトリを作成
sudo mkdir -p /usr/local/libexec/docker/cli-plugins

# docker-composeをインストール
cd /usr/local/libexec/docker/cli-plugins
# See and check the version of Docker from https://github.com/docker/compose/releases/  
sudo curl -L https://github.com/docker/compose/releases/download/v2.20.3/docker-compose-linux-x86_64 -o docker-compose

# docker-composeに実行権限を与える
sudo chmod +x docker-compose

# 確認
docker compose version

参考文献

https://qiita.com/ohtsuka1317/items/617a865b8a9d4fb67989
https://blog.techlab-xe.net/using-docker-without-docker-desktop-1/

関連記事

WSL2 ~ Docker Desktop / 環境構築編 ~
https://dk521123.hatenablog.com/entry/2020/12/08/165505
WSL ~ Docker-CE + Genie / 環境構築編 ~
https://dk521123.hatenablog.com/entry/2021/11/03/003836
WSL2 ~ 基本編 ~
https://dk521123.hatenablog.com/entry/2023/01/29/000000
WSL ~ Windows Terminal ~
https://dk521123.hatenablog.com/entry/2020/12/10/094125
Docker ~ Windows / 環境構築編 ~
https://dk521123.hatenablog.com/entry/2017/09/23/235818
Windows / Docker Desktop でのトラブル
https://dk521123.hatenablog.com/entry/2020/12/11/115814
Docker compose ~ 環境構築編 ~
https://dk521123.hatenablog.com/entry/2022/04/28/000000
Docker compose ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2022/05/21/222910
Docker compose ~ 基本編 ~
https://dk521123.hatenablog.com/entry/2020/04/11/000000
Docker compose ~ docker-compose.yml ~
https://dk521123.hatenablog.com/entry/2020/12/18/152949