VIDEO
やりたいこと
Docker Desktop for Windows の導入
環境情報
環境
バージョン
OS
Windows 11 Pro 23H2
OS ビルド
22631.3527
Git for Windows
2.45.0.windows.1
WSL
2.1.5.0
Ubuntu
22.04.4 LTS
Windows Terminal
1.19.11213.0
Visual Studio Code
1.88.1
docker desktop
v4.29.0
docker
26.0.0
docker-compose
v2.26.1-desktop.1
2024-05-05 現在
前提条件
Windows11 WSL Ubuntu VSCode Git GitHub 環境構築 を実施済み
WSL 環境で Docker Desktop for Windows を使えるようにするためには、
先に WSL Ubuntu をセットアップしておくほうが良い
Docker Desktop for Windows インストール
インストールウィザード:
Use WSL 2 instead of Hyper-V (recommended)
Hyper-V の代わりに WSL2 を使う(推奨)をオン
Home版ではHyper-Vが使えないので、このオプションは表示されない
Add shortcut to desktop
デスクトップにショートカットが欲しい場合はオン
OK でインストール開始
Close で完了
Docker Desktop for Windows 初回起動
Docker Subscription Service Agreement → Accept
有料サブスクリプションサービスについて→承認
この契約書は、主に企業やビジネス向けの契約書であり、個人利用にはあまり関係がない
Continue without signing in
Docker ID アカウントにサインインせず続ける
Welcome Servey → Skip Servey
調査 → スキップする
サインインするメリット:
Docker Desktop から Docker Hub リポジトリに直接アクセスできる
6時間あたり200回のダウンロードが可能
(サインインしない場合、6時間あたり100回のダウンロードが可能)
Hardened Desktopを活用することで、コンテナ開発における組織のセキュリティ体制を強化できる
(個人には関係ない)
情報源:Sign in to Docker Desktop | Docker Docs
Docker Desktop for Windows 設定
General
Send usage statistics -> オフ
エラー レポート、システムのバージョンと言語、および Docker Desktop のライフサイクル情報 (開始、停止、リセットなど) を送信
Notifications
不要な通知をオフにする
個人的には、Docker Desktop の新しいリリースやアップデートに関する通知を受け取るために、調査だけオフ
Status updates on tasks and processes
Recommendations from Docker
Docker announcements
Docker surveys → オフ
docker動作確認(Windows)
hello-world を使ってDockerの動作確認を簡単に行う
情報源:docker | Docker Docs
1. PowerShell (Windows Terminal) を開く
Windwos Terminal で PowerShell を開く
2. docker のバージョン確認
実行結果(例):
1
Docker version 26.0.0, build 2ae903e
3. docker-compose のバージョン確認
実行結果(例):
1
Docker Compose version v2.26.1-desktop.1
4. docker buildx のバージョン確認
実行結果(例):
1
github.com/docker/buildx v0.13.1-desktop.1 2368b2ee41873b948cb607251cec573ed00f00f9
5. Dockerイメージのリストを表示
エイリアス↓ 通常はこちらを使う
実行結果:
1
REPOSITORY TAG IMAGE ID CREATED SIZE
Dockerイメージは一つもない
6. Docker Desktop → Images を確認
Dockerイメージは一つもない
7. Dockerコンテナの一覧を表示
-a
はすべてのコンテナを表示するオプション(デフォルトは実行中のみを表示)
エイリアス↓ 通常はこちらを使う
実行結果:
1
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
Dockerコンテナは一つもない
8. Docker Desktop → Containers を確認
Dockerコンテナは一つもない
9. hello-world コンテナを実行
実行結果(原文):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Unable to find image 'hello-world:latest' locally
latest : Pulling from library / hello - world
c1ec31eb5944 : Pull complete
Digest : sha256 : a26bff933ddc26d5cdf7faa98b4ae1e3ec20c4985e6f87ac0973052224d24302
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 /
実行結果(翻訳):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
画像「hello-world:latest」がローカルに見つからない
最新の library/hello-world から引っ張ってくる
c1ec31eb5944: プル完了
Digest: sha256:a26bff933ddc26d5cdf7faa98b4ae1e3ec20c4985e6f87ac0973052224d24302
ステータス hello-world:latestの新しいイメージをダウンロードしました。
Dockerからこんにちは!
このメッセージは、インストールが正常に動作していることを示しています。
このメッセージを生成するために、Dockerは以下のステップを踏みました:
1. DockerクライアントがDockerデーモンにコンタクトした。
2. DockerデーモンがDocker Hubから "hello-world "イメージを取り出した。
(amd64)
3. Dockerデーモンは、そのイメージから新しいコンテナを作成し、そのコンテナで以下を実行する。
実行ファイルを実行する。
4. Dockerデーモンはその出力をDockerクライアントにストリーミングし、Dockerクライアントはそれをあなたのターミナルに送信する。
に送る。
もっと野心的なことを試すには、以下のようにしてUbuntuコンテナを実行できる:
docker run -it ubuntu bash
無料のDocker IDを使って、イメージの共有やワークフローの自動化などを行おう:
https://hub.docker.com/
その他の例やアイデアについては、以下をご覧ください:
https://docs.docker.com/get-started/
10. Docker Desktop → Images, Containers を確認
Hello World の Docker イメージとコンテナが存在することを確認
docker動作確認(WSL Ubuntu)
Windows 側で動作確認した hello-world を WSL Ubuntu 側から削除する
情報源:docker | Docker Docs
11. 再度、Dockerイメージのリストを表示
実行結果(例):
1
2
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest d2c94e258dcb 12 months ago 13.3kB
12. 再度、Dockerコンテナの一覧を表示
実行結果(例):
1
2
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2ea0b80bd73e hello-world "/hello" About a minute ago Exited (0) About a minute ago keen_rhodes
13. Dockerイメージを削除
<IMAGE> には、docker images
で取得した IMAGE ID を指定する
1
docker image rm <IMAGE>
エイリアス↓ 通常はこちらを使用
hello-world のイメージIDを指定して実行:
1
docker rmi d2c94e258dcb
実行結果:
1
Error response from daemon: conflict: unable to delete d2c94e258dcb (must be forced) - image is being used by stopped container 0a1955e4785b
エラーメッセージ:Dockerイメージを削除するためには、このDockerイメージで構築されたDockerコンテナを先に削除しなければならない
14. Docker Desktop → Image から hello-world を削除
手順13.と同様の理由で削除できない
15. Dockerコンテナを削除
<CONTAINER> には、docker ps -a
で取得した CONTAINER ID または NAMES を指定する
1
docker container rm <CONTAINER>
エイリアス↓ 通常はこちらを使う
hello-world のコンテナIDを指定して実行:
実行結果:
16. hello-world のDockerコンテナが削除されたのを確認
実行結果:
1
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
17. Docker Desktop → Containers で hello-world が削除されたのを確認
コンテナが一つもないことを確認
18. 今度こそ hello-world のDockerイメージを削除
1
docker rmi d2c94e258dcb
実行結果(例):
1
2
3
4
Untagged: hello-world:latest
Untagged: hello-world@sha256:a26bff933ddc26d5cdf7faa98b4ae1e3ec20c4985e6f87ac0973052224d24302
Deleted: sha256:d2c94e258dcb3c5ac2798d32e1249e42ef01cba4841c2234249495f87264ac5a
Deleted: sha256:ac28800ec8bb38d5c35b49d45a6ac4777544941199075dff8c4eb63e093aa81e
19. hello-world のDockerイメージが削除されたのを確認
実行結果:
1
REPOSITORY TAG IMAGE ID CREATED SIZE
20. Docker Desktop → Image からも hello-world が削除されたのを確認
イメージが一つもないことを確認
WSL の既定ディストリビューションの設定
WSL の確認:
WSLのディストリビューションとして以下の2つがインストールされる
docker-desktop
docker-desktop-data
Docker Desktop をインストールしたあとに Ubuntu をインストールした場合、既定のディストリビューションが、docker-desktop に設定された状態になる
VSCode で開く既定のディストリビューションを普段使用するディストリビューションにしておく
WSL既定のディストリビューションを Ubuntu にするコマンド:
1
wsl - -set-default Ubuntu
Docker Desktop for Windows のアンインストール
Docker Desktop をアンインストールする方法
情報源:Uninstall Docker Desktop | Docker Docs
本体のアンインストール
設定
アプリ
インストールされているアプリ
Docker Desktop > アンインストール
手動でファイル削除(Windows)
Docker Desktopをアンインストールした後、手動で削除できるファイルが残っている場合がある
1
2
3
4
5
6
7
C:\ProgramData\Docker
C:\ProgramData\DockerDesktop
C:\Program Files\Docker
C:\Users\<your user name>\AppData\Local\Docker
C:\Users\<your user name>\AppData\Roaming\Docker
C:\Users\<your user name>\AppData\Roaming\Docker Desktop
C:\Users\<your user name>\.docker
管理者権限で PowerShell を開き、コマンドを実行
1
2
3
4
5
6
7
8
Remove-Item -Recurse -Force -Path `
"C:\ProgramData\Docker" , `
"C:\ProgramData\DockerDesktop" , `
"C:\Program Files\Docker" , `
" $env:USERPROFILE \AppData\Local\Docker" , `
" $env:USERPROFILE \AppData\Roaming\Docker" , `
" $env:USERPROFILE \AppData\Roaming\Docker Desktop" , `
" $env:USERPROFILE \.docker"
手動でファイル削除(WSL)
Docker Desktop for Windows を使っていたけれどアンインストール
WSL Ubuntu に Docker CE をインストール
という状況の場合、Ubuntu の Docker CE ではなく Docker Desktop for Windows のコマンドを使おうとするためdocker コマンドが使えないことがある
この場合は、WSL Ubuntu 内に残っている Docker Desktop for Windows コマンドへのリンクを消せばよい
dockerコマンドのリンクを確認
1
ls -la /usr/local/lib/docker/cli-plugins/
実行結果(例):
1
2
3
4
5
6
7
8
9
10
11
12
total 44
drwxr - xr - x 2 root root 4096 May 1 20 : 11 .
drwxr - xr - x 3 root root 4096 May 1 20 : 11 ..
lrwxrwxrwx 1 root root 80 May 1 20 : 11 docker - buildx -> / mnt / wsl / docker - desktop / cli - tools / usr / local / lib / docker / cli - plugins / docker - buildx
lrwxrwxrwx 1 root root 81 May 1 20 : 11 docker - compose -> / mnt / wsl / docker - desktop / cli - tools / usr / local / lib / docker / cli - plugins / docker - compose
lrwxrwxrwx 1 root root 79 May 1 20 : 11 docker - debug -> / mnt / wsl / docker - desktop / cli - tools / usr / local / lib / docker / cli - plugins / docker - debug
lrwxrwxrwx 1 root root 77 May 1 20 : 11 docker - dev -> / mnt / wsl / docker - desktop / cli - tools / usr / local / lib / docker / cli - plugins / docker - dev
lrwxrwxrwx 1 root root 83 May 1 20 : 11 docker - extension -> / mnt / wsl / docker - desktop / cli - tools / usr / local / lib / docker / cli - plugins / docker - extension
lrwxrwxrwx 1 root root 82 May 1 20 : 11 docker - feedback -> / mnt / wsl / docker - desktop / cli - tools / usr / local / lib / docker / cli - plugins / docker - feedback
lrwxrwxrwx 1 root root 78 May 1 20 : 11 docker - init -> / mnt / wsl / docker - desktop / cli - tools / usr / local / lib / docker / cli - plugins / docker - init
lrwxrwxrwx 1 root root 78 May 1 20 : 11 docker - sbom -> / mnt / wsl / docker - desktop / cli - tools / usr / local / lib / docker / cli - plugins / docker - sbom
lrwxrwxrwx 1 root root 79 May 1 20 : 11 docker - scout -> / mnt / wsl / docker - desktop / cli - tools / usr / local / lib / docker / cli - plugins / docker - scout
docker ディレクトリごとリンクを削除
1
sudo rm -rf /usr/local/lib/docker
関連記事
Windows11 WSL Ubuntu VSCode Git GitHub 環境構築
WSL Ubuntu に Docker CE をインストール