在虚拟机中的ubuntu上安装docker,无法拉取图片

时间:2016-08-12 07:25:36

标签: docker ubuntu-14.04 windows-10 virtualbox

我在Windows 10上运行的virtualbox 5.0.26中安装了ubuntu 14.04.5作为来宾操作系统。我不知道ubuntu安装有任何问题,它似乎运行良好并且有桥接的互联网连接所以得到它自己的IP。

我按照docker docs for linux上的说明安装了泊坞广告。安装正常,没有任何错误,docker守护进程启动正常。 这是码头工具信息:

root@ubuntu-z9:~# docker info
Containers: 0
Running: 0
Paused: 0
Stopped: 0
Images: 0
Server Version: 1.12.0
Storage Driver: aufs
 Root Dir: /var/lib/docker/aufs
 Backing Filesystem: extfs
 Dirs: 0
 Dirperm1 Supported: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: overlay bridge host null
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Security Options: apparmor
Kernel Version: 4.2.0-27-generic
Operating System: Ubuntu 14.04.5 LTS
OSType: linux
Architecture: x86_64
CPUs: 10
Total Memory: 31.42 GiB
Name: ubuntu-z9
ID: 7MPO:OHFW:3OBJ:KUVX:3YCS:XP4U:RE6W:SFC3:O4KK:GJJU:M6WJ:HYLY
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
WARNING: No swap limit support
Insecure Registries:
 127.0.0.0/8

该机器可以正常访问互联网并从浏览器访问hub.docker.com。

但是,当我运行简单的hello-world测试时,守护进程挂起

root@ubuntu-z9:~# docker run hello-world
Unable to find image 'hello-world:latest' locally

超时。

我可以在主机windows 10机器上运行docker-machine而没有任何问题,所以我认为问题在于我在virtualbox和docker中设置了ubuntu机器。

以下是ubuntu来宾计算机上docker守护程序的日志记录输出:

$ docker pull hello-world

DEBU[0093] Calling POST /v1.24/images/create?fromImage=hello-world&tag=latest 
DEBU[0093] Trying to pull hello-world from https://registry-1.docker.io v2 
DEBU[0094] Increasing token expiration to: 60 seconds   
ERRO[0494] Error trying v2 registry: error parsing HTTP 408 response body: invalid character '<' looking for beginning of value: "<html><body><h1>408 Request Time-out</h1>\nYour browser didn't send a complete request in time.\n</body></html>\n\n" 
ERRO[0494] Attempting next endpoint for pull after error: error parsing HTTP 408 response body: invalid character '<' looking for beginning of value: "<html><body><h1>408 Request Time-out</h1>\nYour browser didn't send a complete request in time.\n</body></html>\n\n" 
DEBU[0494] Skipping v1 endpoint https://index.docker.io because v2 registry was detected 
ERRO[0494] Handler for POST /v1.24/images/create returned error: error parsing HTTP 408 response body: invalid character '<' looking for beginning of value: "<html><body><h1>408 Request Time-out</h1>\nYour browser didn't send a complete request in time.\n</body></html>\n\n"

有关诊断或解决问题的方法的任何建议?

非常感谢。

1 个答案:

答案 0 :(得分:2)

这是一个简单的问题,无疑在某处记录但我错过了。我在这里发布了一个答案,以防其他人有同样的答案。

virtualbox操作系统(在我的情况下是ubuntu)必须具有NAT网络适配器,并且NAT适配器必须具有比桥接适配器更高的优先级(如果有的话)。您不需要桥接适配器来运行docker(但是如果您希望虚拟机在本地网络上具有ip,那么您需要添加桥接适配器。)

用于运行docker的VirtualBox配置示例

  1. VBox适配器1:NAT(eth0),VBox适配器2:仅主机适配器(eth1)
  2. VBox适配器1:NAT(eth0),VBox适配器2:桥接适配器(eth1)
  3. VirtualBox配置示例无法正常运行以运行docker:

    1. VBox适配器1:桥接适配器(eth0)
    2. VBox适配器1:桥接适配器(eth0),VBox适配器2:NAT(eth1)
    3. 请注意,在所有四种情况下,virtualbox ubuntu操作系统都可以访问Internet,但是当NAT优先于桥接接口时,docker只能提取图像。