Docker Desktop for Windows on WSL2 (2021年睦月)

# 初めに

いつも見ていただきありがとうございます。いよいよDockerを導入します。

# インストール
scoopのbucketが存在しないため、手動で行う。
## インストーラ取得
以下のページから「Docker Destop for Windows」をダウンロード。

https://hub.docker.com/editions/community/docker-ce-desktop-windows/
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/352975/debdf631-aedd-3b19-9cba-17c55d48d813.png)
## インストール実行
ファイルをダブルクリックでインストールを実行する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/352975/222b6dbf-656d-e0b6-43ec-340254f855c2.png)
OKボタンで次に進む。しばらくしてインストール完了。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/352975/7424e393-0592-bcb3-0aab-233236a91e50.png)

## 強制ログアウト
再度ログインすると、DockerDesktopが起動している。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/352975/7a770275-ed20-0283-0ee0-1a3ab1843373.png)

## チュートリアル
ヒント画面を閉じて、スタートボタンを押すと、チュートリアルを実行できる。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/352975/2a55b2ba-df5e-1eff-953f-519ef1fe2a8b.png)
Dockerにてgitコンテナを起動して、git操作。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/352975/968c5cc3-2a32-cef3-d367-f799a9dc5d58.png)
ディレクトリをみると、「getting-stated」が作られている。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/352975/95d0d2d1-6fb3-02b2-0301-1dcea2c3ce60.png)
「Nest Step」ボタンで次へ進み、docker build (コンテナイメージの作成)を行う。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/352975/1fe15b3e-7966-00ba-1639-32005faf9085.png)
コンソールにて、「docker images」と打って作成・取得したイメージを見ると、以下の2つが見えている。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/352975/c7ea4381-60bf-a6a8-29e8-fe8fd19f55fc.png)
「Nest Step」ボタンで次へ進み、作成したイメージをdaemonとして起動。外部ポートに80を割り当てているので、http://localhost:80/を確認する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/352975/c214e10c-12c7-9f5d-520a-5becdce0404b.png)
チュートリアルのページが見える。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/352975/dbdd23f4-7f02-8034-fff8-308b93d7a5c3.png)
「Nest Step」ボタンで次へ進み、作成したイメージのDockerHubへPushする練習。これには、DockerHubのアカウントが必要なので、登録しておくとよい。登録済みの人は「Sign in here」からログイン。実行するとイメージがDockerHubの自分の領域にアップロードされる。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/352975/95f0de85-068e-bf63-9e7b-4f7be58fb7b9.png)
「See what you've saved on Hub」をクリックすると、自分のDockerHubにイメージが見える。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/352975/0f1b3993-08e9-7239-8782-cf29bc65bc2c.png)
「DONE」で、チュートリアルは終了し、作成し起動中のコンテナが表示される。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/352975/e64590c8-0cfb-dfc6-822d-1841f08e0f76.png)
「Go directly to the Dashboard instead」クリックでDashBoardに移動。２つのコンテナが見える。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/352975/1b59e380-b446-761f-b037-ae6b5e7bf2d2.png)

## CLIで確認
### コンテナプロセス
```powershell
# 起動中のみ
docker ps
# 停止も含めてすべて
docker ps --all
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/352975/eff7e319-7275-c26c-29e7-2699e9c16885.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/352975/72f580f4-05c7-7e17-c430-533567897307.png)

### イメージ
```powershell
docker images
```
チュートリアルでTAGをつけたため、「docker101tutorial」は２つのエントリを持つが、ImageIDは同一。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/352975/25fdbd1a-7d6e-986e-e423-27c09a51544c.png)

### 不要になった場合は
DashBoardまたは、コマンドで、停止ー＞削除する。見えていないNetwork関連のリソースまで含めて削除するには、以下のようにする。
### プロセス削除
```powershell
# ContainerIDを取得
docker ps -a
# 上記のIDを利用して停止、削除
docker rm -f {{上記出力のcontainer-id-1}} {{上記出力のcontainer-id-2}}
# または、名前でもよい
docker rm -f docker101tutorial repo
# 確認
docker ps -a
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/352975/6def27b1-09a9-5139-885b-3abd2d235d33.png)
### イメージ削除
```powershell
# ImageIDを取得
docker images
# IDを指定して削除
docker rmi {{上記出力のimage-id-1}} {{上記出力のimage-id-2}}
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/352975/cc4fb70d-b590-0367-01ea-cefa085f511c.png)
あ！！、２つエントリを持つので強制しないとだめだ。

```powershell
# ImageIDを取得
docker images
# 強制して、IDを指定して削除
docker rmi {{上記出力のimage-id-1}} {{上記出力のimage-id-2}} -f
```
１つは削除済みだったので、エラーがでたけど無視。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/352975/b0729006-d656-6725-4b2d-c55e99056d5a.png)
### その他のリソース
```powershell
docker system prume
```
消しまくるので、十分に注意して実施する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/352975/6e59b82d-3814-f14f-4b88-b34f12c54b5c.png)

# タスク確認
WindowsのタスクトレイにDockerがいることを確認。DashBoardは閉じても、ここから起動できる。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/352975/1e22d172-ec19-0b63-4668-86a91aa00d3f.png)

やっと、Dockerが動いた！

親記事：[WSL2とVSCで作るWindowsでのDocker内開発環境(2021年睦月)](https://qiita.com/CinTAKE/items/ee348acec54195ef5bd1)