docker在dockerfile和docker-compose.yml中使用通用配置

穆罕默德(MohamedAmin Samet)

我正在使用许多Docker容器。我想为其中一个分配一个静态IP,并在另一个中使用该静态IP dockerfile
我想使用某种类型的配置文件类似.env的文件,并在两者的使用dockerfiledocker-compose.yml

大卫·迷兹

您可能不想做任何一件事情。

如果您在相同的Docker Compose设置中运行两个容器,则Compose将为您创建一个私有Docker网络,一个容器可以使用其容器名称(或中的块名称docker-compose.yml)作为主机名来访问另一个容器那应该消除对静态IP地址的需要。

其次,像这样对主机名或IP地址进行硬编码会使重用设置变得更加困难。作为一个非常基本的示例,在Docker之外的开发中,您可以在同一主机上运行客户端和服务器,并localhost用作主机名,但是在Docker Compose设置中,它们将位于不同的容器中并使用不同的主机名。这也意味着您永远无法docker push将映像保存到注册表,这是某些常见部署方案所必需的。环境变量是从外部传递此变量的常用方法。

docker-compose.yml完成此操作的A可能类似于:

version: '3'
services:
  server:
    build:
      context: ./server
  client:
    build:
      context: ./client
    env:
      SERVER_URL: 'http://server/'

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Docker:Dockerfile与docker-compose.yml

Docker:除了 docker-compose.yml 之外,如何使用 Dockerfile

在Dockerfile和docker-compose.yml中编码的内容以在Docker环境中传递本地包

如何从Docker,Dockerfile和Docker Compose开始?

使用Docker compose传递Dockerfile的参数

在docker-compose.yml或dockerfile中创建Docker网络

如果docker-compose.yml和Dockerfile都指定具有优先级的env vars?

`Dockerfile` 和 `docker-compose.yml` 之间的冲突/多个启动命令

如何在Dockerfile中使用docker-compose.yml中的环境变量?

如何在docker-compose.yml中使用多行命令标志配置MySQL实例

使用父目录和dockerfile进行构建时docker-compose生成错误

使用 docker-compose 和 dockerfile 創建 javaproject 時如何更改堆大小?

健康检查:Dockerfile与docker-compose.yml

从docker-compose.yml文件将变量传递给Dockerfile

从dockerfile访问docker-compose.yml中设置的卷

如何将docker-compose.yml转换为Dockerfile

dockerfile 中的 CMD 与 docker-compose.yml 中的命令

使用Docker服务和Docker Compose进行强大的配置旋转

如何使用多个docker-compose.yml文件配置nginx?

错误:services.web的撰写文件'./docker-compose.yml'不支持的配置选项:'dockerfile'

Docker-compose.yml配置问题

从 docker-compose.yml 配置 portainer(-ce)

使用 Dockerfile 复制代码或使用 docker-compose 安装卷

docker-compose.yml中的“command”參數和Dockerfile中的CMD參數有什麼區別?

docker-compose:对多个服务使用多个Dockerfile

docker-compose build 根据使用次数构建每个 Dockerfile

使用 docker-compose 或 dockerfile 挂载目录(无需复制)

容器在使用Dockerfile时起作用,但在使用docker-compose.yml时不起作用

如果我使用的是docker-compose.yml,为什么我仍然需要一个Dockerfile?