gpt4 book ai didi

Docker 运行 - 如何在容器之间共享 UTS 命名空间?

转载 作者:行者123 更新时间:2023-12-02 19:14:19 28 4
gpt4 key购买 nike

默认情况下,Docker 运行命令为容器使用专用的 UTS 命名空间,因此容器拥有自己的/唯一的主机名。我正在尝试在两个容器之间共享 UTS 命名空间,但似乎使用 docker run 命令是不可能的。
以下是我运行的命令 -

docker run -d --name container1 alpine sleep infinity
docker run -it --name container2 --uts container:container1 alpine /bin/sh
错误 -
docker: --uts: invalid UTS mode.
基于 documentation ,看起来无法使用 --uts 标志引用容器。其他与命名空间相关的标志(如 --pid、--network 等)并非如此。它们支持引用其他容器。为什么 --utc 标志不支持“container: ”模式?如何在容器之间共享 UTS 命名空间以便它们共享主机名?

最佳答案

我不知道如何在容器之间共享 UTS 命名空间。但是,如果您的最终目标只是分享 hostname在容器之间,如果您不关心网络共享,下一步应该可以工作:

shubuntu1@shubuntu1:~$ docker run -idt --name container1 ubuntu:18.04 /bin/bash
3b024de861049c63852e5b196b8730c23ccba8454eb894aa1159c046dd35043e
shubuntu1@shubuntu1:~$ docker run -idt --name container2 --net container:container1 ubuntu:18.04 /bin/bash
ee3d696a589bb7aa3000cec7587f4b920088edf829f8cda029b019316451e92f
shubuntu1@shubuntu1:~$ docker exec -it container1 hostname
3b024de86104
shubuntu1@shubuntu1:~$ docker exec -it container2 hostname
3b024de86104
它让 container2使用 container1的同一个网络, 指 this .仅供引用,以防万一。
另一种方式可能只是暴露 /etc/hostnamebind mountsvolume ,并让你需要的所有容器都使用同一个容器,那么你就不需要共享网络了。

关于Docker 运行 - 如何在容器之间共享 UTS 命名空间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64347307/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com