使用 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
postgres
和 elasticseach
容器也是如此。
为什么我的 docker 容器没有应用 default docker-machine ip
?
听起来你没有告诉 Docker 与你的 VM 对话,而且你的容器 运行 在你的主机上。
要解决:
放下你的容器
运行 $ 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 通信。
旋转容器备份
我是运行下一个命令:
$ 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
postgres
和 elasticseach
容器也是如此。
为什么我的 docker 容器没有应用 default docker-machine ip
?
听起来你没有告诉 Docker 与你的 VM 对话,而且你的容器 运行 在你的主机上。
要解决:
放下你的容器
运行
$ 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 通信。
旋转容器备份