Ви можете використовувати Docker Desktop для Windows як двигун, а Docker для Linux як клієнт у WSL на Ubuntu / Debian у Windows. Підключіть їх через TCP.
Встановлення Docker Desktop для Windows: https://hub.docker.com/editions/community/docker-ce-desktop-windows
Якщо ви хочете використовувати контейнери Windows замість контейнерів Linux, обома контейнерами можна керувати клієнтом докерів Linux у простору користувачів bash.
Починаючи з версії 17.03.1-ce-win12 (12058), ви повинні перевірити Expose daemon на tcp: // localhost: 2375 без TLS, щоб клієнт Linux Docker міг продовжувати спілкуватися з демоном Windows Docker TCP
Виконайте такі дії:
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
Звичайно, ви можете встановити докер-композит
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
Або за допомогою пітона піп
sudo apt-get install python-pip bash-completion
sudo pip install docker-compose
І завершення Баша. Найкраща частина:
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
Я перевірив його, використовуючи версію Docker Desktop 2.1.0.1 (37199) за допомогою Hyper-V:
$ 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/
допомогою докерного двигуна. Ви можете його подолати назавжди:
sudo bash -c "echo -e '[automount] \nroot = /'>/etc/wsl.conf"
Після внесення змін у wsl.conf ви повинні вийти та перезавантажити WSL, щоб WSL читав ваші зміни при запуску.
ОНОВЛЕННЯ
від: Що нового для командного рядка у Windows 10 версії 1803
Unix Sockets
Unix Sockets не підтримувались у Windows, і тепер вони є! Ви також можете спілкуватися через Unix-сокети між Windows та WSL. Однією з чудових речей у цьому є те, що він дозволяє WSL запускати клієнт Linux Docker для взаємодії з Docker Daemon, що працює на Windows.
ОНОВЛЕННЯ
Цей сценарій та використання Unix Sockets були включені в налаштування pengwin 's pengwin.
З повагою
bash
простору " користувача. Це справжній, досить повний простір користувачів Linux, але без X Windows, тобто лише тексту. Говорячи "bash", досить добре