如何部署一个自建的Docker镜像来针对本地环境进行修改?

2023-11-30

快速回顾一下,docker 是一种为特定 Web 服务、运行环境、虚拟机编写代码或配置文件更改的方法,所有这些都来自 Linux 终端/文本文件的舒适范围。 Docker 镜像是由 dockerfile 制作的代码层的保存点,或者可以从需要基础镜像来创建的容器创建。 Dockerfile 是一种自动化创建镜像的构建过程的方法,通过运行所有所需的命令和操作来生成任何新容器并将它们卷入一个文件中。

现在这很棒,但我想更进一步。构建镜像,尤其是那些具有依赖关系的镜像是很麻烦的,因为1,你必须依赖默认操作系统镜像中不存在的命令,或者2,有很多其他不需要的无用命令。

现在在我的脑海里,我觉得这是可能的,但我还无法建立联系。我的愿望是获得一个 dockerfile 从头开始​​构建自己(字面意思是划痕的图像)并据此构建自身。它是复制所需的任何依赖项,例如 rpm 或其他东西,安装它,找到其启动命令,并将成功创建和运行没有缺陷的映像所需的所有依赖项转发回 docker 文件。从编程意义上来说,

FROM scratch
COPY package.rpm
RUN *desired cmds*

运行错误将反馈到文件中。文件在当前操作系统中搜索所需的依赖项并将其返回到 RUN cmd。

CMD *service start up*

至于该 CMD,我们将运行该服务,获取其状态并将其过滤回其启动命令回 CMD 部分。

但这里的问题是我不相信我可以使用 docker 来达到这些目的。要对某些东西进行 docker 构建,保留其错误并将其再次过滤回构建中似乎具有挑战性。我希望 docker 能够配备这个,因为似乎我执行此类任务的唯一机会是通过一个对可移植性因素造成严重破坏的脚本。

有任何想法吗?


Docker 不会为您提供轻松的构建。 Docker 不知道你想要什么。

您在这里有多种选择:

  • 适用于 OSX 的 Kitematichttps://kitematic.com/(他们还在这里发布了 Windows 的 alpha 版本https://github.com/kitematic/kitematic/releases)。您可以使用此应用程序下载其他人已将工作放入 GUI 界面中的容器。

  • Docker 撰写。 Docker Compose 允许您使用 YAML 配置文件来启动 Docker 容器。如果您想查看此视图​​的一些示例,请参阅此存储库:https://github.com/b00giZm/docker-compose-nodejs-examples

一个简单的例子:

web:
build: .
volumes:
   - "app:/src/app"
ports:
   - "3030:3000"

使用方法:

docker-compose up

Docker compose 将:

  1. 调用容器web
  2. 使用当前工作目录作为 root 进行构建
  3. Mount app目录到/src/app在容器中
  4. 将集装箱端口 3030 暴露为 3000 给外界。

注意build还可以指向您通过 Kitematic 找到的 Docker 容器(从registry.hub.docker.com 读取),以便您可以替换.(在上面的构建线上的示例中)node:latest它将构建一个 NodeJS 容器。

Docker Compose 与 docker 命令行非常相似。您可以使用https://lorry.io/获取生成 docker-compose.yml 文件的帮助。

  • 如果您正在寻找史诗般的解决方案,那么我会推荐类似的东西中间层适用于企业 Docker 环境。

您还可以研究其他解决方案,例如 Google 的 Kubernetes 和 Apache Mesos,但学习曲线会增加。

我还注意到你在破坏 IP,虽然我没有使用过它,但据我所知,Weave大大简化了Docker的网络方面,这绝对不是Docker的强项。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何部署一个自建的Docker镜像来针对本地环境进行修改? 的相关文章

随机推荐