简体   繁体   English

docker-compose 为服务添加主机名

[英]docker-compose add a hostname to a service

I have a backuppc local service running eg 127.0.0.1:8081.我有一个正在运行的 backuppc 本地服务,例如 127.0.0.1:8081。 I can also reach it directly on http://172.23.0.4 (container ip)我也可以直接在http://172.23.0.4 (容器ip)上到达

docker-compose.yml docker-compose.yml

version: '3.7'
services:
  backuppc-app:
    image: tiredofit/backuppc
    container_name: backuppc-app
    ports:
      - "8081:80"
      - "8082:10050"
    environment:
      - BACKUPPC_UUID=1000
      - BACKUPPC_GUID=1000
    restart: always
    depends_on:
      - backuppc-mysql
    networks:
      - nginx-proxy

I want to assign it a hostname, something like我想给它分配一个主机名,比如

    hostname: backup.local

I tried to add it but doesn't work as expected我尝试添加它,但没有按预期工作

      backuppc-app:
        image: tiredofit/backuppc
        container_name: backuppc-app
        hostname: backup.local

Should I manually edit my local /ets/hosts?我应该手动编辑我的本地 /ets/hosts 吗?

    172.23.0.4    backup.local

You can add a hostname as a network alias:您可以添加主机名作为网络别名:

version: '3.7'
services:
  backuppc-app:
    networks:
      nginx-proxy:
        aliases:
        - backup.local

For containers in nginx-proxy network it will be available both as backuppc-app and as backup.local .对于nginx-proxy网络中的容器,它可以作为backuppc-appbackup.local

If you want that hostname to be visible to your host you need to modify hosts file.如果您希望该主机名对您的主机可见,您需要修改主机文件。 But don't put container IP there - it can change.但不要将容器 IP 放在那里 - 它可以改变。 Rather add it as another name for localhost:而是将其添加为 localhost 的另一个名称:

127.0.0.1 localhost myhostname backup.local

Then you can access it both with localhost:8081 and backup.local:8081 (that works due to port forwarding you've declared with ports: key).然后,您可以使用localhost:8081backup.local:8081访问它(由于您使用ports: key 声明了端口转发,所以可以访问它)。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM