【问题标题】:What does the DOCKER_HOST variable do?DOCKER_HOST 变量有什么作用?
【发布时间】:2014-10-03 18:44:07
【问题描述】:

我是 Docker 新手,在 OSX 上使用 Boot2Docker。启动后,会给出以下消息:

To connect the Docker client to the Docker daemon, please set
export DOCKER_HOST=tcp://192.168.59.103:2375

即使没有它,基本的 Docker 命令(例如,docker run hello-world)也能正常工作。

安装说明信息量不大:

Note: If you see a message in the terminal that looks something like this:
To connect the Docker client to the Docker daemon, please set: 
export  DOCKER_HOST=tcp://192.168.59.103:2375
you can safely set the evironment variable as instructed.

知道它是“安全的”并不能说明它为什么有用。

我不清楚的地方:

  1. 什么是 docker“客户端”?
  2. 什么是 docker“守护进程”?
  3. 什么是 docker “主机”? (Boot2Docker 虚拟机本身?)

【问题讨论】:

    标签: macos virtual-machine daemon docker boot2docker


    【解决方案1】:

    好的,我想我明白了。

    客户端是安装在 OS X 中的docker 命令。

    主机是 Boot2Docker 虚拟机。

    守护进程是在 Boot2Docker 中运行的后台服务。

    这个变量告诉客户端如何连接到守护进程。

    启动Boot2Docker时,弹出的终端窗口已经设置了DOCKER_HOST,这就是docker命令起作用的原因。但是,要在其他终端窗口中运行 Docker 命令,您需要在这些窗口中设置此变量

    设置失败会显示如下消息:

    $ docker run hello-world
    2014/08/11 11:41:42 Post http:///var/run/docker.sock/v1.13/containers/create: 
    dial unix /var/run/docker.sock: no such file or directory
    

    解决这个问题的一种方法是简单地这样做:

    $ export DOCKER_HOST=tcp://192.168.59.103:2375
    

    但是,正如其他人指出的那样,最好这样做:

    $ $(boot2docker shellinit)
    $ docker run hello-world
    Hello from Docker. [...]
    

    要说明这个可能不直观的 Bash 命令,运行 boot2docker shellinit 会返回一组设置环境变量的 Bash 命令:

    export DOCKER_HOST=tcp://192.168.59.103:2376
    export DOCKER_CERT_PATH=/Users/ddavison/.boot2docker/certs/boot2docker-vm
    export DOCKER_TLS_VERIFY=1
    

    因此运行 $(boot2docker shellinit) 会生成这些命令,然后运行它们

    【讨论】:

      【解决方案2】:

      经调查,还值得注意的是,当你想在新的终端窗口中开始使用 docker 时,正确的命令是:

      $(boot2docker shellinit)
      

      我已经测试过这些命令:

      >>  docker info
      Get http:///var/run/docker.sock/v1.15/info: dial unix /var/run/docker.sock: no such file or directory
      >>  boot2docker shellinit
      Writing /Users/ddavison/.boot2docker/certs/boot2docker-vm/ca.pem
      Writing /Users/ddavison/.boot2docker/certs/boot2docker-vm/cert.pem
      Writing /Users/ddavison/.boot2docker/certs/boot2docker-vm/key.pem
          export DOCKER_HOST=tcp://192.168.59.103:2376
          export DOCKER_CERT_PATH=/Users/ddavison/.boot2docker/certs/boot2docker-vm
          export DOCKER_TLS_VERIFY=1
      >> docker info
      Get http:///var/run/docker.sock/v1.15/info: dial unix /var/run/docker.sock: no such file or directory
      

      请注意 docker info 返回了同样的错误。然而..当使用$(boot2docker shellinit)...

      >>  $(boot2docker init)
      Writing /Users/ddavison/.boot2docker/certs/boot2docker-vm/ca.pem
      Writing /Users/ddavison/.boot2docker/certs/boot2docker-vm/cert.pem
      Writing /Users/ddavison/.boot2docker/certs/boot2docker-vm/key.pem
      >>  docker info
      Containers: 3
      ...
      

      【讨论】:

        【解决方案3】:

        它指向 docker 主机!我按照以下步骤操作:

        $ boot2docker start
        
        Waiting for VM and Docker daemon to start...
        ..............................
        Started.
        
        To connect the Docker client to the Docker daemon, please set:
            export DOCKER_HOST=tcp://192.168.59.103:2375
        
        $ export DOCKER_HOST=tcp://192.168.59.103:2375
        
        $ docker run ubuntu:14.04 /bin/echo 'Hello world'
        Unable to find image 'ubuntu:14.04' locally
        Pulling repository ubuntu
        9cbaf023786c: Download complete 
        511136ea3c5a: Download complete 
        97fd97495e49: Download complete 
        2dcbbf65536c: Download complete 
        6a459d727ebb: Download complete 
        8f321fc43180: Download complete 
        03db2b23cf03: Download complete 
        Hello world
        

        见:
        http://docs.docker.com/userguide/dockerizing/

        【讨论】:

          猜你喜欢
          • 2017-07-03
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-08-04
          • 2015-03-05
          • 2010-11-09
          • 2022-12-15
          相关资源
          最近更新 更多