wsl 下安装docker

docker for windows自己实际上是能够直接用的,可是仍然有不少不足,好比说:权限问题、没有docker.sock文件、文件编码问题等。而win10自带的wsl能够很是完美地解决这些问题。python

 

安装wsl

首先在 程序和功能->启用和关闭windows功能中打开适用于Linux的Windows子系统linux

而后打开微软应用商店,直接搜索Ubuntu,选择18.06版本的ubuntu安装docker

 

wsl配置

首先配置阿里云镜像,vim /etc/apt/sources.listshell

deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse

而后更新源ubuntu

apt update

默认状况下,windows的目录会自动挂载(mount)到wsl中的/mnt目录下,可是这样会致使后面的docker的相对路径问题。因此修改配置文件 /etc/wsl.confvim

[automount] root = / options = "metadata,umask=22,fmask=11"

这样,windows里面的c盘就自动挂载到了wsl中的/c/目录下,d盘就自动挂载到了wsl中的/d/目录下windows

 

安装docker for windows

直接到官网上下载安装便可。curl

安装的时候,由于咱们要使用wsl中的docker,也就是linux container,因此记得不要选择windows container。tcp

安装好了以后,先配置加速器,目前我用阿里云和daocloud的加速器,都挺快的。到对应的网站上按照指示操做便可。ionic

开发的时候,须要把物理机上的代码和容器中的代码文件作共享,因此须要在Shared Drives中配置共享的盘符。你的代码在哪一个盘里面,那么就选择共享哪一个盘

 

wsl中安装docker

若是直接用apt来安装docker,不会是最新版的,因此参考官方文档来安装最新版的docker(https://docs.docker.com/install/linux/docker-ce/ubuntu/

即:

sudo apt-get remove docker docker-engine docker.io sudo apt-get update sudo apt-get install \ apt-transport-https \ ca-certificates \ curl \ software-properties-common curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - sudo apt-key fingerprint 0EBFCD88 sudo add-apt-repository \ "deb [arch=amd64] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) \ stable" sudo apt-get update sudo apt-get install docker-ce

试一下执行docker命令:

docker version

结果以下:

Client:
 Version:      18.03.1-ce
 API version:  1.37
 Go version:   go1.9.5
 Git commit:   9ee9f40
 Built:        Wed Jun 20 21:43:51 2018
 OS/Arch:      linux/amd64
 Experimental: false Orchestrator: swarm Server: Engine: Version: 18.03.1-ce API version: 1.37 (minimum version 1.12) Go version: go1.9.5 Git commit: 9ee9f40 Built: Thu Apr 26 07:22:38 2018 OS/Arch: linux/amd64 Experimental: false

OK了,可是若是再run一下呢?

docker run busybox

此时会提示docker daemon没有运行。那么执行:

sudo service docker start

虽然看到is starting,可是docker仍是不能run。

此时,就须要打开docker for windows中的General->Expose daemon on tcp://localhost:2375 without TLS

而后在wsl中执行:

export DOCKER_HOST=tcp://localhost:2375

而后就能够开始run了。

另外默认状况下是不会安装docker-compose的,若是经过apt来安装docker-compose,也不会是最新版,可是经过pip来安装的就是最新版,因此:

sudo apt install python-pip sudo pip install docker-compose

测试下:

docker-compose version
相关文章
相关标签/搜索