我在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"
有关诊断或解决问题的方法的任何建议?
非常感谢。
答案 0 :(得分:2)
这是一个简单的问题,无疑在某处记录但我错过了。我在这里发布了一个答案,以防其他人有同样的答案。
virtualbox操作系统(在我的情况下是ubuntu)必须具有NAT网络适配器,并且NAT适配器必须具有比桥接适配器更高的优先级(如果有的话)。您不需要桥接适配器来运行docker(但是如果您希望虚拟机在本地网络上具有ip,那么您需要添加桥接适配器。)
用于运行docker的VirtualBox配置示例 :
VirtualBox配置示例无法正常运行以运行docker:
请注意,在所有四种情况下,virtualbox ubuntu操作系统都可以访问Internet,但是当NAT优先于桥接接口时,docker只能提取图像。