※ 2021/09/02)この投稿は 2019 年 1 月のものです。現在 は状況が変わってますのでご注意。(Docker CE なんてもうないし、Docker Personal/Pro/Team/Business になっちゃったし)(WSL 2 バックエンドの Docker Desktop であれば、WSL Integration で WSL 2 の Linux に Docker CLI を簡単に利用可能にできるなど)
先に、Windows Server と Docker の最新情報など。
Announcing Support for Windows Server 2019 within Docker Enterprise
https://blog.docker.com/2019/01/announcing-support-for-windows-server-2019-within-docker-enterprise/
で、Docker サーバー(Windows Server に限らず、Docker Desktop や Linux ホストも)や Windows/Linux コンテナーのリモート管理のために、Windows 10 に Docker クライアント (Docker CLI)だけを導入する方法についてメモ。
1. Docker CE の Windows バイナリからインストールする(ちと古い 17.09.0-ce だけど)
2. Windows Subsystem for Linux(WSL)の Linux シェル環境に Linux バイナリを入れる(最新の 18.09.1)
3. その他の方法
1. Docker CE の Windows バイナリからインストールする
Windows、macOS、Linux用の Docker CE のバイナリは以下の場所から入手できるんですが、macOS(CLI のみ)と Linux (daemon と CLI) は最新バージョン(現時点では Docker EE と共通の 18.09.1)があるんですが、Windows は 17.09.0-ce でバイナリ提供が止まってるみたいなの。
https://download.docker.com/win/static/stable/x86_64/
https://download.docker.com/mac/static/stable/x86_64/
https://download.docker.com/linux/static/stable/x86_64/
17.09.0-ce でもいいから、Docker クライアント(docker.exe)だけをインストールするには、64 ビット版 Windows 10(docker バイナリは 64 ビットだから)で Windows PowerShell を管理者として開いて...
PS C:\> Invoke-WebRequest "https://download.docker.com/win/static/stable/x86_64/docker-17.09.0-ce.zip" -OutFile "$env:TEMP\docker.zip" -UseBasicParsing
PS C:\> Expand-Archive -Path "$env:TEMP\docker.zip" -DestinationPath $env:ProgramFiles
PS C:\> Remove-Item -Path "$env:TEMP\docker.zip"
(デーモン閣下dockerd.exeはいらないので削除)
PS C:\> Remove-Item -Path "$env:ProgramFiles\docker\dockerd.exe"
PS C:\> $path = [Environment]::GetEnvironmentVariable("PATH", "Machine")
PS C:\> $path += ";" + "C:\Program files\docker"
PS C:\> [Environment]::SetEnvironmentVariable("PATH", $path, "Machine")
PS C:\> $env:path = $path
でも、Server とバージョンが一致しないのはやっぱり気になるわ。
2. Windows Subsystem for Linux(WSL)の Linux シェル環境に Linux バイナリを入れる
WSL の Linux シェル環境をインストールしてあれば、そこに Docker クライアントをインストールすることができる。Docker Engine release notes(https://docs.docker.com/engine/release-notes/)の NOTE によると、18.09 からはクライアント パッケージが分離されたみたいなので、各ディストリビューションでそれをインストール(Ubuntu の場合は docker-ce-cli)すればいいのかもしれないけど、Linux バイナリからのほうが共通の手順なので簡単かも。
$ cd ~
$ wget https://download.docker.com/linux/static/stable/x86_64/docker-18.09.1.tgz
$ tar xzvf docker-18.09.1.tgz
$ sudo cp docker/docker /usr/bin
$ rm docker-18.09.1.tgz
$ rm -rf docker
参考:
Install Docker CE from binaries
https://docs.docker.com/install/linux/docker-ce/binaries/
ちょっとおふざけ。ローカルの Docker Desktop for Windows (Windows コンテナー環境)にローカルの WSL の Ubuntu(16.04)シェルからリモート接続して、 Experimental 機能の LCOW(Linux Container on Windows)で ubuntu(18.04)コンテナーを動かしている様子。ぐるぐるしてて、意味なくて、楽しい。
3. その他の方法
これ以外の方法として、Docker Desktop for Windows をインストールしちゃって、クライアント機能だけ使うってのもありかも(インストール オプションで Docker クライアントだけを選択インストールってのはできませんし、Windows 10 Home にはインストールできない)。あるいは、やっていいのかどうか知りませんが、Docker Desktop for Windows の docker.exe(C:\Program Files\Docker\Docker\resources\bin\docker.exe にあった) をコピーしてきちゃうとか。
Docker Engine のリモート接続の有効化については、ご自分で調べてください(daemon.json に書いてデーモン再起動、保護されていない 2375/tcp ではなく、TLS 保護した 2376/tcp を推奨)。
2020/11/30 追記)今なら Docker Desktop の WSL Integration って機能もある。→ https://yamanxworld.blogspot.com/search?q=WSL+Integration
0 件のコメント:
コメントを投稿
注: コメントを投稿できるのは、このブログのメンバーだけです。