使用' docker build&#39 ;?时如何获取主机的地址?

时间:2016-01-12 22:47:47

标签: docker

我需要在Docker构建期间引用主机或主机网络,在Dockerfile中,我该怎么做?我想这样做,克隆一些git repos,或scp一些文件来设置图像。

很容易克隆github repo,因为docker会为此解析dns。但是,我的主机网络没有dns条目可用于构建的docker镜像。

事实上,我甚至不知道主机的IP地址是什么,更不用说设置dns了。

3 个答案:

答案 0 :(得分:4)

你想做的事情违背了Dockerfile的想法。

Dockerfile的目的是提供一个"描述"在具有可重复性保证的同时获得图像。这就是为什么你没有在Dockerfile中拥有任何特定主机的原因,因此可以在任何地方构建具有相同结果的主机。

如果您需要与主机进行更密切的互动,则意味着您的结果对此主机来说很紧张,您应该在运行时进行。查看CMDENTRYPOINT以使容器在启动时执行某些操作。

答案 1 :(得分:2)

截至docker api 1.25,你现在可以做到:

<div class="carousel-inner" role="listbox">
    <div class="carousel-item active">
        <div class="img1">
        </div>
<!--<img class=" imgCstm " src="images/home/bng_00.jpg" alt="First slide">-->
    </div> 
</div> 


<style>
  .carousel-inner { 
     height: 100vh;
     <! --  custom hight -->
  }

  .carousel-item  { 
     height: 100%;
  }

  .img1 {
     background-image: url('../images/home/bng_00.jpg');
     height: 100%;
     width: 100%;
     background-repeat: no-repeat;
     background-attachment: fixed !important;
     background-size: cover !important;   
     background-position: center !important;
    }
</style>

这将使您在构建期间访问主机网络。

答案 2 :(得分:0)

你不了解Docker主机似乎很奇怪。我甚至无法理解这种可能性。

只需在构建期间传入主机信息即可。

docker run -e DOCKER_HOST=1.2.3.4 busybox env

或者,您将不得不使用某种发现系统,例如DNS,etcd,zookeeper或consul。