PowerShell スクリプトで docker run
マンガでわかるDockerに出てくる次のコマンドがちょっと長い。
docker run -d -p 80:80 --name myapp -v /c/users/[作業フォルダ]:/var/www/html php-vim
今は何度もコンテナ作っちゃ消してをやってるので、上記コマンドはソラでも書けるようになったけど、ちょっと経ったらたぶん忘れてしまう。
なので PowerShell スクリプトファイルにコマンド打ち込んでみました。作り方は上記コマンドをテキストファイルにコピペして拡張子を ps1
にしただけ。
ファイル名は docker_run.ps1
にでもしておきます。
PowerShellで実行してみると───
PS> .\docker_run.ps1 //← ".\" 付与で信頼済みスクリプトになる .\docker_run.ps1 : このシステムではスクリプトの実行が無効になっているため、ファ イル C:\users\hide1\dockerscripts\docker_run.ps1 を読み込むことができません。詳 細については、「about_Execution_Policies」(https://go.microsoft.com/fwlink/?Lin kID=135170) を参照してください。 発生場所 行:1 文字:1 + .\docker_run.ps1 + ~~~~~~~~~~~~~~~~ + CategoryInfo : セキュリティ エラー: (: ) []、PSSecurityException + FullyQualifiedErrorId : UnauthorizedAccess
怒られてしまいました。
PowerShell スクリプトは強力な機能なので、通常では実行不可になっているとのこと。
PowerShellスクリプトの作成と実行 CapmNetwork
実行可能状態にするため、実行ポリシーを変更します。
管理者権限で PowerShell を起動(アイコン右クリック→管理者として実行)し、次のコマンドレットを実行します。
PS> Get-ExecutionPolicy //実行ポリシーの確認 Restricted //←デフォルトだとたぶんこれ。スクリプト実行不可 PS> Set-ExecutionPolicy RemoteSigned //継続するか確認されるのでY→Enter PS> Get-ExecutionPolicy RemoteSigned //←これが返ってくればOK
これでさっきの .\docker_run.ps1
を実行すれば大丈夫です。間違って docker_run.ps1
とすると怒られるので少し注意。
PS> .\docker_run.ps1
スクリプトに署名がされていればもしかしたら大丈夫かも?(未確認)
余談
スクリプト化したしよく変わるとこは引数にして~…まで考えて、それなら最初のコマンドでええやんってなってこの記事の意味があんまりなくなってしまった件ヾ(:3ノシヾ)ノシ