在构建时我的docker文件中,我想从本地服务器访问主机上的文件,而不是将它们复制到docker context文件夹(即Dockerfile所在的位置)
FROM busybox
RUN curl -L http://localhost/latest/myfile -o /root/myfile
我弄错了
$ docker build -t archlinux/test .
... from localhost : Failed to connect to localhost port 80: Connection refused
那怎么做。
解决方案::使用localhost/file
使用本地主机的IP进行更改
Listen 127.0.0.1:80 to Listen 80
或
最好的解决方法是使用--network=host
docker build --network=host -t test .
答案 0 :(得分:1)
这个curl请求有更深的意义吗?
Dockerfile可以在任何地方使用(不仅在您的计算机中)。例如,我想下载Dockerfile并基于该文件构建映像...我需要使用www服务器提供资源(myfile),并使用public onAddCustomer(): void {
this.someCustomer = this.addForm.value;
this.customersService.addCustomer(this.someCustomer)
.then(
// add success code here
)
.catch(
// add error code here
)
参数运行docker build-有点烦人。
我认为您应该为此工作使用COPY
命令。
答案 1 :(得分:0)
如果您正在使用Docker for Linux,则在运行--network="host"
或docker run
命令时,需要使用docker build
作为参数,然后是主机的本地主机127.0.0.1
您的Docker容器将可以访问它。