DOCKER_HOST
环境变量和docker ...
命令分别添加了对ssh
协议的支持。# Re-direct to remote environment.
export DOCKER_HOST="ssh://my-user@remote-host"
# Run a container. To prove that we are on remote-host, this will print its hostname.
docker run --rm --net host busybox hostname -f
# All docker commands here will be run on remote-host.
# Switch back to your local environment.
unset DOCKER_HOST
或者,如果您愿意,可以只用一个命令一次性完成所有操作:
docker -H "ssh://my-user@remote-host" run --rm --net host busybox hostname -f
请注意,这在当前最新版本为1.23.1的docker-compose
及以下版本中还不被支持。然而,它将成为下一个版本的一部分。
在目标机器上设置无密码SSH。可以参考此处。
运行以下命令以在目标虚拟机上远程管理Docker(如有必要,还将安装Docker):
docker-machine create --driver generic --generic-ip-address=10.123.2.74 --generic-ssh-user=docker --generic-ssh-key ~/.ssh/id_rsa some_name
有关通用驱动程序的更多信息,请点击此处。
eval $(docker-machine env some_name)
docker ps
现在,您可以像本地一样运行Docker容器。
PS - 如果您需要通过Docker Toolbox远程管理在Windows上运行的Docker实例,则情况会变得有点复杂。(需要解决访问docker Linux VM(ssh,docker引擎,容器端口)所需端口的网络访问,可以通过VirtualBox的桥接网络适配器或通过端口转发解决;还需要解决Windows防火墙问题)。
docker-machine
,并使用generic driver
添加remote_server
,然后使用eval $(docker-machine env remote_server)
连接到它并部署您的API。驱动程序将在创建时执行一系列任务:
remote_server
添加到docker-machine
中后,请按照以下步骤将本地容器部署到remote_server
:
获取服务器的环境变量:docker-machine env remote_server
连接到服务器的shell:eval $(docker-machine env remote_server)
构建API镜像:docker build -t api_image .
(Dockerfile DIR)
运行容器:docker run -d -p 1111:1111 api_image
使用curl
:curl $(docker-machine ip remote_server):1111
eval $(docker-machine env remote_server)
后,您可以使用通常用于构建和运行容器的 docker
或 docker-compose
命令。 - thoba