初入 Docker,感觉很不错,而且竟然支持 Windows。
这个....可能标题表述不太清楚,其实想问的是这样的。
我希望自己创建一个 Docker 镜像用于快速部署开发 /测试环境,但是其中需要依赖一些其他的基础环境, 例如数据库( MySQL、Rails 等)、网页服务器( Nginx、Apache 等), 这些我不希望打包在我的环境镜像里,而是由使用时注入进来。
我这里的环境镜像中需要预留埋点给注入进来的其他镜像, 例如 MySQL 的镜像注入进来,那么我现在配置我自己的镜像如何在其中获取到数据库的连接信息,用户名,密码之类的?
我自己写的 DockerFile (基础镜像尝试过 Debian:8 和 Ubuntu:16.04 均一样)中遇到一个很神奇的问题,就是
RUN source ../some_file
,
然后文件中存在一行命令builtin .......
,一直提示builtin
命令不存在,
但是我直接启动一个Debian:8
的镜像并注入进去,运行同样的命令没有这样的提示。这又是何解?
有比较系统的 docker 资料介绍么。
感谢各位。
1
l142857 2017-06-21 19:56:12 +08:00 1
1. 不推荐去读“系统”的资料,读一下官方的 quickstart 和基本介绍,知道 docker 能干什么,不能干什么,然后着眼于你的应用,用 Docker 去解决你的问题就可以了。
2. 你目前的用法应该是有问题的,Docker 推崇的是单容器-单进程-单应用,虽然现实中会有所妥协,但一般不会把整个应用及其依赖的服务打到一个镜像,用一个容器来跑。更常见的做法是 database 和 webserver 用独立的镜像,独立的容器来跑,然后用 docker-compose 或 kubernetes 之类的工具将一批容器组织成一个应用单元。 3. Dockerfile 的问题,直接把 Dockerfile 的内容贴出来会更方便讨论。 |