自定义 Docker 镜像依赖其他镜像,如何预留埋点?

2017-06-20 11:17:14 +08:00
 gam2046

初入 Docker,感觉很不错,而且竟然支持 Windows。

这个....可能标题表述不太清楚,其实想问的是这样的。

问题

我希望自己创建一个 Docker 镜像用于快速部署开发 /测试环境,但是其中需要依赖一些其他的基础环境, 例如数据库( MySQL、Rails 等)、网页服务器( Nginx、Apache 等), 这些我不希望打包在我的环境镜像里,而是由使用时注入进来。

那么问题来了

我这里的环境镜像中需要预留埋点给注入进来的其他镜像, 例如 MySQL 的镜像注入进来,那么我现在配置我自己的镜像如何在其中获取到数据库的连接信息,用户名,密码之类的?

额外的问题

我自己写的 DockerFile (基础镜像尝试过 Debian:8 和 Ubuntu:16.04 均一样)中遇到一个很神奇的问题,就是 RUN source ../some_file, 然后文件中存在一行命令builtin .......,一直提示builtin命令不存在, 但是我直接启动一个Debian:8的镜像并注入进去,运行同样的命令没有这样的提示。这又是何解?

最后的最后

有比较系统的 docker 资料介绍么。

感谢各位。

2818 次点击
所在节点    Docker
1 条回复
l142857
2017-06-21 19:56:12 +08:00
1. 不推荐去读“系统”的资料,读一下官方的 quickstart 和基本介绍,知道 docker 能干什么,不能干什么,然后着眼于你的应用,用 Docker 去解决你的问题就可以了。
2. 你目前的用法应该是有问题的,Docker 推崇的是单容器-单进程-单应用,虽然现实中会有所妥协,但一般不会把整个应用及其依赖的服务打到一个镜像,用一个容器来跑。更常见的做法是 database 和 webserver 用独立的镜像,独立的容器来跑,然后用 docker-compose 或 kubernetes 之类的工具将一批容器组织成一个应用单元。
3. Dockerfile 的问题,直接把 Dockerfile 的内容贴出来会更方便讨论。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/369753

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX