Linux 在Ubuntu 18.04.2 LTS上运行docker

Linux 在Ubuntu 18.04.2 LTS上运行docker,linux,docker,ubuntu,unix,windows-subsystem-for-linux,Linux,Docker,Ubuntu,Unix,Windows Subsystem For Linux,正如所宣布的,docker现在在WSL2上受支持。我正在尝试在Windows10的Linux子系统上安装docker。在完成了本文中提到的所有步骤之后,我得到了以下错误 $docker ps Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running? 我在这里遗漏了什么吗?您不能在WSL内部运行docker守护程序,这意味着您不能在WSL内部托管容器。但是您可

正如所宣布的,docker现在在WSL2上受支持。我正在尝试在Windows10的Linux子系统上安装docker。在完成了本文中提到的所有步骤之后,我得到了以下错误

$docker ps
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

我在这里遗漏了什么吗?

您不能在WSL内部运行docker守护程序,这意味着您不能在WSL内部托管容器。但是您可以使用运行在WSL内部的docker客户端连接到运行在windows上的守护进程

首先,您需要获得docker desktop for windows

完成此操作后,请确保在tcp://localhost:2375 没有TLS时,将打开

然后在WSL中安装docker

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
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
并设置env变量,以便所有docker命令都转到windows中公开的守护进程

export DOCKER_HOST=tcp://localhost:2375

您现在可以在WSL中使用docker命令:-

您不能在WSL中运行docker守护程序,这意味着您不能在WSL中托管容器。但是您可以使用运行在WSL内部的docker客户端连接到运行在windows上的守护进程

首先,您需要获得docker desktop for windows

完成此操作后,请确保在tcp://localhost:2375 没有TLS时,将打开

然后在WSL中安装docker

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
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
并设置env变量,以便所有docker命令都转到windows中公开的守护进程

export DOCKER_HOST=tcp://localhost:2375
您现在可以在WSL中使用docker命令:-

在WSL2上成功运行docker的先决条件

Windows 10生成18932或更高版本。要检查操作系统构建版本Win Key+R,请运行命令winver 您可以通过注册并检查计算机上的最新windows更新来获取Build18932 然后运行wsl-在Powershell上使用admin命令设置默认版本2,以便在您的计算机上始终使用WSL2 现在,您已经准备好在您的计算机上安装Linux发行版了。使用这些说明

您需要使用sudo/etc/init.d/docker start显式启动docker

安装后,确认一切正常;在Powershell上运行以下命令。如果它显示在下面的输出,这意味着Ubuntu-18.04正在WSL2上运行

PS> wsl -l -v
 NAME            STATE           VERSION
* Ubuntu-18.04    Running         2
-参考资料:

在WSL2上成功运行docker的先决条件

Windows 10生成18932或更高版本。要检查操作系统构建版本Win Key+R,请运行命令winver 您可以通过注册并检查计算机上的最新windows更新来获取Build18932 然后运行wsl-在Powershell上使用admin命令设置默认版本2,以便在您的计算机上始终使用WSL2 现在,您已经准备好在您的计算机上安装Linux发行版了。使用这些说明

您需要使用sudo/etc/init.d/docker start显式启动docker

安装后,确认一切正常;在Powershell上运行以下命令。如果它显示在下面的输出,这意味着Ubuntu-18.04正在WSL2上运行

PS> wsl -l -v
 NAME            STATE           VERSION
* Ubuntu-18.04    Running         2

-参考资料:

要让wsl2与docker一起工作,您还需要做一些调整和步骤


看看你是否想知道更多关于如何让这个工作

要让wsl2与docker一起工作,您还需要做一些调整和步骤


看看你是否想知道更多关于如何让这个工作

我会去问问Windows docker进程没有打开UNIX套接字。将docker配置为通过TCP。@tadman,我该怎么做?找出docker服务器运行的端口。可以帮助连接到远程计算机。Windows docker进程中可能重复的“我要去询问”进程无法打开UNIX套接字。将docker配置为通过TCP。@tadman,我该怎么做?找出docker服务器运行的端口。可以帮助连接到远程机器。可能重复Q1:在Ubuntu WSL上运行docker是否需要启用虚拟化?问题2:如果我选择Ubuntu的干净拷贝而不是WSL,它需要启用虚拟化吗?我在英特尔core-2-duo处理器上运行它。你需要启用hyperv才能运行docker for Windows,记住docker容器在wsl中没有“运行”。通过Ubuntu的干净拷贝,你是指以本机方式运行Ubuntu作为主操作系统吗?如果是这样的话,那么不,在Linux上本机运行docker不需要虚拟化。Q1:在Ubuntu WSL上运行docker是否需要启用虚拟化?问题2:如果我选择Ubuntu的干净拷贝而不是WSL,它需要启用虚拟化吗?我在英特尔core-2-duo处理器上运行它。你需要启用hyperv才能运行docker for Windows,记住docker容器在wsl中没有“运行”。通过Ubuntu的干净拷贝,你是指以本机方式运行Ubuntu作为主操作系统吗?如果是这样的话,那么不,在Linux上以本机方式运行docker不需要虚拟化。是的,我已经发表过类似的博客文章。