LoginSignup
0
1

Dockerのチュートリアルをやってみる

Posted at

目的

Dockerについて体系的なこと学ぶ機会がなかったため、
基本の確認と復習を兼ねてチュートリアルを実施しました。

実施内容

Docker環境構築

WSL2

参考:https://www.kagoya.jp/howto/cloud/container/wsl2_docker/

「コントロールパネル」→「プログラム」→「Windowsの機能の有効化または無効化」を選択する。
image.png

下記二つの機能を有効にしてOKをクリックする。その後、再起動する。
image.png
image.png

下記サイトの「x64 マシン用 WSL2 Linux カーネル更新プログラム パッケージ」をダウンロードして実行する。
https://learn.microsoft.com/ja-jp/windows/wsl/install-manual#step-4---download-the-linux-kernel-update-package
image.png

下記コマンドを実行してWSL2を
$ wsl --set-default-version 2

Ubuntu

※注意:このあたりの操作はうろ覚えです。怪しい場合はご自分で調査してみてください。

下記サイトからUbuntu 22.04.1 LTSをインストールする。usernameとpassを忘れないように注意。
https://apps.microsoft.com/store/detail/ubuntu-22042-lts/9PN20MSR04DW?hl=ja-jp&gl=jp&rtc=1

おまけ:Windows Terminal

WindowsターミナルをUbuntuやPowershellを簡単に使いこなせるようにしておきます。
(Windows11では標準搭載されていた気がします。)

Dockerインストール

Docker Desktop Installer.exeをダウウンロードして実行する。
https://docs.docker.com/desktop/install/windows-install/

Docker hubのアカウントを所有していればログインすることもできます。

下記コマンドを管理者で実行することで、Dockerがインストールされていることを確認できる。
$ docker -v

チュートリアル実施

公式のチュートリアルに沿ってやってみる。
コンテナ、ボリューム、DockerHub、バインドマウント、複数コンテナの場合、Docker Composeなどが学習できる。
https://docs.docker.jp/get-started/toc.html

わかりにくい点

Part2

おそらく、$ cd appを実施して、カレントディレクトリを「C:..省略..\Docker_guide\getting-started\app」にする。
image.png

既存のDockerfileのファイル名を変更してから、app\Dockerfileを作成する。
image.png

`$ docker build -t getting-started .'を実行すると下記エラーが発生する。
Docker Desktopを起動してから上記コマンドを実行すると成功しました。

ERROR: error during connect: this error may indicate that the docker daemon is not running: Get "http://%2F%2F.%2Fpipe%2Fdocker_engine/_ping": open //./pipe/docker_engine: The system cannot find the file specified.

Part4

Play with Dockerで実行するとエラーになる。
image.png
image.png
$ du -sh /var/lib/dockerで確認するとリソースが224Kバイトしかないことが原因っぽい。
仮想環境都合なので未解決。
image.png

ちなみにWindows環ではエクスプローラーから「\wsl.localhost\docker-desktop-data\data\docker\containers」などからコンテナの情報が確認できるが、ファイル等が直接入っているわけではない。

Part6

変更箇所が画面からわかりにくい。
「You have no todo items yet! 」とかを変更した方がわかりやすい。
image.png

Part7

「MySQL とアプリを動かす」へ入る前に、$ exitコマンドでコンテナから出る。
image.png

Connected to mysql db at host mysql Listening on port 3000は表示されていなくてもOK。
image.png

PS C:\Users\kimur\Documents\Docker_guide\getting-started\app> docker logs ae83f5c9a08540dea279b0ce025524b8090195a54a1cff3c8b916815a4b95d43
yarn install v1.22.19
[1/4] Resolving packages...
success Already up-to-date.
Done in 0.74s.
yarn run v1.22.19
$ nodemon src/index.js
[nodemon] 2.0.20
[nodemon] to restart at any time, enter `rs`
[nodemon] watching path(s): *.*
[nodemon] watching extensions: js,mjs,json
[nodemon] starting `node src/index.js`
PS C:\Users\kimur\Documents\Docker_guide\getting-started\app> docker ps

次の操作でブラウザ上のToDoアプリからデータを入力すると、DBにデータが入っていることを確認できた。
image.png

Part8

docker-compose.yml内のvolumeのパスについて、コロンを境にVOLUME:CONTAINER_PASSと記載している。
https://docs.docker.jp/compose/compose-file/index.html#volumes-volume-driver
image.png

所感

バインドやデプロイ、docker-compose.ymlについて、もう少し深く知ることでLaraveやDjangoを用いた環境が構築できるようになりたい。
Windowsエクスプローラーからコンテナ内のapp.jsを閲覧するすべはないのか。。?

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1