如何在远程机器上创建一个Docker容器

5
使用Python的Docker SDK,是否可以在远程机器上启动容器?
import docker
client = docker.from_env()

client.containers.run("bfirsh/reticulate-splines", detach=True)
# I'd like to run this container ^^^ in a machine that I have ssh access to.

查阅文档后发现,该SDK似乎不支持此类管理,因此我在网上搜寻时得到提示,Python Kubernetes客户端可能会有所帮助,但我不知道从何处开始。


你有 k8s 集群还是只有 Docker 集群? - RadekW
@RadekW 我只有一个 Docker 集群,但如果对于这种情况使用 k8s 很简单,我会选择使用它。 - Lorah Attkins
3个回答

8

Docker SDK for Python没有明确的文档说明,但是你可以使用SSH连接到Docker守护进程,通过指定主机和ssh://[user]@[host]格式,例如:

import docker

# Create a client connecting to Docker daemon via SSH
client = docker.DockerClient(base_url="ssh://username@your_host")

您还可以设置环境变量DOCKER_HOST=ssh://username@your_host,并使用您提供的示例来使用当前环境创建客户端,例如:

import docker
import os

os.environ["DOCKER_HOST"] = "ssh://username@your_host"
# Or use `export DOCKER_HOST=ssh://username@your_host` before running Python

client = docker.from_env()

注意:根据问题中的规定,这视为您可以访问目标主机的SSH。您可以使用以下方式进行测试。
ssh username@your_host

在这里奖励你的红利,因为你在解释上做得更多。我接受了其他答案,因为他们先发布并且基本上是相同的解决方案。 - Lorah Attkins

3

@LorahAttkins 我没有给这个问题投反对票... - Zheng Bowen

0
如果您有一个k8s集群,您不需要Python sdk。您只需要命令行工具kubectl
一旦安装完成,您可以创建一个deployment来部署您的镜像。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接