0

在 Mac OSX 上,可以通过以下方式构建 docker 映像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 版本,是否意味着docker build -f Dockerfile .由于 Mac 版本比 Ubuntu 旧,所以不推荐使用?

4

1 回答 1

2

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

docker build -f Dockerfile .

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

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

docker build -f Dockerfile .

第二个是

docker build - < Dockerfile

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

$ 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
于 2017-07-12T11:48:38.717 回答