首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在图像创建之后更改码头主机名?

如何在图像创建之后更改码头主机名?
EN

Server Fault用户
提问于 2015-08-25 18:21:51
回答 3查看 45.5K关注 0票数 11

我在学码头1.8。在创建容器之后,我希望更改它们的主机名。我试图在容器中编辑/etc/host,每次我attach时都会被覆盖,然后start图像。我试图编辑以下文件,主机名被覆盖。

代码语言:javascript
复制
[root@localhost ~]# docker inspect high_blackwell | grep hostname
"HostnamePath": "/var/lib/docker/containers/15b84f7012383b1af2d4c8c6443506cdff3b19cb1d87d3dfdcb10df126c4eec3/hostname",

根@localhost~#

这些答案对我都没有用。

你如何命名一个码头集装箱?

EN

回答 3

Server Fault用户

回答已采纳

发布于 2015-08-27 09:16:57

我不确定您的意思是要设置新容器的主机名还是正在运行的容器的主机名。您说要在创建容器之后进行操作,但也可以说是“启动映像”。如果您还没有对映像进行start编辑,那么您还没有创建容器--当您启动映像时,容器就是您得到的。

您正在创建一个新的容器

您可以在命令行上设置主机名:

代码语言:javascript
复制
docker run --rm -h "example.com" -t -i ubuntu bash
# ...
root@example:/# hostname
example.com

您的容器已经在运行

这更困难。您可能希望关注这个码头问题,但在解决问题之前,您只能编辑/etc/hosts了。hostname命令不能工作。

票数 17
EN

Server Fault用户

发布于 2016-08-19 20:40:22

要更改正在运行的容器的主机名,可以使用"nsenter“命令。不过,你必须是主机的根。

我们可以使用"lsns“命令列出主机上的名称空间:

代码语言:javascript
复制
# lsns
        NS TYPE  NPROCS   PID USER COMMAND
4026531836 pid       73     1 root init      
4026531837 user     101     1 root init      
4026531838 uts       73     1 root init      
4026531839 ipc       73     1 root init      
4026531840 mnt       72     1 root init      
4026531857 mnt        1    14 root kdevtmpfs
4026531957 net       73     1 root init      
4026532300 mnt       28  1785 root /usr/bin/python /usr/local/bin/supervisord -c
4026532301 uts       28  1785 root /usr/bin/python /usr/local/bin/supervisord -c
4026532302 ipc       28  1785 root /usr/bin/python /usr/local/bin/supervisord -c
4026532303 pid       28  1785 root /usr/bin/python /usr/local/bin/supervisord -c
4026532305 net       28  1785 root /usr/bin/python /usr/local/bin/supervisord -c

有pid 1785的是我的码头集装箱。处理主机名的命名空间类型是"uts",因此让我们在该名称空间中运行主机名:

代码语言:javascript
复制
# nsenter --target 1785 --uts hostname foo

现在容器中的“主机名”应该会产生"foo"!

票数 11
EN

Server Fault用户

发布于 2020-09-30 09:53:18

1.停止货柜及服务

代码语言:javascript
复制
sudo docker stop CONTAINER_NAME
sudo service docker stop

2.编辑配置文件(JSON) 你应该总是先做备份

代码语言:javascript
复制
    /var/lib/docker/containers/CONTAINER_ID/config.json

Replace

    "Hostname":"WHATEVER"

with

    "Hostname":"NEW_HOSTNAME"

3.启动集装箱和服务

代码语言:javascript
复制
sudo service docker start
sudo docker start CONTAINER_NAME
票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/716719

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档