我在正在运行的 docker 容器上设置主机名时遇到问题。我也无法理解如何在映像启动后指定主机名。
我从我下载的图像启动了一个容器:
sudo docker run -p 8080:80 -p 2222:22 oskarhane/docker-wordpress-nginx-ss
Run Code Online (Sandbox Code Playgroud)
但是我忘了通过-h;指定主机名 既然容器正在运行,我该如何指定主机名?
小智 56
编辑/etc/hostname是您需要在容器内进行 ssh 访问的一件事。否则,您可以使用-h选项启动容器。
设置主机名和域名:
$ docker run -h foo.bar.baz -i -t ubuntu bash
root@foo:/# hostname
foo
root@foo:/# hostname -d
bar.baz
root@foo:/# hostname -f
foo.bar.baz
Run Code Online (Sandbox Code Playgroud)
小智 7
停止容器和服务
sudo docker stop CONTAINER_NAME
sudo service docker stop
Run Code Online (Sandbox Code Playgroud)
编辑配置文件 (JSON) [你应该先备份]
/var/lib/docker/containers/CONTAINER_ID/config.json
代替
“主机名”:“随便”
和
"主机名":"NEW_HOSTNAME"
启动容器和服务
sudo service docker start
sudo docker start CONTAINER_NAME
Run Code Online (Sandbox Code Playgroud)
(可选地,您也可以附加 docker)
sudo docker attach CONTAINER_NAME
Run Code Online (Sandbox Code Playgroud)
可以通过运行获得有关dockers的详细信息(即CONTAINER_NAME,CONTAINER_ID)
sudo docker ps -a
Run Code Online (Sandbox Code Playgroud)
小智 7
如果您使用,--net=host则无法-h在 docker 中更改主机名或从 docker 内部更改主机名。
见https://github.com/docker/docker/issues/5708