初めに
Windows版のDockerのインストール方法についてまとめます。
インストールするにあたりシステム要件を確認してください。
システム要件に関する記事も記載していますんのでよろしければご覧ください。
手順No | 方法 |
---|---|
手順1 | WSL2のインストール |
手順2 | Dockerのダウンロード |
手順3 | Dockerのインストール |
手順4 | DockerでJavaの開発環境を構築してみる |
手順1:WSL2のインストール
※事前にWindows Upadateを最新化しておいてください。
WSL2のインストールは以下の公式サイトに沿ってい行っていきます。
「管理者権限」で「PowerShell」を起動してください。
PowerShellの管理者権限の起動の仕方1
「Windowsロゴキー + R」を入力して「powershell」と入力して、Enterを押してください。
「PowerShell」上で以下のコマンドを実行してください。管理者権限用のPowerShellが起動します。
Start-Process PowerShell.exe -Verb runas
PowerShellの管理者権限の起動の仕方2
スタートメニューで、「Windwos Power Shell」と検索して、「管理者として実行する」で起動してください。
管理者権限で起動したら、以下のコマンドを実行してください。
wsl --install
インストールが開始されます。
PowerShellでのインストールは完了です。
パソコンの再起動を行ってください。
パソコンの再起動後、再度インストールが行われます。
インストールが完了したら、ユーザ名とパスワードを任意のものを設定してください。
Enter new UNIX username:任意のユーザ名
New password:任意のパスワード
Retype new password:New passwordと同じ
設定が完了すると以下の成功メッセージが表示されます。
passwd: password updated successfully
Installation successful!
To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.
Welcome to Ubuntu 20.04 LTS (GNU/Linux 5.10.16.3-microsoft-standard-WSL2 x86_64)
...省略
The list of available updates is more than a week old.
To check for new updates run: sudo apt update
This message is shown once once a day. To disable it please create the
/home/任意のユーザ名/.hushlogin file.
これで、WSL2のインストールは完了です。
手順2:Dockerのダウンロード
以下から、「Docker Desktop on Windows」をダウンロードします。
上記をクリックすると以下の画面に遷移します。
「Docker Desktop for Windows 」をクリックしてください。
「Docker Desktop for Windows 」のクリックと同時に「Docker Desktop Installer.exe」がダウンロードされます。(※数分かかります)
手順3:Dockerのインストール
手順2でダウンロードしたインストーラを起動してください。
「OK」をクリックしてください。
インストールが開始されます。
インストールの完了です。「Close and log out」をクリックしてください。再起動が行われます。
「I accept the terms」にチェックを入れて、「Accept」をクリックしてください。
Docekr Desktopが起動します。
「×」をクリックしてください。
「Skip tutorial」をクリックしてください。
以下のように表示されます。
これで、Dockerのインストールは完了です。
手順4:DockerでJavaの開発環境を構築してみる
以前、Docker、Gradleを使用したJavaの開発環境の構築についてという記事を記載したのでこれに沿って行っていきます。
任意の場所にJavaのプロジェクト作成する場所を用意してください。(本記事では、/home/"ユーザ名"/java に作成することを想定します。)
最低限のファイル・フォルダ構成を用意する以下のバッチをJavaのプロジェクト作成する場所(本記事では、/home/"ユーザ名"/java)に作成してください。
例えば、Ubuntuを起動して対象のディレクトリ(/home/"ユーザ名"/java)にVSCodeを起動(code .)して作成できます。
#!/bin/bash
echo -n "任意のプロジェクト名を入力してください:"
read PROJECTNAME
mkdir $PROJECTNAME
touch $PROJECTNAME/Dockerfile
touch $PROJECTNAME/docker-compose.yml
#devcontainer関連を作成
mkdir $PROJECTNAME/.devcontainer
touch $PROJECTNAME/.devcontainer/devcontainer.json
mkdir $PROJECTNAME/src
以下のコマンドで作成したshを実行してください。
sudo sh init.sh
プロジェクト名を「docker_java」とします。
任意のプロジェクト名を入力してください:docker_java
このままだとファイルの編集ができないので以下のコマンドで作成したプロジェクトにフル権限を設定します。
sudo chmod -R 777 docker_java
Windowsだとshの実行だとVSCodeの起動でエラーになってしまったので手動で起動してください。
cd docker_java
code .
「Dockerfile」を以下のようにしてください。(コピペでOK)
FROM adoptopenjdk/openjdk11
RUN apt-get update
RUN apt-get -y install curl
RUN apt-get -y install zip
RUN curl -s "https://get.sdkman.io" | bash
RUN echo ". $HOME/.sdkman/bin/sdkman-init.sh; sdk install gradle" | bash
WORKDIR /java_project/
「docker-compose.yml」を以下のようにしてください。(コピペでOK)
version: '3.6'
services:
java:
container_name: java
build: ./
tty: true
volumes:
- ./src:/java_project/
「devcontainer.json」を以下のようにしてください。(コピペでOK)
{
"name": "java_gradle",
"workspaceFolder": "/java_project",
"dockerComposeFile": "../docker-compose.yml",
"settings": {
"terminal.integrated.defaultProfile.linux": "/bin/bash",
},
"service": "java", //attachするコンテナはjavaを指定
"extensions": [
"vscjava.vscode-java-pack", // JavaExtensionPack
"gabrielbb.vscode-lombok" //Lombok Annotations Support For VS Code
]
}
VSCodeに以下の拡張機能をインストールしておいてください。
「Dockerイメージの作成」コマンドを実行してください。
※sudoを付けないとPermission Denied(権限なし)でエラーになります。パスワードはWSL2インストール時に設定したものです。
sudo docker-compose build
以下のようになれば成功です。
Building java
[+] Building 692.9s (11/11) FINISHED
...省略
Use 'docker scan' to run Snyk tests against images to find vulnerabilities and learn how to fix them
以下のようなメッセージが出て、「Dockerイメージの作成」ができない場合は一度Docker自体を再起動してください。
The command 'docker-compose' could not be found in this WSL 2 distro.
We recommend to activate the WSL integration in Docker Desktop settings.
For details about using Docker Desktop with WSL 2, visit:
https://docs.docker.com/go/wsl2/
停止再起動の方法です。
以下のDockerアイコンで「右クリック」をしてください。
「Quit Docker Desktop」をクリックして、停止できます。
ショートカットを実行するとDockerが起動します。
「コンテナの作成」コマンドを実行してください。
※sudoを付けないとPermission Denied(権限なし)でエラーになります。パスワードはWSL2インストール時に設定したものです。
sudo docker-compose up -d
以下のようになれば成功です。
Creating network "docker_java_default" with the default driver
Creating java ... done
コンテナ内に入ります。
sudo docker exec -it java /bin/bash
Javaバージョン確認コマンドを実行してJavaがインストールされてか確認します。以下のコマンドを実行してください。
java -veriosn
以下のようになれば成功です。
openjdk version "11.0.16" 2022-07-19
OpenJDK Runtime Environment Temurin-11.0.16+8 (build 11.0.16+8)
OpenJDK 64-Bit Server VM Temurin-11.0.16+8 (build 11.0.16+8, mixed mode)
Gradleバージョン確認コマンドを実行してGradleがインストールされてか確認します。以下のコマンドを実行してください。
gradle -v
以下のようになれば成功です。
Welcome to Gradle 7.5!
Here are the highlights of this release:
- Support for Java 18
- Support for building with Groovy 4
- Much more responsive continuous builds
- Improved diagnostics for dependency resolution
For more details see https://docs.gradle.org/7.5/release-notes.html
------------------------------------------------------------
Gradle 7.5
------------------------------------------------------------
Build time: 2022-07-14 12:48:15 UTC
Revision: c7db7b958189ad2b0c1472b6fe663e6d654a5103
Kotlin: 1.6.21
Groovy: 3.0.10
Ant: Apache Ant(TM) version 1.10.11 compiled on July 10 2021
JVM: 11.0.16 (Eclipse Adoptium 11.0.16+8)
OS: Linux 5.10.16.3-microsoft-standard-WSL2 amd64
Javaのプロジェクトを作成します。以下のコマンドを実行してください。
gradle init
以下のように選択してください。以下のようになれば成功です。
Welcome to Gradle 7.5!
Here are the highlights of this release:
- Support for Java 18
- Support for building with Groovy 4
- Much more responsive continuous builds
- Improved diagnostics for dependency resolution
For more details see https://docs.gradle.org/7.5/release-notes.html
Starting a Gradle Daemon (subsequent builds will be faster)
Select type of project to generate:
1: basic
2: application
3: library
4: Gradle plugin
Enter selection (default: basic) [1..4] 2
Select implementation language:
1: C++
2: Groovy
3: Java
4: Kotlin
5: Scala
6: Swift
Enter selection (default: Java) [1..6] 3
Split functionality across multiple subprojects?:
1: no - only one application project
2: yes - application and library projects
Enter selection (default: no - only one application project) [1..2] 1
Select build script DSL:
1: Groovy
2: Kotlin
Enter selection (default: Groovy) [1..2] 1
Generate build using new APIs and behavior (some features may change in the next minor release)? (default: no) [yes, no] no
Select test framework:
1: JUnit 4
2: TestNG
3: Spock
4: JUnit Jupiter
Enter selection (default: JUnit Jupiter) [1..4] 1
Project name (default: java_project): app
Source package (default: app):
> Task :init
Get more help with your project: https://docs.gradle.org/7.5/samples/sample_building_java_applications.html
以下のコマンドを実行してプログラムが実行されるか確認しましょう。
./gradlew run
「Hello World!」が表示されれば成功です。
Downloading https://services.gradle.org/distributions/gradle-7.5-bin.zip
...........10%............20%...........30%............40%...........50%............60%...........70%............80%...........90%............100%
> Task :app:run
Hello World!
BUILD SUCCESSFUL in 5m 51s
2 actionable tasks: 2 executed
デバッグできるか確認しましょう。
VSCodeの左下にある「><」をクリックしてください。
「Reopen in Container Remote-Containers」を選択してください。
以下のように表示されればコンテナ内入ることは成功です
Remote Container上の拡張機能は以下のものをインストールされていることを確認してください。もしなければ手動でインストールしてください。
「Java Build Status」が以下のようになるか確認してください。
上記のようになるとメインメソッドの上あたりに「Run|Debug」が表示されるようになります。
任意の場所にブレイクポイントを張って「Debug」で実行した際にきるか確認します。
上記のようにブレイクポイントのところで止まれば成功です。
最後に
ここまで見ていただきありがとうございます。最後にこの記事を投稿するにあたり自身の少し古いWindowsのパソコンにそれぞれインストールしていたのですが「システム要件」が合っていなかったので動作がかなり遅かったです・・・。みなさんは何かをインストールする際にご自身のパソコンのスペックとシステム要件の確認を忘れないようにしてください。一応Dcokerのシステム要件に関する記事も記載していますのでよろしければご覧ください。