我是为开发人员提供 docker 图像的基础设施管理员。
我创建了“A”图像,然后告诉 docker run 命令是
docker run --add-host=a-lic:10.0.0.1 --add-host=b-lic:10.0.0.2 A
Run Code Online (Sandbox Code Playgroud)
每个开发人员向我提出的要求,请删除 --add-host 选项,因为它很长。所以如果可能的话,我想在 docker build 时编辑 /etc/hosts 文件。
我发现了docker build --add-host从 17.04 新创建的选项,但它没有按我的预期工作。
有人说 --add-host 选项仅用于构建映像期间,而另一个说 --add-host 选项将如下工作(我的想法)。
docker build --add-host=a-lic:10.0.0.1 -t A .
docker run -it A
Run Code Online (Sandbox Code Playgroud)
而 docker 的文档对此是不够的。
$ docker build --help
Usage: docker build [OPTIONS] PATH | URL | -
Build an image from a Dockerfile
Options:
--add-host list Add a custom host-to-IP mapping (host:ip)
Run Code Online (Sandbox Code Playgroud)
什么是正确的??
这是设计使然(参见https://github.com/moby/moby/issues/34078#issuecomment-314798584 / https://github.com/moby/moby/pull/30383#issuecomment-314797629);--add-host构建期间的功能旨在允许在构建期间覆盖主机,但不会将该配置保留在映像中。
如果它会持续存在于图像中;
google.com 123.123.123.123怎么办?)运行图像的人应该保持对覆盖主机的控制权,而不是图像作者;这是一个运行时配置。
针对您的情况可能的解决方案;
docker-compose.yml您的开发人员提供一个。docker compose 文件允许您指定启动容器时应使用的所有选项,因此开发人员可以docker compose up使用他们需要设置的所有选项启动容器。| 归档时间: |
|
| 查看次数: |
3499 次 |
| 最近记录: |