前言
Windows10 内置了Linux系统:WSL (Windows Subsystem for Linux, 又称Bash for Windows)。可以方便地在Win10里使用Ubuntu等Linux系统的命令行,本篇文件使用Ubuntu作为讲解。
docker:Docker 是一个开源的应用容器引擎,可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口,容器性能开销极低。
解决方案
问题
在windows10子系统中是无法直接安装成功docker的,因为win10子系统是运行在win10系统只上的,不是直接基于底层和硬件的;但是docker的运行时要基于底层很多东西的。
解决
所以我们这篇文章的解决方案是在win机器上安装好Docker in Windows,然后在win10 子系统中通过remote Docker daemon的方式连接Docker。
这样做的意义就是可以使用熟悉的Linux命令行、文件系统和docker,又能不暗转虚拟机和Linux。
架构
win10子系统Ubuntu–>docker客户端 –> remote Docker daemon –> Docker in Windows
操作
安装Docker in Windows
下载
安装
直接使用默认配置,下一步-下一步安装就好了
安装win10子系统Ubuntu
以下面步骤勾选windows10的“适用于Linux的Windows子系统”,然后需要系统重启。
重启之后在windows应用商店中搜索Linux安装自己喜欢的Linux系统,如下图。
子系统Ubuntu中安装docker客户端
参考官网文档进行安装
安装Docker Compose:
# Install Python and PIP.
sudo apt-get install -y python3 python3-pip
# Install Docker Compose into your user's home directory.
pip install --user docker-compose
在子系统Ubuntu远程Docker in Windows
最关键的一行命令,打开Bash:
echo "export DOCKER_HOST=tcp://localhost:2375" >> ~/.bashrc && source ~/.bashrc
不通过deamon连接的话,你在Ubuntu里运行docker,就会出现错误:
docker: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
验证Docker启动成功:
docker info
docker-compose --version
注意问题
这时我们的docker,其实是安装在windows中,Linux只是作为远程客户端来链接windows的docker,windows和Linux最大的区别就是文件系统的不同。所以在启动容器的时候如果需要映射目录,需要在windows的CMD或者PowerShell对容器进行启动。