布団が俺を呼んでいる

丘山大一のぶろぐ

Windows Server2019(公開停止中) で Windows Server コンテナ

注意!
執筆時点で、Windows Server 2019 は公開停止中です。
ホスト、dockerイメージともに大幅に変わる可能性があります。

Windows Server 2019 公開停止中。公開停止前に入れたヤツで色々試す。


しかし、いざ試そうと思ってもWindows Server2019 の公式ドキュメントが見つからなかったでござる。
なので適当にやってみる。
役割と機能の追加で「Contiranes」をインストール。
しかしインストールしただけではスタートメニューにこれといって利用可能なアプリは増えなかった。


古い記事だけど、下記をやってみる。


まずはPowerShellを管理者権限で実行。
下記コマンドレットを実行する。
Install-Module -Name DockerMsftProvider -Repository PSGallery -Force
なんかエラーが出てきた。


フーン。とりあえず入れましょ。おもむろにY。
しかしエラーが返ってくる。


んん?そのままでは実行できないのか……
で、クライアントのWindows 10 で実行して気が付いたのですが、powershellが実行して入れようとしているのは2.8.5.201ですが、実はバージョン 2.8.5.208 があるみたいです。
というわけで、
Install-PackageProvider -Name Nuget -RequiredVersion 2.8.5.208 -Force
を入れたら通りました。(バージョン指定しなくても通ったかもしれない)
この状態で、再度試しても、まだ「リポジトリ'PSGallery'が見つかりません」と言われてしまうので、今度はリポジトリをデフォルトで登録する。
Register-PSRepository -Default


ふむ、ここまでできたら通るやろ……と思って実行するも「ギャラリーは現在利用できません」のエラーになってしまう。
むむ。
ここでコマンドレットを若干変更し、
Install-Module -Name DockerMsftProvider
にするとメッセージが変わる。


おそらく、先に登録したプロバイダが Untrusted なせいで「信頼されていないリポジトリ」になっています。
でも「Y」でインストール自体は進む。
いったいなんだったんだ……
ともかく、これでようやく手順の一つ目のコマンドレットが完了。
続いて二つ目。
Install-Package -Name docker -ProviderName DockerMsftProvider
こちらは特に問題なく進めました。

ここで再起動しろ、とのこと。スタートから再起動してもよいですが、せっかくコマンドレットが提示されているので実行してみます。
Restart-Computer -Force
再起動後、Dockerが使えるようになっています。
※今回はDockerのバージョンは変えないため、アップデートはしません……

基本的なコマンドを叩く



それっぽいですね。

続いて、お約束を確認します。
docker run hello-world


失敗します。
ここでdocker inspectを使ってimageの中身を見てます。


hello-worldの中身がlinuxだから失敗したんじゃね?
と思いましたが、しっかりWindowsでした。
ただし、OSのバージョンが古い(14393なので、Anniversary Update相当?)
ので動かない……のかどうか確信はありませんが、Windows Server コンテナはバージョンが違うと動かないという仕様だと聞いたので多分そういうことでしょう。

今度はdotnet-samplesにチャレンジしてみます。
docker run microsoft/dotnet-samples
こっちは動きますね。OSバージョンが同じだから、ということでしょう、多分。


下記は
docker run microsoft/dotnet
で動かしているところを出した図。ちゃんとupになっています。



オマケ1

ubuntu を動かそうとすると


なるほど、こういうエラーになるんですね。


オマケ2

pullしたイメージは、見た感じここらに入るみたいです。
C:\ProgramData\docker\windowsfilter



プログラマのためのDocker教科書 第2版 インフラの基礎知識&コードによる環境構築の自動化

新品価格
¥3,240から
(2018/10/8 22:25時点)


コメントを書く