Alpine Linux docker设置主机名

问题描述 投票:1回答:3

我正在使用lwieske / java-8:server-jre-8u121-slim with Alpine Linux

我想从文本文件中设置主机名以便全局查看(对于所有shell)

/ # env
HOSTNAME=2fa4a43a975c

/ # cat /etc/afile
something

/ # hostname -F /etc/afile
hostname: sethostname: Operation not permitted

一切都在swarm中作为服务运行

我希望每个节点都有基于容器ID的唯一主机名。

linux docker hostname alpine swarm
3个回答
2
投票

您也可以为docker run提供--hostname标志:

docker run -d --net mynet --ip 162.18.1.1 --hostname mynodename

0
投票

docker service create有一个--hostname参数,允许您指定主机名。从更个人的角度来说,如果您将连接到您的某个服务,那么同一网络上的任何其他服务都将是可ping的,并且可以使用服务名称进行访问,还有一个额外的好处,即允许您使用多个副本,而不必担心这些将会是什么被命名。


0
投票

至于变通方法,可以使用docker-compose为多个容器分配主机名。

以下是docker-compose.yml的示例:

version: '3'
services:
  ubuntu01:
    image: ubuntu
    hostname: ubuntu01
  ubuntu02:
    image: ubuntu
    hostname: ubuntu02
  ubuntu03:
    image: ubuntu
    hostname: ubuntu03
  ubuntu04:
    image: ubuntu
    hostname: ubuntu04

要使其动态化,您可以从脚本生成docker-compose.yml

然后运行:docker-compose up

© www.soinside.com 2019 - 2024. All rights reserved.