mac安装好docker后,按照官方文档操作docker-machine创建本地vm
$ docker-machine create --driver virtualbox default
然后查看
$ docker-machine ls
NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS
default - virtualbox Running tcp://192.168.99.102:2376 v18.05.0-ce
添加环境中
$ docker-machine env default
export DOCKER_TLS_VERIFY="1"
export DOCKER_HOST="tcp://192.168.99.102:2376"
export DOCKER_CERT_PATH="/Users/xushuainan/.docker/machine/machines/default"
export DOCKER_MACHINE_NAME="default"
# Run this command to configure your shell:
# eval $(docker-machine env default)
连接到环境
eval "$(docker-machine env default)"
查看ip
$ docker-machine ip default
192.168.99.102
创建一个nginx
docker run -d -p 8000:80 nginx
查看nginx
$curl $(docker-machine ip default):8000
curl: (7) Failed to connect to 192.168.99.102 port 8000: Connection refused
这是为何???
之前也是,在docker中创建mysql也是,连接到容器内部,mysql可以用,但是从外部就不能通过vm中的ip访问。
求大神指点迷津。
自然,docker-machine这堆虚拟机器的ip是他们相互通信的ip,不信你可以进入其中一个虚拟机,然后看看能不能ping通另外一台机器的nginx服务。
然后你需要把这些个虚拟机弄成一个集群,我这边是弄的Swarm集群,然后即可跑service,然后就可以宿主机端口对应容器内部端口什么的了。