【问题标题】:Running docker on Ubuntu 18.04.2 LTS在 Ubuntu 18.04.2 LTS 上运行 docker
【发布时间】:2019-07-30 21:35:26
【问题描述】:

正如Microsoft blog 所宣布的,现在 WSL2 支持 docker。我正在尝试在 Windows10 的 Linux 子系统上安装 docker。遵循official documentation 中提到的所有步骤后,我收到以下错误。

$docker ps
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
$ docker version
Client: Docker Engine - Community
 Version:           19.03.1
 API version:       1.40
 Go version:        go1.12.5
 Git commit:        74b1e89
 Built:             Thu Jul 25 21:21:05 2019
 OS/Arch:           linux/amd64
 Experimental:      false
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

我这里有什么遗漏吗?

【问题讨论】:

标签: linux docker ubuntu unix windows-subsystem-for-linux


【解决方案1】:

Docker is now supported on WSL2

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

  1. Windows 10(内部版本 18932 或更高版本)。检查操作系统构建版本Win-Key + R, run command "winver"
  2. 您可以通过注册windows insider program 来获取Build#18932,然后在您的机器上查看最新的Windows 更新
  3. Enable WSL on your machine( Windows10 ) 然后在 Powershell 命令上使用管理员运行 wsl --set-default-version 2 以始终在您的计算机上使用 WSL2

现在您已准备好在您的机器上安装 Linux 发行版。 Install Ubuntu on Windows 10 WSL 使用这些说明

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

安装后验证一切正常;在 Powershell 上运行以下命令。如果它显示以下输出,则表示 Ubuntu-18.04 正在 WSL 2 上运行

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

-参考:microsoft/wsl on Github

【讨论】:

    【解决方案2】:

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

    首先你需要得到 docker desktop for windows https://docs.docker.com/docker-for-windows/install/

    完成此操作后,请确保打开不带 TLS 的 tcp://localhost:2375 上公开守护进程的设置。

    然后在 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 命令了 :-)

    【讨论】:

    • Q1:是否需要启用虚拟化才能在 Ubuntu (WSL) 上运行 docker? Q2:如果我想要 Ubuntu(不是 WSL)的干净副本,是否需要启用虚拟化?我在 Intel core-2-duo 处理器上运行它。
    • 您需要启用 hyperv 才能在 Windows 上运行 docker,记住 docker 容器在 wsl 中没有“运行”。
    • 通过 Ubuntu 的干净副本,您是指在本机运行 Ubuntu 作为主要操作系统吗?如果是这样,那么不需要,在 Linux 上本地运行 docker 不需要虚拟化。
    【解决方案3】:

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

    如果您想了解更多有关如何使其工作的信息,请查看https://codingfullstack.com/cloud/docker-installation-wsl2/

    【讨论】:

    猜你喜欢
    • 2019-10-03
    • 1970-01-01
    • 2020-08-16
    • 1970-01-01
    • 1970-01-01
    • 2020-11-10
    • 1970-01-01
    • 1970-01-01
    • 2016-08-29
    相关资源
    最近更新 更多