连接到远程docker计算机时是否运行本地容器?
我想在DigitalOcean水滴上部署一个本地构建的容器。我一直在遵循指示。问题在于,通过运行:连接到远程docker计算机时是否运行本地容器?,docker,Docker,我想在DigitalOcean水滴上部署一个本地构建的容器。我一直在遵循指示。问题在于,通过运行: eval $(docker-machine env DROPLET_NAME) Docker将环境变量设置为远程机器,有效地将环境更改为在远程机器上运行Docker。这是意料之中的。但是,假设我有一个名为rb612/docker img:latest的本地映像,我还没有将它推到远程。我想在远程机器上下文中运行它 如果我跑步: docker run -d -p 80:8000 rb612/dock
eval $(docker-machine env DROPLET_NAME)
Docker将环境变量设置为远程机器,有效地将环境更改为在远程机器上运行Docker。这是意料之中的。但是,假设我有一个名为rb612/docker img:latest
的本地映像,我还没有将它推到远程。我想在远程机器上下文中运行它
如果我跑步:
docker run -d -p 80:8000 rb612/docker-img:latest
然后我在本地找不到图像“rb612/docker img:latest”。如果我的理解是正确的,这是因为它不再在我的机器的上下文中运行。在不设置远程环境变量的情况下,打开新shell并运行相同的命令可以正常工作
所以我想知道是否有办法在我的远程机器上运行这个本地映像。我尝试使用-w
标志在本地路径中传递,但得到了相同的错误。使用远程docker映像进行部署效果良好
所以我想知道是否有办法在我的远程机器上运行这个本地映像
当然
你有两个选择
使用docker图像保存/加载
docker image save
将图像保存到文件中。在运行eval
语句之前执行此操作,或者在未配置远程Docker环境的其他终端窗口中执行此操作:
docker image save rb612/docker-img:latest > docker-img.tar
eval$(…)
命令后,使用docker image load
将图像发送到远程docker:
docker image load < docker-img.tar
docker图像加载
您可以设置自己的远程注册表,在这种情况下,您只需从本地机器
docker push
到该注册表,然后从远程机器docker pull
。这通常是最好的长期解决方案,但初始设置(特别是使用SSL正确地保护事物)要稍微复杂一些。详细信息见。这太棒了!非常感谢。工作起来很有魅力。出于好奇,我也尝试这样做:通过使用docker machine scp
将.tar
图像复制到远程路径/home/test.tar
,但我无法通过执行docker load-I我的机器名称:/home/test.tar加载。它也无法通过执行dockerload-i/home/test.tar
找到它。我做错什么了吗?我似乎无法在远程计算机中指定路径。