【问题标题】:How to ensure that my docker image / container will still work 100 years from now?如何确保我的 docker 镜像/容器在 100 年后仍然可以工作?
【发布时间】:2020-10-17 09:03:00
【问题描述】:

我已经创建了我的 Docker compose 和 Dockerfile,但正如您所见,我正在从 Docker Hub 下载 PHP,并且还在下载和安装 PHP 扩展。但是,如果 20 年后这些图像/包将不再托管在 Docker hub 上怎么办?如果我想仍然能够运行我的容器怎么办?

我能否及时冻结我的容器?我可以将它们捆绑在一起,这样如果我在 100 年后重新使用它并运行我的图像,它仍然可以工作吗?我不希望它出去从互联网上下载任何东西。我想现在下载所有内容,以后再运行。

Docker 撰写文件

version: '3'
services:

  php:
    build:
      context: ./php
      dockerfile: Dockerfile
    image: digitalocean.com/php
    container_name: php

还有我的 PHP Dockerfile

RUN docker-php-ext-install pdo_mysql mbstring zip exif pcntl
RUN docker-php-ext-configure gd --with-gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ --with-png-dir=/usr/include/
RUN docker-php-ext-install gd

【问题讨论】:

    标签: docker docker-compose dockerfile containers


    【解决方案1】:

    嗯,是的。当您构建 docker 映像时,它会本地存储在您的主机上。由于您的图像已经包含您需要的一切。 您可以将其存储在私人 docker registry 中,即使在 100 年后也可以使用

    【讨论】:

    • 所以当我运行docker build 时它会下载所有内容,然后当我运行图像时它就不再需要下载任何内容了?
    • 是的。 Dockerfile 中描述的所有内容都会在最终的 docker 映像中持久化
    • 好的,所以要清楚。如果我今天成功地建立自己的形象,并在 100 年后互联网不再存在时回来。然后我仍然可以运行我的图像,但我无法重新构建它?
    • 另外,澄清一下,是否所有内容都保存在imagecontainer 中?
    • 所有内容都保存在image 中。 container 只是您正在运行的图像的一个实例。可以保存容器的状态,但是问题比较多
    【解决方案2】:

    您需要自己提供

    如果将来不可用,您现在需要通过以下任一方式获取并保存它们:

    • 现在创建已下载包并保存在本地的图像。

    • 立即下载软件包并设置本地服务器,以便将来根据需要提供服务。

    【讨论】:

    • 如何创建包含所有包的图像?
    猜你喜欢
    • 2014-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多