当Docker守护程序正在运行时,Linux上不存在“默认”Docker机器。

3
我正在Linux Manjaro上运行Docker。运行和使用服务没有问题:
[luqo33@ltarasiewicz-pc containers]$ systemctl status docker
● docker.service - Docker Application Container Engine
   Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset: disabled)
   Active: active (running) since Fri 2016-12-23 20:46:31 CET; 26s ago

然而,docker-machine ls 始终会显示如下内容:
[luqo33@ltarasiewicz-pc containers]$ docker-machine ls
NAME   ACTIVE   DRIVER   STATE   URL   SWARM   DOCKER   ERRORS

并且

[luqo33@ltarasiewicz-pc containers]$ docker-machine env default
Host does not exist: "default"

为什么没有“默认”机器可用?
2个回答

4

如果您已经在Linux上安装了Docker,您可以直接通过docker ps或任何其他Docker命令访问它。您需要以root(sudo)身份运行这些命令,或将您的用户添加到Docker组以访问Docker套接字。

Docker Machine用于快速启动云和虚拟机实例的Docker,在直接在Linux主机上安装时不需要使用。


2
这导致了正确的修复。使用 docker ps 发现我有权限问题,进一步的研究通过执行以下命令进行修复:sudo groupadd dockersudo usermod -a -G docker $USER - Abe Petrillo

2
您需要像这样创建它:
$ docker-machine create --driver virtualbox default
Running pre-create checks...
Creating machine...
...
...
...
To see how to connect Docker to this machine, run: docker-machine env default


$: docker-machine ls
NAME      ACTIVE   DRIVER       STATE     URL                         SWARM   DOCKER    ERRORS
default   -        virtualbox   Running   tcp://192.168.99.100:2376           v1.12.1


$: docker-machine env default
export DOCKER_TLS_VERIFY="1"
export DOCKER_HOST="tcp://192.168.99.100:2376"
export DOCKER_CERT_PATH="/Users/blahblah/.docker/machine/machines/default"
export DOCKER_MACHINE_NAME="default"

编辑:您也可以使用其他虚拟化提供商,如Fusion、Hyper-V等。


1
我不使用Virtualbox在Linux上运行Docker。 Docker守护进程正在监听Unix套接字。我知道你必须在Mac和Windows上使用VM,但似乎对于Linux来说并不相关。 - luqo33
1
@luqo33 在Linux上使用或不使用VirtualBox运行Docker与在Linux上运行Docker Machine没有任何关系。 Docker Machine的目的是创建服务器,在其上安装Docker并配置Docker客户端。就是这样。这些服务器可以是本地VM(曾经是在非Linux平台上运行Docker的唯一方式)使用VirtualBox、Hyper-V等,或者是使用供应商特定驱动程序的云服务器,如AWS或Azure。即使您正在运行Linux,我的答案也适用。阅读官方文档以更好地了解Docker Machine。 - The_Tourist

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接