Docker构建(MacOS vs Ubuntu)

时间:2017-07-12 05:48:25

标签: docker docker-compose dockerfile docker-build

在Mac OSX上,可以通过Dockerfile来构建泊坞窗图像:

docker build -f Dockerfile .

在Debian / Ubuntu上,上面的内容不起作用,只是挂在那里。

docker build - < Dockerfile

但是Mac OSX可以采用这两种语法。 为什么会这样?

是不是因为不同操作系统上的Docker版本不同或Docker不同?

Mac上的Docker:

$ docker version
Client:
 Version:      17.03.1-ce
 API version:  1.27
 Go version:   go1.7.5
 Git commit:   c6d412e
 Built:        Tue Mar 28 00:40:02 2017
 OS/Arch:      darwin/amd64

Server:
 Version:      17.04.0-ce
 API version:  1.28 (minimum version 1.12)
 Go version:   go1.7.5
 Git commit:   4845c56
 Built:        Wed Apr  5 18:45:47 2017
 OS/Arch:      linux/amd64
 Experimental: false

Ubuntu上的Docker:

$ docker version
Client:
 Version:      17.06.0-ce
 API version:  1.30
 Go version:   go1.8.3
 Git commit:   02c1d87
 Built:        Fri Jun 23 21:23:31 2017
 OS/Arch:      linux/amd64

Server:
 Version:      17.06.0-ce
 API version:  1.30 (minimum version 1.12)
 Go version:   go1.8.3
 Git commit:   02c1d87
 Built:        Fri Jun 23 21:19:04 2017
 OS/Arch:      linux/amd64
 Experimental: false

如果它是不同的Docker版本,是否因为Mac版本早于Ubuntu版本而不推荐使用docker build -f Dockerfile .

1 个答案:

答案 0 :(得分:2)

正如我在我的版本中看到的那样,它正在发挥作用。我会让这个答案留在这里,以便我们知道

docker build -f Dockerfile .

适用于mac上的docker版本3,ubuntu上的docker版本5,并挂载在ubuntu上的docker版本6上。

原始答案: 我的系统在ubuntu上运行,我测试了两种构建方法,并且都以相同的方式工作。第一个是

docker build -f Dockerfile .

和第二个

docker build - < Dockerfile

也许看看我的码头版本会有所帮助:

$ docker version
Client:
 Version:      17.05.0-ce
 API version:  1.29
 Go version:   go1.7.5
 Git commit:   89658be
 Built:        Thu May  4 22:10:54 2017
 OS/Arch:      linux/amd64

Server:
 Version:      17.05.0-ce
 API version:  1.29 (minimum version 1.12)
 Go version:   go1.7.5
 Git commit:   89658be
 Built:        Thu May  4 22:10:54 2017
 OS/Arch:      linux/amd64
 Experimental: false