我是docker的新手,刚开始探索它。我想要实现的是发布一个Docker镜像,它只有一些配置文件。这些文件将在多个项目中共享。
因此,我要发布的图片是' my-config-image'。
目录结构如下:
/my-config-settings
/folder1/multiple files
/folder2/multiple files
file1.txt
file2.txt
在网上阅读并通过docker快速入门后,我有了一些了解。
我决定使用scratch
创建一个简单的基本图像。
从(https://docs.docker.com/engine/userguide/eng-image/baseimages/)
这就是我的Dockerfile的外观。
FROM scratch
ADD folder1 / folder2 /
这是我用来发布图像的命令。
/my-config-settings/docker build -t my-config-image .
Sending build context to Docker daemon 5.12 kB
Step 1 : FROM scratch
--->
Step 2 : ADD folder1 / folder2 /
---> Using cache
---> cc9c3f338f51
Successfully built cc9c3f338f51
当我想检查图像是否在本地创建时,我通过执行
以这种方式确认它docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
my-config-image latest cc9c3f338f51 2 minutes ago 39 B
我的主要查询是如何检查这是否有效,这也是将file1.txt和file2.txt添加到图像中,如果不是我如何指定在图像中添加这些文件。
有没有办法可以递归地将所有文件和目录添加到我想要创建的图像中?
此外,如何访问此图像,意味着如何检查此图像是否实际包含所有文件夹和文件。有没有办法进入这个?
我可以提出建议并查看另一种码头工作方法,如果我想要做的事情没有意义。
感谢您的阅读。
答案 0 :(得分:1)
您正尝试使用应用程序管理方法解决配置管理问题。对于共享配置,您通常希望采用"集中位置方法"。这个的基本示例是git存储库或S3存储桶。这两种解决方案都具有本机文档存储,可以通过细粒度的访问控制在服务之间进行适当的共享。
docker镜像不是docker方法来存储/共享配置。通过制作图像,您基本上可以做两件事: 1.将其他图像放在初始图像上 2.运行容器
鉴于此处的图片仅为// Change this
_.each(rowData.routeLocations, function(item) {
// To this
_.each(rowData.routeLocations, (item) => {
和文件,因此没有可执行文件,也无法运行。 hello world示例复制了一个包含实际脚本的目录,这就是为什么他们最终得到了一个可运行的容器。
作为基本映像,配置在依赖之类的东西之前没有意义。
如果您真的想使用泊坞工具,那么您正在寻找泊坞窗卷。这可以持久保存文件系统,并且易于在不同容器周围共享。 https://docs.docker.com/engine/userguide/containers/dockervolumes/