Bạn có thể sử dụng Docker Desktop cho Windows làm công cụ và Docker cho Linux làm máy khách trong WSL trên Ubuntu / Debian trên Windows. Kết nối chúng qua TCP.
Cài đặt Docker Desktop cho Windows: https://hub.docker.com/editions/community/docker-ce-desktop-windows
Nếu bạn muốn sử dụng Windows Container thay vì Linux Container, cả hai loại container đều có thể được quản lý bởi máy khách docker Linux không gian người dùng bash.
Kể từ phiên bản 17.03.1-ce-win12 (12058), bạn phải kiểm tra Expose daemon trên tcp: // localhost: 2375 mà không có TLS để cho phép máy khách Docker của Linux tiếp tục liên lạc với trình nền Windows Docker bằng TCP
Thực hiện theo các bước sau:
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
hoặc là
env DOCKER_HOST=tcp://0.0.0.0:2375 ./docker ps
Để làm cho nó vĩnh viễn:
mkdir ~/bin
mv ~/docker/docker ~/bin
Thêm các biến tương ứng vào .bashrc
export DOCKER_HOST=tcp://0.0.0.0:2375
export PATH=$PATH:~/bin
Tất nhiên, bạn có thể cài đặt 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
Hoặc sử dụng pip python
sudo apt-get install python-pip bash-completion
sudo pip install docker-compose
Và Bash hoàn thành. Phần tốt nhất:
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
Tôi đã thử nghiệm nó bằng phiên bản 2.1.0.1 (37199) của Docker Desktop bằng 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**
Khối lượng
Cẩn thận khi thêm khối lượng. Đường dẫn C:\dir
sẽ hiển thị như /mnt/c/dir
trên WSL và như /c/dir/
bởi công cụ docker. Bạn có thể khắc phục nó vĩnh viễn:
sudo bash -c "echo -e '[automount] \nroot = /'>/etc/wsl.conf"
Bạn phải thoát và tải lại WSL sau khi thực hiện thay đổi thành wsl.conf để WSL đọc các thay đổi của bạn khi khởi chạy.
CẬP NHẬT
từ: Có gì mới cho Dòng lệnh trong Windows 10 phiên bản 1803
Ổ cắm Unix Ổ cắm
Unix không được hỗ trợ trên Windows, và bây giờ chúng là! Bạn cũng có thể giao tiếp qua các ổ cắm Unix giữa Windows và WSL. Một trong những điều tuyệt vời ở đây là nó cho phép WSL chạy Linux Docker Client để tương tác với Docker Daemon chạy trên Windows.
CẬP NHẬT
Kịch bản này và việc sử dụng của Unix Sockets đã được đưa vào Pengwin pengwin-setup 's.
Trân trọng
bash
không gian người dùng. Đó là một không gian người dùng Linux thực sự, khá đầy đủ, nhưng không có X Windows tức là chỉ có văn bản. Nói "bash" truyền đạt giới hạn chỉ văn bản khá tốt ..