在Windows上从Bash运行Dockerhtml
Docker须要访问至关多的系统调用,这些调用不必定都是在Windows上实现的,所以在WSL下Docker可能并不那么容易,相反,我能够在Windows上运行Docker Engine,并从Bash链接到Docker 。linux
要在Windows上安装Docker引擎,只需访问docker.com并下载相应的发行版(win10下载docker for windows)。此外,请确保已启用硬件虚拟化并安装Hyper-V,以避免引擎没法启动。docker
1、从Bash运行Windows可执行文件。只需将这两行添加到您的.bashrc
(并从新加载您的环境)ubuntu
export PATH="$HOME/bin:$HOME/.local/bin:$PATH" export PATH="$PATH:/mnt/c/Program\ Files/Docker/Docker/resources/bin" alias docker=docker.exe alias docker-compose=docker-compose.exe
你如今能够docker --version
从Bash 运行windows
2、在WSL上安装Docker,Ubuntu系统的安装方法以下bash
# Install packages to allow apt to use a repository over HTTPS $ sudo apt-get install apt-transport-https ca-certificates curl software-properties-common # Add Docker's official GPG key $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - # Set up the repository sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" # Update source lists sudo apt-get update # Install Docker sudo apt-get install docker-ce
如今已经在Windows和WSL上安装了Docker引擎,但它们都没有启动。ssh
windows的docker只要点击快捷方式启动,启动后在PowerShell上执行命令以下:curl
PS C:\> docker images REPOSITORY TAG IMAGE ID CREATED SIZE
WSL上的Docker启动不了,bash命令以下tcp
$ service docker start docker: unrecognized service $ docker images Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
docker
在另外一台机器上运行实际上很是简单,由于Docker公开了CLI能够附加到的TCP端点。端点使用TLS,这意味着咱们必须在WSL端设置客户端以识别Windows端Docker机器使用的证书,运行以下命令this
$ export DOCKER_HOST=tcp://192.168.99.100:2376 // your Docker IP $ export DOCKER_CERT_PATH=/mnt/c/Users/YOUR_USERNAME/.docker/machine/certs $ export DOCKER_TLS_VERIFY=1
完成后,咱们须要作的就是将Bash下的CLI链接到在Windows下运行的引擎,而不是链接到在Bash下不能运行的dockers,以下所示:
$ docker -H tcp://0.0.0.0:2376 $ docker images REPOSITORY TAG IMAGE ID CREATED SIZE
若是不是使用TLS,不使用证书,要公开没有TLS的守护进程。此步骤是必需的,以便守护程序在TCP端点上进行侦听。若是你不这样作,那么你将没法从WSL链接,因此为了让客户端和docker通讯,必须打开如下黄色背景的选项!操做以下截图
您可能还想共享您的驱动器(土话:盘符)。这一步不是必须的,但若是须要用到某个盘符的文件,建议勾选对应选项,转到“共享驱动器(Shared Drives)”设置并启用它。
将WSL配置为链接到Docker for Windows
执行命令:export DOCKER_HOST=tcp://127.0.0.1:2375
如今执行docker命令不会再出现如下提示:
Cannot connect to the Docker daemon. Is the docker daemon running on this host?
可是,该环境变量只会持续到会话结束。每次打开bash时都必须从新设置它。所以,为了不这种状况,您须要在主目录中的一个名为.bash_profile或者 .bashrc的文件中设置该变量,
这两个文件只支持ssh命令终端用vi打开
在FileZilla文件访问软件是没法找到的
打开这两个文件中有数据的那个并在结尾处添加
保存后从新启动bash控制台执行docker相关命令能够照常执行了。
参考博文:
二、https://blog.jayway.com/2017/04/19/running-docker-on-bash-on-windows/