如何通过SSH访问docker容器?

如何通过SSH访问docker容器?,docker,ssh,Docker,Ssh,我目前正在考虑为我的ipython并行节点构建docker映像。因为用命令手动配置每一个都很痛苦。只需键入ssh,我就能访问此映像(位于局域网上的另一台PC上)吗user@ip在我的笔记本电脑上(主节点)?如何获取在节点上运行的docker映像的ip 只需键入ssh,我就能访问此映像(位于局域网上的另一台PC上)吗user@ip在我的笔记本电脑上(主节点) 除非您安排在容器内运行sshd,否则无法将ssh连接到容器中。通常这是没有必要的;如前所述,您可以简单地使用docker exec访问正在运

我目前正在考虑为我的ipython并行节点构建docker映像。因为用命令手动配置每一个都很痛苦。只需键入ssh,我就能访问此映像(位于局域网上的另一台PC上)吗user@ip在我的笔记本电脑上(主节点)?如何获取在节点上运行的docker映像的ip

只需键入ssh,我就能访问此映像(位于局域网上的另一台PC上)吗user@ip在我的笔记本电脑上(主节点)

除非您安排在容器内运行
sshd
,否则无法将ssh连接到容器中。通常这是没有必要的;如前所述,您可以简单地使用
docker exec
访问正在运行的容器

如何获取在节点上运行的docker映像的ip

首先,关于命名法的说明:图像只是文件的集合。容器是从映像启动服务时得到的。换句话说,询问有关访问或获取图像ip地址的问题是没有意义的

您可以使用
docker container inspect
命令获取容器的ip地址,该命令将显示有关容器的各种信息。但是,这可能不是您想要的:容器的ip地址将是docker内部网络上的专用ip地址,只能从运行docker的主机访问

您可以通过使用端口转发(将
-p
标志设置为
docker run
)提供对服务的远程访问。例如,如果您在容器内的端口8080上运行Web服务器,您可以在主机上的端口80上执行以下操作:

docker run -p 80:8080 mywebserver
更详细地描述与端口转发相关的一些选项

只需键入ssh,我就能访问此映像(位于局域网上的另一台PC上)吗user@ip在我的笔记本电脑上(主节点)

除非您安排在容器内运行
sshd
,否则无法将ssh连接到容器中。通常这是没有必要的;如前所述,您可以简单地使用
docker exec
访问正在运行的容器

如何获取在节点上运行的docker映像的ip

首先,关于命名法的说明:图像只是文件的集合。容器是从映像启动服务时得到的。换句话说,询问有关访问或获取图像ip地址的问题是没有意义的

您可以使用
docker container inspect
命令获取容器的ip地址,该命令将显示有关容器的各种信息。但是,这可能不是您想要的:容器的ip地址将是docker内部网络上的专用ip地址,只能从运行docker的主机访问

您可以通过使用端口转发(将
-p
标志设置为
docker run
)提供对服务的远程访问。例如,如果您在容器内的端口8080上运行Web服务器,您可以在主机上的端口80上执行以下操作:

docker run -p 80:8080 mywebserver

更详细地描述了与端口转发相关的一些选项。

这部分是的重复,但实际上您在这里提出的问题至少有两个,可能有三个不同。请将“docker容器”一词替换为“独立应用程序”,以了解为什么这个问题与实际情况不符。可以在容器名称空间中运行sshd服务器,但如果你的应用程序不是sshd服务器,这可能是个坏主意。这在一定程度上是重复的,但实际上你要求的至少是两个,可能是三个不同的东西。将“docker容器”替换为“独立应用程序”去理解为什么这个问题是不符合实际的。可以在容器名称空间中运行sshd服务器,但如果您的应用程序不是sshd服务器,这可能是个坏主意。