【问题标题】:desc = name must be valid as a dns name componentdesc = name 必须作为 dns 名称组件有效
【发布时间】:2018-01-27 16:41:42
【问题描述】:

我正在尝试将 minio 部署到我的 docker 集群,并且我的 docker-compose 脚本基于 minio.io 上自动生成的脚本

问题是,当尝试将其部署到我的集群时,我收到了错误desc = name must be valid as a dns name component,在搜索网络后,它似乎主要与包含. 的容器名称有关。但是我的没有,所以我想知道是什么导致了这个错误,因为我没有看到任何不是有效的 dns URL(我很可能是错的)

docker compose 文件:

version: '3'

services:
 minio1:
  image: minio/minio
  volumes:
   - minio-data1:/export
  ports:
   - "9001:9000"
  networks:
   - minio_distributed
  environment:
   MINIO_ACCESS_KEY: <ACCESS>
   MINIO_SECRET_KEY: <SECRET>
  deploy:
   restart_policy:
    delay: 10s
    max_attempts: 10
    window: 60s
  command: server http://minio1/export http://minio2/export http://minio3/export http://minio4/export 

 minio2:
  image: minio/minio
  volumes:
   - minio-data2:/export
  ports:
   - "9002:9000"
  networks:
   - minio_distributed
  environment:
   MINIO_ACCESS_KEY: <ACCESS>
   MINIO_SECRET_KEY: <SECRET>
  deploy:
   restart_policy:
    delay: 10s
    max_attempts: 10
    window: 60s
  command: server http://minio1/export http://minio2/export http://minio3/export http://minio4/export 

 minio3:
  image: minio/minio
  volumes:
   - minio-data3:/export
  ports:
   - "9003:9000"
  networks:
   - minio_distributed
  environment:
   MINIO_ACCESS_KEY: <ACCESS>
   MINIO_SECRET_KEY: <SECRET>
  deploy:
   restart_policy:
    delay: 10s
    max_attempts: 10
    window: 60s
  command: server http://minio1/export http://minio2/export http://minio3/export http://minio4/export 

 minio4:
  image: minio/minio
  volumes:
   - minio-data4:/export
  ports:
   - "9004:9000"
  networks:
   - minio_distributed
  environment:
   MINIO_ACCESS_KEY: <ACCESS>
   MINIO_SECRET_KEY: <SECRET>
  deploy:
   restart_policy:
    delay: 10s
    max_attempts: 10
    window: 60s
  command: server http://minio1/export http://minio2/export http://minio3/export http://minio4/export 

volumes:
  minio-data1:
  minio-data2:
  minio-data3:
  minio-data4:

networks:
 minio_distributed:
  driver: overlay

所以显然有些东西我没有正确理解

【问题讨论】:

  • 你能提供你用来部署的逗号吗?
  • 我正在使用 portainer 中的 GUI 部署它...您认为这可能是问题所在?
  • 尝试从命令行部署它docker stack deploy -c docker-compose.yml
  • 嗯,它在搬运工中不起作用似乎很奇怪。但是 cli 运行良好,谢谢!

标签: docker dns docker-compose docker-swarm


【解决方案1】:

在 portainer 中创建堆栈时,堆栈名称用于创建网络名称 (&lt;stack_name&gt;_&lt;network_name&gt;)。 因此,如果它包含未经授权的字符(如. 或空格),则网络名称将被拒绝。 不带任何特殊字符来命名您的堆栈,然后您可以部署它。

【讨论】:

  • 另外,我今天发现它不能以下划线 (_) 结尾。希望能节省别人的时间?
  • 太棒了。我的容器名称中有一个点,因此它失败了。有趣的是,如果我将它作为普通容器运行,它会使用名称。如果我将它作为 swarm 的一部分运行,它会失败。
  • @akki 实际上:结束或开始 :( .. 使用 -_。但它们在字符串中间是可以的。
【解决方案2】:

如果您在 Visual Studio 中工作,则 docker-compose.yml 服务将等于 docker-compose.override.yml... 在我的情况下,我在 docker-compose.yml 中重命名服务名称,但不在docker-compose.override.yml.

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-05
    • 1970-01-01
    • 1970-01-01
    • 2021-03-19
    • 2015-11-07
    相关资源
    最近更新 更多