Windows用のDockerデスクトップをエンジンとして使用し、Linux用のDockerをクライアントとして使用して、Windows上のUbuntu / DebianのWSLで使用できます。それらをTCP経由で接続します。
Docker Desktop for Windowsをインストールします:https : //hub.docker.com/editions/community/docker-ce-desktop-windows
Linuxコンテナーの代わりにWindowsコンテナーを使用する場合は、両方のタイプのコンテナーをLinux dockerクライアントで管理できます。 bashユーザースペース。
バージョン17.03.1-ce-win12(12058)以降、TLSなしでtcp:// localhost:2375のExposeデーモンをチェックして、Linux DockerクライアントがTCPによってWindows Dockerデーモンとの通信を継続できるようにする必要があります。
次の手順を実行します:
cd
wget https://download.docker.com/linux/static/stable/`uname -m`/docker-19.03.1.tgz
tar -xzvf docker-*.tgz
cd docker
./docker -H tcp://0.0.0.0:2375 ps
または
env DOCKER_HOST=tcp://0.0.0.0:2375 ./docker ps
永続化するには:
mkdir ~/bin
mv ~/docker/docker ~/bin
対応する変数を.bashrcに追加します
export DOCKER_HOST=tcp://0.0.0.0:2375
export PATH=$PATH:~/bin
もちろん、docker-composeをインストールできます
sudo -i
curl -L https://github.com/docker/compose/releases/download/1.24.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
またはpython pipを使用
sudo apt-get install python-pip bash-completion
sudo pip install docker-compose
そして、Bashの完了。一番良いところ:
sudo -i
apt-get install bash-completion
curl -L https://raw.githubusercontent.com/docker/docker-ce/master/components/cli/contrib/completion/bash/docker > /etc/bash_completion.d/docker
curl -L https://raw.githubusercontent.com/docker/compose/$(docker-compose version --short)/contrib/completion/bash/docker-compose > /etc/bash_completion.d/docker-compose
Hyper-Vを使用したDocker Desktopの2.1.0.1(37199)バージョンを使用してテストしました。
$ docker version
Client: Docker Engine - Community
Version: 19.03.1
API version: 1.40
Go version: go1.12.5
Git commit: 74b1e89e8a
Built: Thu Jul 25 21:17:37 2019
OS/Arch: linux/amd64
Experimental: false
Server: Docker Engine - Community
Engine:
Version: 19.03.1
API version: 1.40 (minimum version 1.12)
Go version: go1.12.5
Git commit: 74b1e89
Built: Thu Jul 25 21:17:52 2019
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: v1.2.6
GitCommit: 894b81a4b802e4eb2a91d1ce216b8817763c29fb
runc:
Version: 1.0.0-rc8
GitCommit: 425e105d5a03fabd737a126ad93d62a9eeede87f
docker-init:
Version: 0.18.0
GitCommit: fec3683
Look both client and server say **OS/Arch: linux/amd64**
ボリューム
ボリュームを追加するときは注意してください。パスC:\dir
は/mnt/c/dir
、WSL上および/c/dir/
dockerエンジンごとに表示されます。あなたは永久にそれを克服することができます:
sudo bash -c "echo -e '[automount] \nroot = /'>/etc/wsl.conf"
WSLが起動時に変更を読み込むように、wsl.confに変更を加えた後、WSLを終了してリロードする必要があります。
更新
from:Windows 10バージョン1803のコマンドラインの新機能
Unixソケット
UnixソケットはWindowsではサポートされていませんでしたが、現在はサポートされています!WindowsとWSLの間でUnixソケットを介して通信することもできます。これの素晴らしい点の1つは、WSLがLinux Docker Clientを実行して、Windows上で実行されているDocker Daemonと対話できるようにすることです。
更新
このスクリプトとUnixソケットの使用は、Pengwinのpengwin -setup に含まれていました。
よろしく
bash
ユーザースペースではありません。それは実際の、かなり完全なLinuxユーザー空間ですが、X Windows、つまりテキストのみではありません。言って、「bashが」..非常によく、テキストのみの制限を伝える