Anda dapat menggunakan Docker Desktop untuk Windows sebagai mesin dan Docker untuk Linux sebagai klien di Wsl di Ubuntu / Debian di Windows. Hubungkan mereka melalui TCP.
Instal Docker Desktop untuk Windows: https://hub.docker.com/editions/community/docker-ce-desktop-windowsJika Anda ingin menggunakan wadah Windows alih-alih wadah Linux, kedua jenis wadah dapat dikelola oleh klien Docker Linux di ruang pengguna bash.
Sejak versi 17.03.1-ce-win12 (12058) Anda harus memeriksa Mengekspos daemon pada tcp: / / localhost: 2375 tanpa TLS untuk memungkinkan klien Docker Linux untuk terus berkomunikasi dengan daemon Docker Windows oleh TCP
Ikuti langkah-langkah berikut:
cdwget https://download.docker.com/linux/static/stable/`uname -m`/docker-19.03.1.tgztar -xzvf docker-*.tgzcd docker./docker -H tcp://0.0.0.0:2375 ps
atau
env DOCKER_HOST=tcp://0.0.0.0:2375 ./docker ps
Untuk membuatnya permanen:
mkdir ~/binmv ~/docker/docker ~/bin
Tambahkan variabel yang sesuai ke .bashrc
export DOCKER_HOST=tcp://0.0.0.0:2375export PATH=$PATH:~/bin
Tentu saja, Anda dapat menginstal docker-compose
sudo -icurl -L https://github.com/docker/compose/releases/download/1.24.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-composechmod +x /usr/local/bin/docker-compose
Atau menggunakan python pip
sudo apt-get install python-pip bash-completionsudo pip install docker-compose
Dan Bash selesai. Bagian terbaik:
sudo -iapt-get install bash-completioncurl -L https://raw.githubusercontent.com/docker/docker-ce/master/components/cli/contrib/completion/bash/docker > /etc/bash_completion.d/dockercurl -L https://raw.githubusercontent.com/docker/compose/$(docker-compose version --short)/contrib/completion/bash/docker-compose > /etc/bash_completion.d/docker-compose
Saya telah mengujinya menggunakan versi 2.1.0.1 (37199) dari Docker Desktop menggunakan Hyper-V:
$ docker versionClient: 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: falseServer: 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: fec3683Look both client and server say **OS/Arch: linux/amd64**
Volume
Berhati-hatilah saat menambahkan volume. The path C:\dir
akan terlihat sebagai /mnt/c/dir
pada WSL dan as /c/dir/
dengan docker engine. Anda dapat mengatasinya secara permanen:
sudo bash -c "echo -e '[automount] \nroot = /'>/etc/wsl.conf"
Anda harus keluar dan reload WSL setelah membuat perubahan ke Wsl.conf sehingga Wsl membaca perubahan Anda saat peluncuran.
Pembaruan
dari: Apa yang baru untuk baris perintah di Windows 10 versi 1803
Unix Sockets Soket Unix tidak didukung pada Windows, dan sekarang mereka! Anda juga dapat berkomunikasi melalui soket Unix antara Windows dan WSL. Salah satu hal hebat tentang ini adalah memungkinkan WSL untuk menjalankan klien Docker Linux untuk berinteraksi dengan Daemon Docker yang berjalan di Windows.
Pembaruan
Script ini dan penggunaan soket Unix termasuk dalam Pengwinpengwin-setup.
Salam