さんかくすわりで書くブログ

勉強したこととか

WindowsにDockerを入れる

ずっとHomeエディションだとできないと思ってたけどどうも古いドキュメントを見ていたようで。

「docker windows」とかで検索するとversion 19.3のドキュメントが一番上にきて、

https://docs.docker.jp/docker-for-windows/install.html

システム要件にHomeエディションないやん!と思ってた。

これはversion 24のドキュメント(微妙にURLが違ってちゃんと階層化されてる)。

https://docs.docker.jp/desktop/install/windows-install.html

Windows11 Homeがシステム要件に追加されている。

Win10以前はWSLを使うためのHyper-VがHomeエディションでは有効にできないとかだったはずだけど、Win11からはできるようになったのか別の方法で動かしているのか、大丈夫になったらしい。

(それにしても最新のドキュメントが検索結果の一番上に来るようにしてほしい)

 

ということで早速インストールしていく。

https://docs.docker.com/desktop/install/windows-install/

対話形式とコマンドラインがありますが対話形式でいいでしょう。

大規模に使うならライセンス登録してねとか書いてますが個人利用なので無償で使わせてもらいます。

 

ダウンロードしたインストーラを起動すると「デスクトップにショートカットを作る?」と聞かれて「OK」を押すとすぐにインストールが始まりました。

利用規約の同意とか書いてあるけど全くなかった。。。大丈夫かこれ?)

無事成功したらしい。

再起動の必要があるらしいのでボタンを押して再起動。

 

再起動が完了するとここで利用規約同意画面(普通インストール前じゃない?)。

DockerのくじらとLinuxのペンギン、GolangGopher君はわかるけどあとはなんだろう。。。(Gopher君はDockerがGolangで書かれてるとかかな)

 

初期設定は推奨設定でいいでしょう。後から変えられるだろうし。

 

サインアップorサインインを求められますがなくても使えるので「Continue without singing in」を選択します。

docker hubにimageを登録したくなったらアカウント作りましょ。

 

この先はアンケート。

skipで問題なさそうなのでskip。

自分のロールかぁ。基本はバックエンドだけどフロントもやることあるし、プラットフォームエンジニアみたいなこともしてるし。。。

 

無事インストール完了です。

一応コマンドプロンプトでdockerコマンドが使えるかも確認しておく。

docker -v
Docker version 24.0.6, build ed223bc

大丈夫そう。

 

せっかくだしコンテナを動かしてみましょ。

$ docker run ubuntu:14.04 /bin/echo 'Hello world'
Unable to find image 'ubuntu:14.04' locally
14.04: Pulling from library/ubuntu
2e6e20c8e2e6: Pull complete
0551a797c01d: Pull complete
512123a864da: Pull complete
Digest: sha256:64483f3496c1373bfd55348e88694d1c4d0c9b660dee6bfef5e12f43b9933b30
Status: Downloaded newer image for ubuntu:14.04
Hello world

コマンドを実行するとimageのpullが始まり、そのうちHello worldが表示されました。

これでローカルにDB建てたりするときにいろいろインストールする必要がなくなりました!やったぜ。

 

後片付けしましょう。

停止したコンテナが残っていて、多分メモリを食うので。。。

$ docker ps -a
CONTAINER ID   IMAGE          COMMAND                   CREATED             STATUS                         PORTS     NAMES
8a964372ede5   ubuntu:14.04   "/bin/echo 'Hello wo…"   About an hour ago   Exited (0) About an hour ago             pedantic_driscoll

コンテナIDを指定して削除します

$ docker rm 8a964372ede5
8a964372ede5

消えてますね。

$ docker ps -a
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES

せっかくDocker Desktop入れたのでGUIで削除でもよかったな。

 

WSLとかの設定とか必要かと思ってましたが、結構簡単に導入できたなー。

docker結構メモリを食うイメージがあるのでうちの貧弱なPCでどこまで動かせるかという懸念もありますが。。。

タスクマネージャー見てみるとWSLが800MBぐらいでDockerDesktop自体は300MBぐらいとそこまで大きくはないですね

これから色んなimageをローカルに置いていくと増えそうではある。(仕事で使ってるMacはdockerが8GBぐらい常にメモリを食ってるので)