这是我的场景。
我有 2 个 Docker 容器:
从主机来看,显然我的处理没有问题。通常,当两个容器链接(或属于同一网络)时,它们通过暴露某个门的网络相互通信。在这种情况下,朱莉娅不会暴露任何门。
我可以从 C1 在 C2 上运行类似于主机和 C2 之间执行的命令吗?如果是这样,怎么办?
谢谢!
从技术上讲是可以的,但这可能不是您想要做的。
Docker CLI 只是 Docker 服务的一个接口,它监听主机上的 /var/run/docker.sock 。任何可以通过 CLI 完成的事情都可以通过直接与该服务器通信来完成。您可以将此套接字作为卷安装到正在运行的容器 (C1) 中,以允许该容器与其主机的 docker 服务进行通信。Docker 有一些需要设置的权限来允许这样做;旧版本允许容器在“特权”模式下运行,在这种情况下,它们可以(除其他外)以主机的权限与 /var/run/docker.sock 进行通信。我相信较新版本的 Docker 将此权限系统进一步拆分,但您必须对此进行研究。在群体模式下进行这项工作也可能会有所不同。在代码级别使用此 API 而不在容器内安装完整的 Docker CLI 当然是可能的(使用库或编写您自己的交互)。JupyterHub+DockerSpawner 是执行此操作的一个有效示例,它有一个特权 Hub 服务器,可为每个登录用户实例化新的 Notebook 容器。
我刚刚看到您明确指出 Julia 容器没有门/接口。您能否将该代码包装在一个更大的容器中,为其提供服务器接口,同时将无服务器 Julia 程序作为同一容器中的“本地”进程进行管理?
| 归档时间: |
|
| 查看次数: |
2210 次 |
| 最近记录: |