Docker Desktop を使わずにDockerを利用する(1)


Docker Desktop有償化を受けて、いまさらながらDocker Desktopを使わずにDockerを利用する方法を調べ、”完全に理解した(チュートリアル通りにできた)”ので手順を残します。なお、当方Linuxは素人です(これは字義通り)。

ググったら色々とやり方は見つかったのですが、正規のやり方というかDocker社公認の方法はあるのだろうか?と思って色々調べたらDocker社のFAQに辿り着きました。技術者なら原典に当たってちゃんとやらないと、と思って手順通りやってみます。

Docker社のFAQには以下のように書かれています。Docker Desktopの代わりにDocker CLIを使う場合、WindowsマシンならWSL2上でDocker EngineとDocker CLIをインストールすればいいよ、とのこと。Docker Engineのインストール方法の文書リンクもついていますので、リンクをクリックして文書を確認します。

Platform別に使えるLinuxの種類(ディストリビューション)が記載されています。自分のPlatformはx86_64/AMD64が該当します。

どのディストリビューションを使っても良い気がしますが、MicrosoftのWSL2関連のDocsを確認するとデフォルトはUbuntuと書いてあるのでUbuntuにします。

ということで、マトリクスのクロスする部分のリンクをクリックします。

後はこの手順に従ってインストールするだけです。が、その前に前提条件であるUbuntuのインストールが必要です。

UbuntuのインストールはMicrosoftのWSL関連のDocsに書いてあります。なんと最近はPowerShellで WSL –install と打つだけで良いらしいです。便利になったなー。

今回DockerをインストールするマシンはHyper-V仮想マシンです。こんな感じで作ってます。Windows10EPですが、Window10Proでもほぼ同じです。
Hyper-Vで仮想マシンを作る(1) | IT長のネタ帳 (d3654.be)
Hyper-Vで仮想マシンを作る(2) | IT長のネタ帳 (d3654.be)
仮想マシンにしたのは失敗した時に捨てればいいや、とか、検証用に切り戻すのが楽だからといった理由です。物理マシンでも同様にインストールできると思います。(Hyper-Vで動くくらいですから)
Hyper-V仮想マシンでやる場合は最初に入れ子の仮想化を済ませておきます。Hyper-Vホストマシンで仮想マシンを停止した状態で以下のコマンドを打てばOKです。一瞬で終わります。その後、仮想マシンを起動します。

仮想マシンを起動したらサインインし、PowerShellを管理者モードで起動し、コマンド wsl –install を打ちます。その後、再起動します。PowerShellで Restart-Computer と打つと早いです。

MicrosoftのWSL関連のDocsに戻って手順を確認すると、Linuxの管理者ユーザーとパスワードを設定するように書かれています。WSL 開発環境を設定するためのベスト プラクティスに関するガイドのリンクをクリックして開きます。

書かれている手順に沿ってユーザー名とパスワードを設定するだけです。

再起動後の仮想マシンにサインイン。スタートメニューからUbuntuを探して起動。管理者ユーザーIDとパスワードを指定するよう促されています。

こんな感じで指定。passwordは入力しても**すら表示されず、文化の違いを感じます。(知らんけど)

パッケージの更新とアップグレードも手順に沿って実施しておきましょう。(この辺、Linux初級者なので本当に書いてある通りにやっただけ。)

以下のコマンドをそのまま打ち込んで実行。

yで続行。この処理が完了すれば前提条件としてのWSL2インストールはいったん完了です。

次はDocker側の手順に沿ってインストールを進めます。リポジトリを使ってインストールするのでまずはリポジトリの設定を行う、ということのようです。

書いてあるコマンドをUbuntu上で実行するだけです。須藤さんに4つほど実行してもらいます。

ここがメインですね多分。Docker Engineのインストール手順に沿って進めます。

そのままコマンド打つだけです。(UbuntuのWindowの左上のアイコン押して、編集->ペーストで貼り付けできます。)

まずはアップデート。

そしてインストール。

yで続行。

完了です。

チュートリアルにはHello worldせよ、と書いてありますw

Hello worldできました!

Hello worldできたので、あとは好きなコンテナを作って動かすだけです。Docker DesktopなしでDockerを使う方法を完全に理解しました。(=チュートリアルに沿ってできました。)

で、好きなコンテナ( Dynamics 365 Business Centralのコンテナ)を作ろうとした結果がこちらです。早速壁にぶつかりました。 Docker DesktopなしでDockerを使う方法 、全然わかりません。

全然わからんというのは冗談ですが、思い通りに使いこなすにはLinux上でDockerを動かす知識がさらに必要なのは間違いなさそうです。Windows上でアプリの製造元から提供されているDockerイメージをもとにコンテナ作りたいだけのLinux初級者としてはなかなか辛い感じです。

なので、次回は別の方法で「Docker DesktopなしでDockerを利用する方法」について試してみます。なんとLinuxは一切出てこないです。こうご期待!

返信を残す

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