Dockerとは
Docker社が開発している、コンテナ型の仮想環境を作成、配布、実行するためのプラットフォームとのことです。(https://www.docker.com/what-docker)
私的には、
昔でも無いけど、よくVirtualBoxとかに最初の人が開発環境を作って、開発者みんなに配って。みたいな状況はよくありました。
VirtualBoxは容量もでかいし、メモリ食うし。そういうのがなくVirtualBoxみたいにGUIを起動せず、バックグランドで動く自由に組み合わせられる環境って感じでしょうか。
纏めます。
- 軽量で高速に仮想環境を動作できる
- Dockerインストール済PCなら、OSに依存せずDockerイメージで同一環境を構築可能
- Dockerfileで動作させるコンテナをコードで管理できる
- 作成アプリなどを、Dockerfileを渡すことで他のローカル環境でも実行することができる
Dockerさえいれておけば、いろんな言語や環境を自PCをあまり弄らず試せますね。
あと、思惑としては、教材用にREST APIの代わりをDockerで構築してReact画面からアクセスしようかなと
そんなことを考えています。
Dockerのインストール
Windowsを例にします。
ここでDocker Desktop for Windows ボタンをクリックしてください。
デフォルトでインストールし再起動します。
Docker正常起動の確認
PCを再起動してDockerが正常に起動することを確認します。
普通の環境構築の場合、ここはサクッといくとこなんでしょうけど、いきませんでした。
(ちなみに、私の環境はWindowsです。Macだとサクサクいくと聞いたことがある。)
以下のようなエラーが出ました。
- Docker Desktopで「Hardware assisted virtualization and data execution protection must be enabled in the BIOS.
- Docker.ApiServices.WSL2.WslKernelUpdateNotInstalledException
- Failed to deploy docker-desktop to C:\Users\user\AppData\Local\Docker\wsl\distro: exit code: -1 ・・・・
解決するには
- BIOSのVirtualization Technologyの設定をDisabledからEnabledに変更
- Windowsの機能の有効化または無効化のHyper-Vのチェックをオン
など。。。。。いろいろやって正常起動できました。
いつか再検証行いたいと思います。
正常起動した場合は、このようになります。
タスクバーのとこに表示されるクジラさんからランダムな縦棒が出ている状態?
Docker - React動作環境作成(概要)
- Docker用ファイルの作成と記述
- Dockerイメージビルド
- create-react-appとReactのインストール
- コンテナの起動とReactの実行
Docker - React動作環境作成(Docker用ファイルの作成と記述)
作業ディレクトリ作成後、
Dockerで環境作成時、必ず以下2ファイルを作成します。
- Dockerfile(基本的なコンテナ構成情報を記述)
- docker-compose.yml(複数コンテナそれぞれの構成情報を記述)
FROM node:14
WORKDIR /usr/src/app
version: '3'
services:
node:
build:
context: .
dockerfile: Dockerfile_node
volumes:
- ./:/usr/src/app
command: sh -c "cd react-sample && yarn start"
ports:
- "3000:3000"
中身は(今は)サラッと見ておきましょう。
Dockerに慣れてきたらまた再度見直してみたいと思います。
Docker - React動作環境作成(Dockerイメージビルド)
Git Bashなどで作業ディレクトリに移動し、Dockerイメージをビルドします。
docker-compose build
Docker - React動作環境作成(create-react-appとReactのインストール)
docker-compose run --rm node sh -c "npm install -g create-react-app && create-react-app react-sample
reactのインストールに数分かかります。たぶん。
私のサブマシンでは20分くらいかかったかな。。。
※途中、Dockerが作業ディレクトリを共有するか?的なメッセージが出ますので、Share itしておいてください。
Docker - React動作環境作成(コンテナの起動とReactの実行)
コンテナを起動します。
docker-compose up
ブラウザでlocalhost:3000
にアクセスしたらLearn Reactが出ますよね?
出るはずだ!
試しに、ローカルにあるReactのソースApp.jsのLearn React
をLearn Docker React
に変更してみてください。仮想環境に自動的に適用されて表示されることが分かるかと思います。