使用 IP 连接到 docker 容器

Connect to docker container using IP

我是运行下一个命令:

$ docker-machine ls
NAME      ACTIVE   DRIVER       STATE     URL                         SWARM   DOCKER        ERRORS
default   *        virtualbox   Running   tcp://192.168.99.100:2376           v17.06.2-ce   

$ docker-machine ip default
192.168.99.100

我还有一些 docker 个容器。 一个是 运行 django,另一个是 postgres,第三个是弹性搜索。

当我 运行 我的 django 容器时:

# python manage.py runserver 0:8000

当我使用该网站时它正在运行:

localhost:8000/

但是,当我使用时不可用:192.168.99.100:8000 在那里,我有浏览器消息:

This site can’t be reached

192.168.99.100 refused to connect. Try: Checking the connection

postgreselasticseach 容器也是如此。

为什么我的 docker 容器没有应用 default docker-machine ip

听起来你没有告诉 Docker 与你的 VM 对话,而且你的容器 运行 在你的主机上。

要解决:

  1. 放下你的容器

  2. 运行 $ eval "$(docker-machine env default)" 设置以下环境变量:

    export DOCKER_TLS_VERIFY="1"
    export DOCKER_HOST="tcp://x.x.x.x:2376"
    export DOCKER_CERT_PATH="/Users/<yourusername>/.docker/machine/machines/default"
    export DOCKER_MACHINE_NAME="default"
    

    这告诉 Docker 如何与您的 VM 通信。

  3. 旋转容器备份