発端
→ PostgreSQLの検証環境欲しいなぁ
→ 複数バージョン分欲しいなぁ
→ いくつもVM立てるのリソースもったいないなぁ
→ コンテナやってみるか
→ Linuxあんまり得意じゃないんよなぁ
→ Windows ServerでDocker立ててみよう
→ リソース効率重視でHyper-Vコンテナ使わずにやってみよう
参考サイトはまとめて後述
インストール&再起動
Install-Module -Name DockerMsftProvider -Repository PSGallery -Force
[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.SecurityProtocolType]::Tls12;
Install-Package -Name docker -ProviderName DockerMsftProvider
しかしイキナリここで「パッケージソースが見つかりません」…
プロキシ環境で通信ができない状態でコマンド叩くとPSGalleryが壊れるらしい…
プロキシ設定とか通信通るようにして
Register-PSRepository -Default
で復旧。(結局この復旧に一番時間かかkった)
コンテナイメージ取得
dockerHubからじゃなくてMicrosoft Artifact Registryから取った方がいいぽい?
docker pull mcr.microsoft.com/windows/servercore/iis:windowsservercore-ltsc2019
コンテナ起動
docker run -d -p 80:80 mcr.microsoft.com/windows/servercore/iis:windowsservercore-ltsc2019
コンテナ停止
docker ps
CONTAINER ID IMAGE
【動いてるコンテナのID】 mcr.microsoft.com/windows/se (以下略)
docker kill 【動いてるコンテナのID】
コンテナへのファイルコピー
docker cp 【コピーするホストのファイル】 【動いてるコンテナのID】:【コンテナ内のコピー先】
#例 / コンテナID=123456789abc
docker cp .\index.html 123456789abc:"C:\inetpub\wwwroot\"
コンテナのPowerShell起動
docker container exec -it 【動いてるコンテナのID】 powershell
とりあえずPostgreSQLのインストーラーダウンロードしてコンテナにコピーして実行してみたけどちゃんと入るかなぁ?
Dockerファイルとか自動化はまた今度気が向いたらやろう。
参考サイト
How-to's - コンテナでPowerShellを実行する方法