当前位置: 首页 > 知识库问答 >
问题:

使用--通过docker compose添加主机或额外的_主机

吴均
2023-03-14

我正在使用docker compose运行一个测试环境,该环境由大约5个不同的容器组成。容器间的链接和共享卷(来自的卷)工作得非常好。我还向主机暴露了一些端口,这很好地工作。

我缺少的是一种将我的一些真实服务器链接到这个环境中的方法,而不需要硬编码ip地址。使用docker run,您可以使用--add-host在您的/etc/host文件中添加另一行。是否有任何方法可以使用docker-comush做类似的事情?

共有3个答案

施永宁
2023-03-14

基本的docker-compose.yml与额外的主机:

version: '3'
services:
api:
    build: .
    ports:
        - "5003:5003"
    extra_hosts:
        - "your-host.name.com:162.242.195.82" #host and ip
        - "your-host--1.name.com your-host--2.name.com:50.31.209.229" #multiple hostnames with same ip
        

/etc/hosts文件中的内容位于创建的容器中:

162.242.195.82  your-host.name.com
50.31.209.229   your-host--1.name.com your-host--2.name.com

您可以使用以下命令检查/etc/host文件:

$ docker-compose -f path/to/file/docker-compose.yml run api bash  # 'api' is service name
#then inside container bash
root@f7c436910676:/app# cat /etc/hosts
丘学海
2023-03-14

https://github.com/compose-spec/compose-spec/blob/master/spec.md#extra_hosts

额外的主机-添加主机名映射。使用与docker客户端相同的值--添加主机参数。

extra_hosts:
 - "somehost:162.242.195.82"
 - "otherhost:50.31.209.229"

将在/etc/hosts中创建一个带有ip地址和主机名的条目

162.242.195.82  somehost
50.31.209.229   otherhost
叶鹭洋
2023-03-14

我有个好消息:这将出现在Compose 1.3中!

我在当前的RC(RC1)中使用它,如下所示:

rng:
  build: rng
  extra_hosts:
    seed: 1.2.3.4
    tree: 4.3.2.1
 类似资料:
  • 我一直试图使用Ansible Playbook将主机名添加到我的主机文件中。我的Ansible播放如下所示,我的主机文件位于: Playbook成功执行,但新主机名没有添加到Ansible hosts文件中。有人能帮我吗?

  • 如果您还没有一台装有 Linux 的主机,我们邀请您体验「免费胶囊主机」。 要启动一台胶囊主机请参考下面的步骤: 在控制台点击「我的集群」 选择一个目标集群,或者创建一个新的集群 点击添加主机 在接入自有主机界面,将鼠标移到「先试试胶囊主机」,点击「试用」 「胶囊主机」自带 Docker 运行环境,并自动接入 DaoCloud 容器管理平台。每个「胶囊主机」可以免费体验 120 分钟,到期后会自动

  • 如果您有一台或多台 Linux 主机(不论是裸机还是虚机),我们推荐您采取手动安装的方式,将自有主机添加的集群。 安装前准备 安装前请确保: 已连接至互联网(但不需要公网 IP)。 建议使用官方支持的操作系统。 目前由 DaoCloud 官方支持的操作系统: Ubuntu 兼容版本:12.04、14.04、15.04* CentOS 兼容版本:6、7 Debian 兼容版本:7* Fedora 兼

  • 为了方便用户部署,我们在国内的多家云主机厂商的应用市场中发布预置 DaoCloud 主机管理模块的虚拟机镜像。 要使用应用市场中的镜像模板,请参考下面的流程。 腾讯云 要在腾讯云使用应用市场模板请参考下面的步骤: 选择目标集群,点击「添加主机」 点击「去买一台主机」,在列出的公有云清单中,选择您希望使用的,然后点击链接 访问腾讯云-服务市场并点击「立即使用」。在创建主机的界面也要记得选择系统类型为

  • 我正在尝试为flutter-Swift/Kotlin创建一个本地包,我在一个XCode项目中构建了UIViewController,并将代码移动到flutter-ios插件,因此我添加了MediaPickerController。swift文件(如下面的屏幕截图所示)。 在我的SwiftMediaFilePickerPlugin.swift中,我试图呈现MediaPickerController,

  • Ansible版本:1.9.2 IP是正确的,组名是正确的,但当我检查ansible主机文件时,它没有被修改。我确保在主机文件中包含[group_name]。在运行过程中没有错误,也不确定为什么没有将其添加到文件中。 这个页面上有一个'add_host'的例子:http://docs.ansible.com/ec2_module.html而不是name和groups,而是使用hostname、gr