Docker容器与其主机之间的进程间通信

用户名

我正在使用gtilab和docker建立一个持续集成系统。由于某种原因,我必须在CI系统的一个阶段中将当前容器作为新的docker映像提交,因此我可以在后续阶段中重用该映像。

总而言之,我必须执行以下命令:

docker commit $CONTAINER_ID $NEW_IMAGE_NAME

但是从容器内部。然后从另一个容器中:

docker rmi $NEW_IMAGE_NAME

一种解决方案可能是设置ssh公钥身份验证,并且:

ssh [email protected] docker ...

其中172.17.0.1是主机IP地址。为了安全起见,我可以限制ssh用户仅访问特定命令。

另一种解决方案是在主机的网络套接字上创建公共服务。但是,这里最好的方法是什么?我更喜欢一种安全的解决方案,因此从容器内部您只能提交docker映像并删除创建的映像(不能删除其他映像)。因此,狂野的SSH并不是那么安全。而且,我更喜欢一种不依赖主机IP地址的可移植解决方案。你有什么建议?

奥齐亚斯

问题/问题

如何从容器中执行一些Docker API调用?

你知道吗

您是否知道可以通过添加选项在网络套接字上提供Docker API -H tcp://0.0.0.0:2375因此,您可以从容器内部直接执行对Docker守护程序的调用。

请注意,您也可以(并且应该)为此套接字cf启用TLS man docker daemon

安全是必须的

如果此选项看起来不够干净或不够安全,则将需要本地联网*服务。我建议在其中使用Web APIjavapythonAPI来响应两个不同的调用,它们可能是:

  1. 提交http[s]://localhost:service-port/commit?containder_id=123456789&image_name=my_name
  2. rmihttp[s]://localhost:service-port/rmi?containder_id=123456789

我在您的评论中看不懂您指的是哪个用户

然后HTTP 201 CreatedHTTP 406 Not Acceptable如果创建了映像或名称已经存在则本地服务将回答a 它还可以检查rmi原始数据中是否执行了不超过一个HTTP 204 Not Content如果不存在具有该IDHTTP 403 Forbidden的图像该图像无法删除或HTTP 200 OK一切正常它可能会回答在万不得已的情况下,它可以回答HTTP 418 I'm a teapot


*:本地网络是一种快速的,主要是安全的,易于部署的方法,可与Docker一起使用。man mkfifo也可以使用FIFO(请参阅参考资料),但需要另一个共享卷(用于FIFO文件),并且可能需要更多代码。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Docker与主机系统之间的进程间通信

来自分类Dev

DBus与其他进程间通信方法之间的区别

来自分类Dev

docker stack 容器间通信

来自分类常见问题

如何通过“主机名”在Docker容器之间进行通信

来自分类Dev

无法在本地主机上的Docker容器之间进行通信

来自分类Dev

链接的Docker容器之间的通信

来自分类Dev

Linux进程间通信

来自分类Dev

Python和Scala程序之间的进程间通信

来自分类Dev

同一局域网中不同主机上的Docker容器之间的通信

来自分类Dev

进程间通信和广播

来自分类Dev

Delphi-较低级和较高级进程之间的进程间通信

来自分类Dev

docker-compose主机名以在容器之间通信与postgres一起使用,但不适用于app

来自分类Dev

Docker容器间通讯

来自分类Dev

设置Docker容器以通过d-bus与主机进行通信

来自分类Dev

浏览器扩展和本机应用程序之间的进程间通信

来自分类Dev

独立的Python3脚本之间的进程间通信

来自分类Dev

使用mkfifo在linux和dotnet之间进行进程间通信

来自分类Dev

Linux中C和PHP之间的一种良好的进程间通信方法是什么

来自分类Dev

如何创建进程间容器的Boost进程间向量?

来自分类Dev

Akka-Java进程间通信

来自分类Dev

进程间通信似乎已停止

来自分类Dev

TCP进程间通信能否成为漏洞?

来自分类Dev

正确实现进程间通信(IPC)

来自分类Dev

WCF双工通道,用于进程间通信

来自分类Dev

python中SPSC队列的进程间通信

来自分类Dev

进程间通信与c中的数据发送

来自分类Dev

了解为什么需要公开端口以在 docker0 上进行容器间通信

来自分类Dev

文件与容器之间的通信

来自分类Dev

iptables规则中断了Docker容器之间的通信

Related 相关文章

热门标签

归档