メインメニュー
XAMPP アレンジ
IED
WSL2
-
道具箱
リポジトリ編
フレームワーク編
公開ソフトウェア
メタ
リンク
- PHP ライブラリ
- PHP 言語
wsl2:ubuntu:docker目次
WSL2/Ubuntu に Docker をインストールする
Docker 20.10.1
— y2sunlight 2020-12-15
Docker - 関連記事
WSL2 - 関連記事
リンク
- Docker Docs — Dockerドキュメント (本家)
- Docker ドキュメント日本語化プロジェクト — Dockerドキュメント(日本語)
- Dockerの再入門 — DockerとLinux(cgroup、namespace)との関係について説明されています。
本章では、Windows マシン上に WSL2/Ubuntu を使って Docker をインストールする方法を、Docker公式サイトの以下の手順に従って説明します。
- Install Docker Engine on Ubuntu — Ubuntu での Docker エンジンのインストール
前提条件
本章の前提条件としては、次の2つです。
- WSL2 に Ubuntuがインストールされている事(必須)。
バージョンはUbuntu 20.04.1 LTS
を想定していますが、それ以外のバージョンでも可能だと思います。まだインストールがお済でない場合は、以下を参照して下さい。- Ubuntu の自動インストール — Microsoft Store から Ubuntu を自動インストールする場合
Windowsターミナルがインストールされている事(推奨)。
必ずしも必要ではありませんが、本章では、Windowsターミナルで操作する事を前提に説明します。インストールについては本編の「Windows ターミナル」を参照して下さい。本章は手動インストールした Ubuntu で検証しています。
Dockerリポジトリの設定
Windowsターミナルで Ubuntu を開いて下さい。
Dockerにはいろいろなインストール方法がありますが、インストールを簡単にするためには、Dockerのリポジトリを設定し、そこからインストールするのが推奨されるアプローチです(Docker公式ドキュメントより)。
必要なパッケージのインストール
aptパッケージインデックスを更新します:
$ sudo apt update
必要なパッケージをインストールし、
apt
が HTTPS経由でリポジトリを使用できるようにします:$ sudo apt install apt-transport-https ca-certificates curl gnupg-agent software-properties-common -y
GPGキーの追加
docker公式のGPGキー取得し、aptのキーに設定します:
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
以下の指紋の最後の8文字を検索して、指紋付きのキーが存在することを確認して下さい。
9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88
実行例
$ sudo apt-key fingerprint 0EBFCD88 pub rsa4096 2017-02-22 [SCEA] 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88 uid [ unknown] Docker Release (CE deb) <docker@docker.com> sub rsa4096 2017-02-22 [S]
リポジトリの設定
次のコマンドを使用して、
stable
なリポジトリを設定できます。nightly
またはtest
なリポジトリを追加するには、stable
の後にnightly
またはtest
(またはその両方)を追加します。nightly
またはtest
についてはこちらを参照して下さい。$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
Dockerのインストール
以下の2つの場合を説明します。必要に応じて進めて下さい。
まず、
apt
パッケージインデックスを更新します:$ sudo apt update
最新バージョンのインストール
Docker エンジンとコンテナの最新バージョンをインストールします:
$ sudo apt install docker-ce docker-ce-cli containerd.io docker-compose -y
docker-ce
— Docker Community Edition(Docker CE)の本体(Dockerサービス)docker-ce-cli
— Docker サービスのクライアント(CLIツール)containerd.io
— Linuxコンテナ(OS API)とのインターフェース。DockerとLinuxを分離する役割があると思われます。docker-compose
— Docker コンポーザ。マルチコンテナのDockerアプリケーションを定義して実行するためのツールです。
Docker Community Edition は、開発用のローカル環境などの商用サポートが不要なバージョンで、無償で利用できます。
注意
複数のDockerリポジトリを有効にしている場合、apt install
またはapt update
コマンドで バージョンを指定せずにインストールまたは更新すると、常に可能な限り最高のバージョンがインストールされます。これは、安定性のニーズに適さない場合があります。実行例
sudo apt install docker-ce docker-ce-cli containerd.io docker-compose -y Reading package lists... Done Building dependency tree Reading state information... Done The following additional packages will be installed: cgroupfs-mount docker-ce-rootless-extras pigz python3-cached-property python3-docker python3-dockerpty python3-docopt python3-texttable python3-websocket slirp4netns Preparing to unpack .../12-docker-compose_1.25.0-1_all.deb ... Unpacking docker-compose (1.25.0-1) ... Selecting previously unselected package slirp4netns. Preparing to unpack .../13-slirp4netns_0.4.3-1_amd64.deb ... Unpacking slirp4netns (0.4.3-1) ... Setting up python3-cached-property (1.5.1-4) ... Setting up python3-texttable (1.6.2-2) ... Setting up python3-docopt (0.6.2-2.2ubuntu1) ... Setting up slirp4netns (0.4.3-1) ... Setting up containerd.io (1.4.3-1) ... Created symlink /etc/systemd/system/multi-user.target.wants/containerd.service → /lib/systemd/system/containerd.service.Setting up docker-ce-cli (5:20.10.1~3-0~ubuntu-focal) ... Setting up pigz (2.4-1) ... Setting up cgroupfs-mount (1.4) ... invoke-rc.d: could not determine current runlevel Setting up python3-websocket (0.53.0-2ubuntu1) ... update-alternatives: using /usr/bin/python3-wsdump to provide /usr/bin/wsdump (wsdump) in auto mode Setting up python3-dockerpty (0.4.1-2) ... Setting up python3-docker (4.1.0-1) ... Setting up docker-ce (5:20.10.1~3-0~ubuntu-focal) ... Created symlink /etc/systemd/system/multi-user.target.wants/docker.service → /lib/systemd/system/docker.service. Created symlink /etc/systemd/system/sockets.target.wants/docker.socket → /lib/systemd/system/docker.socket. invoke-rc.d: could not determine current runlevel Setting up docker-ce-rootless-extras (5:20.10.1~3-0~ubuntu-focal) ... Setting up docker-compose (1.25.0-1) ... Processing triggers for man-db (2.9.1-1) ... Processing triggers for systemd (245.4-4ubuntu3.3) ...
調査中
— 上の例では2ヶ所で次のエラーが起きています
invoke-rc.d: could not determine current runlevel
特定バージョンのインストール
リポジトリで利用可能なバージョンを一覧表示します。
実行例:
$ apt-cache madison docker-ce docker-ce | 5:18.09.1~3-0~ubuntu-xenial | https://download.docker.com/linux/ubuntu xenial/stable amd64 Packages docker-ce | 5:18.09.0~3-0~ubuntu-xenial | https://download.docker.com/linux/ubuntu xenial/stable amd64 Packages docker-ce | 18.06.1~ce~3-0~ubuntu | https://download.docker.com/linux/ubuntu xenial/stable amd64 Packages docker-ce | 18.06.0~ce~3-0~ubuntu | https://download.docker.com/linux/ubuntu xenial/stable amd64 Packages
特定のバージョンは以下のようにしてインストールします:
$ sudo apt-get install docker-ce=<VERSION_STRING> docker-ce-cli=<VERSION_STRING> containerd.io
<VERSION_STRING>
には、例えば、上の2番目のバージョンをインストールする場合は、5:18.09.1~3-0~ubuntu-xenial
が入ります。
初期設定
まず、dockerコマンドのインストール先とdockerエンジンのバージョンを確認してみましょう。
$ which docker /usr/bin/docker
$ sudo docker version Client: Docker Engine - Community Version: 20.10.1 API version: 1.41 Go version: go1.13.15 Git commit: 831ebea Built: Tue Dec 15 04:34:58 2020 OS/Arch: linux/amd64 Context: default Experimental: true Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
sudo docker version
の最後のメッセージ「Cannot connect to the Docker daemon …
」はDocker サービスがまだ起動していないからです。 問題ありません。Dockerグループへの参加
この段階で、Dockerグループは作成されますが、ユーザーは追加されていません。Dockerコマンドを実行するには、sudoを使用する必要があります。非特権ユーザーがDockerコマンドを実行できるようにするには、Dockerグループへの参加が必要です。
dockerグループの確認:
$ cat /etc/group|grep docker docker:x:999:
dockerグループに参加:
$ sudo gpasswd -a $USER docker
これで、sudo なしで dockerコマンドを実行できるようになります。設定を有効にする為にログアウトします:
$ logout
その他
Dockerインストール後の設定については以下も参照して下さい。
保留中
情報源: https://qiita.com/amenoyoya/items/ca9210593395dbfc8531
# WSL2 には cgroup 用ディレクトリがデフォルトで作られていないため作成しておく
## これをしておかないと Docker でプロセスのグループ化が必要になったときにエラーが起きる
$ sudo mkdir -p /sys/fs/cgroup/systemd
$ sudo mount -t cgroup -o none,name=systemd cgroup /sys/fs/cgroup/systemd
動作テスト
まず、Docker サービスを起動します:
$ sudo service docker start
WSL2では、通常のLinuxのようなブートシーケンスの中でのデーモンの起動は行われません。従って、Dockerを起動するには、常に上の手順が必要になります。詳しくは、本編「WSL2/Ubuntu に memcached サービス をインストールする:サービスの自動起動」を参照して下さい。
hello-world
hello-world
を実行して、Docker エンジンが正しくインストールされていることを確認します:$ docker run hello-world
実行例
$ docker run hello-world Unable to find image 'hello-world:latest' locally latest: Pulling from library/hello-world 0e03bdcc26d7: Pull complete Digest: sha256:1a523af650137b8accdaed439c17d684df61ee4d74feac151b5b337bd29e7eec Status: Downloaded newer image for hello-world:latest Hello from Docker! This message shows that your installation appears to be working correctly. To generate this message, Docker took the following steps: 1. The Docker client contacted the Docker daemon. 2. The Docker daemon pulled the "hello-world" image from the Docker Hub. (amd64) 3. The Docker daemon created a new container from that image which runs the executable that produces the output you are currently reading. 4. The Docker daemon streamed that output to the Docker client, which sent it to your terminal. To try something more ambitious, you can run an Ubuntu container with: $ docker run -it ubuntu bash Share images, automate workflows, and more with a free Docker ID: https://hub.docker.com/ For more examples and ideas, visit: https://docs.docker.com/get-started/
docker run
コマンドは、Dockerイメージからコンテナを起動するコマンドです。上例では、hello-world
イメージからコンテナを起動しています。この時、上例のように、イメージがローカル環境に無ければ、Docker Hubを検索してダウンロードします。そして、イメージが取得できたらそのイメージを使用してコンテナを起動します。実際の
hello-world
コンテナの実行は、「Hello from Docker!
」からになります。
docker コマンド
docker コマンドを使えば、Dockerコンテナに対する、様々な操作ができます。例えば、
docker ps
コマンドで、ローカル環境のDockerコンテナの一覧を確認できます:$ docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 80732dbb08a0 hello-world "/hello" 27 minutes ago Exited (0) 27 minutes ago vigilant_kepler
詳しくは、以下を参照して下さい。
- Docker コマンド — Docker日本語ドキュメント
アップグレード
Docker エンジンをアップグレードするには、最初に
sudo apt update
を実行し、次に「特定バージョンのインストール」の手順に従って、インストールする新しいバージョンを選択します。
アンインストール
アンインストールについては、Dockerサイトの以下のセクションを参照して下さい。
以下に邦訳を示します。
Docker エンジンのアンインストール
- Docker エンジン、CLI、および Containerd パッケージをアンインストールします:
$ sudo apt-get purge docker-ce docker-ce-cli containerd.io
- ホスト上のイメージ、コンテナー、ボリューム、またはカスタマイズされた構成ファイルは自動的に削除されません。すべてのイメージ、コンテナー、およびボリュームを削除するには:
$ sudo rm -rf /var/lib/docker
編集した構成ファイルは手動で削除する必要があります。
wsl2/ubuntu/docker.txt · 最終更新: 2020/12/30 20:17 by y2sunlight
コメント
https://www.nikesales.us.com/ https://www.eccos.us.com/ https://www.airjordan4s.us/ https://www.goldengoosesales.us.com/ https://www.redbottomshoesforwomen.us.com/ https://www.airjordan3s.us/ https://www.nikeoutletshoes.us.com/ https://www.yeezys.com.co/ https://www.air-jordansneakers.us/ https://www.redbottomshoeslouboutin.us.com/ https://www.jordans4retro.us/ https://www.louboutinshoesheels.us.com/ https://www.outletnikestore.us.com/ https://www.jordan-retro1.us.com/ https://www.coatsmoncler.us.com/ https://www.adidasyeezysneakers.us.com/ https://www.new-jordans.us.com/ https://www.nike-airmax2018.us.com/ https://www.pandoracanadajewelry.ca/ https://www.air-max90.us.com/ https://www.goldengooseshoess.us.com/ https://www.balenciagatriples.us.org/ https://www.goldengooseoutletfactory.us.com/ https://www.pandorajewelryofficial-site.us/ https://www.birkin-bag.us.com/ https://www.airjordan6rings.us/ https://www.sneakersgoldengoose.us.com/ https://www.newjordansshoes.us.com/ https://www.christianslouboutinshoes.us.com/ https://www.jordan11sshoes.us/ https://www.jacketsmoncleroutlet.us.com/ https://www.jordan11ssneakers.us/ https://www.jordan1lows.us.com/ https://www.jordansshoesforsale.us.com/ https://www.christian-louboutinheels.us.com/ https://www.pandora-braceletcharms.us/ https://www.airjordansneakers.us.com/ https://www.christianslouboutin.uk.com/ https://www.retrosairjordan.us/ https://www.monclerjacketsstore.us.com/ https://www.jordans1.us.com/ https://www.jordan13.us.org/ https://www.jordanretro11mens.us/ https://www.adidasyeezysshoes.us.com/ https://www.air-jordans11.us.com/ https://www.lebron-shoes.us.com/ https://www.adidasnmdr1.us.org/ https://www.monclercom.us.com/ https://www.nikeair-maxs.us.com/ https://www.jordanshoesretro.us.com/ https://www.jordansneakerss.us/ https://www.airjordan5.us/ https://www.jordan14.us.com/ https://www.monclervest.us.com/ https://www.ggdbsneakers.us.com/ https://www.nikesoutletstoreonlineshopping.us.com/ https://www.nikesnkrs.us.com/ https://www.jordan9.us.com/ https://www.pandoraonline.us/ https://www.kyrieirving-shoes.us.org/ https://www.jordan12retros.us/ https://www.airmax270s.us.com/ https://www.pandoras.us.com/ https://www.nikeairmax-shoes.us.com/ https://www.nikeoutletfactorys.us.com/ https://www.jordanretro-11.us.com/ https://www.christianlouboutinshoesinc.us.com/ https://www.jordans-11.us/ https://www.asics-running-shoes.us.com/ https://www.mensnikeshoes.us.com/ https://www.jordan5.us.com/ https://www.jordan1.us.com/ https://www.nikefactoryoutlets.us.org/ https://www.airjordanretro11.us.com/ https://www.air-jordan12.us/ https://www.pandoraringssite.us/ https://www.yeezyonline.us.com/ https://www.jordan-12.us.com/ https://www.nikeshoesoutletfactory.us.com/ https://www.valentinosshoes.us.org/ https://www.airforceoneshoes.us.com/ https://www.balenciagaofficial.us.com/ https://www.pandorajewelryofficialsite.us.com/ https://www.jordan10.us.com/ https://www.goldengoosessneakers.us.com/ https://www.airjordanshoess.us.com/ https://www.nikeshoes-cheap.us.com/ https://www.pandorasjewelry.us.com/ https://www.goldengoosesneakerss.us.com/ https://www.pandorascharms.us.com/ https://www.monclerstores.us.com/ https://www.jordan11low.us.com/ https://www.air-jordan4.us.com/ https://www.jordans11.us.com/ https://www.retrosjordans.us/ https://www.jordanshoess.us.com/ https://www.airjordan1s.us.org/ https://www.airmax-95.us.com/ https://www.huarachesnike.us.com/ https://www.ggdbs.us.com/ https://www.nike-jordans.us.com/ https://www.airjordan11s.us.com/ https://www.ferragamos.us.org/ https://www.jordan-shoesformen.us.com/ https://www.nikeairjordan.us.com/ https://www.yeezys-shoes.us.org/ https://www.soccercleats.us.com/ https://www.goldengoosemidstar.us.com/ https://www.newnikeshoes.us.com/ https://www.fjallraven-kanken.us.com/ https://www.jordan-retro6.us/ https://www.outletgoldengoose.us.com/ https://www.ggdbshoes.us.com/ https://www.nikeshoesforwomens.us.com/ https://www.jordan11red.us.com/ https://www.jordan13s.us/ https://www.yeezy.us.org/ https://www.nike--shoes.us.com/ https://www.jordans-4.us/ https://www.newjordan11.us/ https://www.nikeofficialwebsite.us.com/ https://www.jordanscheapshoes.us/ https://www.nikeairmax98.us/ https://www.shoeslouboutin.us.com/ https://www.jordan-8.us/ https://www.pandorajewellery.us.com/ https://www.redbottomslouboutin.us.org/ https://www.jordans1s.us.com/ https://www.vanscom.us.com/ https://www.jordans-sneakers.us.com/ https://www.goldensgoose.us.com/ https://www.retro-jordans.us/ https://www.fitflop-shoes.us.org/ https://www.jordansretro12.us/ https://www.nmds.us.com/ https://www.nikeair-jordan1.us.com/ https://www.airmax270.us.org/ https://www.nikeoutletstoresonlineshopping.us.com/ https://www.yeezys-shoes.us.com/ https://www.air-jordanssneakers.us/ https://www.jordans5.us/ https://www.canadapandoracharms.ca/ https://www.air-jordan6.us/ http://www.pandorarings.us.com/ https://www.air-jordan6.us.com/ https://www.jordan12retro.us.com/ https://www.nikesfactory.us.com/ https://www.air-jordan1s.us.com/ https://www.jamesharden-shoes.us.org/ https://www.jordan-4.us.com/ https://www.airjordansnew.us.com/ https://www.jordansretro3.us/ https://www.jordan1universityblue.us.com/ https://www.jordanretros.us.com/