Docker インストールとか

久々にDockerを使った。

GeneXusとかも使ったのでメモ

Docker for Windows インストール

Hyper-V 有効化

Windows の機能の有効化または無効化 から Hyper-V を有効にします。

終わったらWindowsを再起動します。

Docker Desktop インストール

以下のURLからexeをダウンロード
https://www.docker.com/products/docker-desktop

ダウンロードしたexeを起動。

そのまま進めます。


終わったら、再起動します。

WSLの有効化

WSLが有効じゃないとエラーが出るみたいです。私の環境は出なかった。

このへんを参考に有効化する。
https://docs.microsoft.com/ja-jp/windows/wsl/install-win10

PowerShellから以下のコマンドを実行する。

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

wsl --set-default-version 2
カーネル更新
以下のメッセージが出る場合は https://aka.ms/wsl2kernel にアクセスして .msi をダウンロードしてインストールする。

WSL 2 を実行するには、カーネル コンポーネントの更新が必要です。詳細については https://aka.ms/wsl2kernel を参照してください

起動

正しく起動できれば、ツールバーにくじらが出ます。くじらが赤いとエラーが出てます。

くじらの名前は「Moby Dock」らしい。

バージョン確認

正しくバージョンが表示されれば、まぁ大丈夫でしょう。

docker --version
Docker version 19.03.13, build 4484c46d9d
docker-compose -v
docker-compose version 1.27.4, build 40524192

イメージ取得とコンテナ起動

docker run -d -p 8080:80 --name nginx nginx
Unable to find image 'nginx:latest' locally
latest: Pulling from library/nginx
d121f8d1c412: Pull complete
66a200539fd6: Pull complete
e9738820db15: Pull complete
d74ea5811e8a: Pull complete
ffdacbba6928: Pull complete
Digest: sha256:fc66cdef5ca33809823182c9c5d72ea86fd2cef7713cf3363e1a0b12a5d77500
Status: Downloaded newer image for nginx:latest
5f42d5c5ab7830dfce536aa631db0ba8f9a087b0dafc7bc81faa628ba2c4b27d

http://localhost:8080 にアクセスして起動してるか確認。

コンテナ停止

GUIから止めてもいいし、以下のコマンドで止めても良い。

コマンド

docker stop nginx

GeneXus で Docker

参考URL

参考 Docker にアプリケーションをデプロイする方法wiki.genexus.jp

適当にKB作成(Java)

環境はJava8、Tomcat8で作成。

メニューの ビルド > アプリケーションをデプロイ を選択。
作成した画面をデプロイ対象に入れて、TargetをDocker Imageに設定。

Docker のオプションはとりあえずそのまま。

ローカルに新しいイメージが作成されました。

ポートを設定して、起動します。

今回の場合は以下のようなURLになります。
http://localhost:8082/servlet/com.gx16u10testkb20201012.wp_test

ブラウザで画面が動けば、とりあえずOKです。

バージョン変更。一応ローカルではTomcat8、Java8で動かしたのでDockerのバージョンも変更。

起動コマンド

docker run --rm -p 8082:8080 【Docker イメージ名】

rmオプションはシャットダウン時にコンテナが削除されます。イメージじゃなくてコンテナがね。

適当にKB作成(C#)

画面は同じ。

メニューの ビルド > アプリケーションをデプロイ を選択。
作成した画面をデプロイ対象に入れて、TargetをDocker Imageに設定。

Docker のオプションはとりあえずそのまま。

↑の流れでやってると、DockerがLinuxのままになってるので、ツールバーの
Dockerアイコンを右クリックして Switch to Windows Containers… をクリック。

デプロイボタンを押すんですが、これ初回めっちゃ長いです。
ダウンロードしてから容量見たら12GBもあった。
2回目からは早いw

無事に12GBダウンロードとか終わると、Dockerに新しいイメージが作成されてます。

これをポート設定して起動。

C#だとこんな感じのURLになるはずです。
http://localhost:81/wp_test.aspx

起動コマンド

docker run --rm -p 81:80 【Docker イメージ名】

rmオプションはシャットダウン時にコンテナが削除されます。イメージじゃなくてコンテナがね。

まとめ

以外と手間取った(主にダウンロードに・・・・)。
実行環境の構築にかかる手間を削減できるし、開発者全員がほぼ同じ環境でテスト等できるのはいいことだと思います。
使える場面とかあれば使ってみたいです。

以上です。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください