是否可以将应用程序永久安装在Docker容器中?

艾哈迈德·塞迪(Ahmad Sedigh)

我正在使用docker,但是每次运行docker时,都应该安装一些重要的应用程序,并且需要用cat编辑source.list,然后再安装sudo和nano,然后每次运行docker时都要进行其他工作。

有什么方法可以保存docker容器并稍后重新登录?

我在Debian 10中使用docker运行ubuntu 16。

异戊二烯

Dockerfile

这是“正常”的方式。基本上,您将创建一个文件(通常名为Dockerfile),其中包含:

# The image we will start with:
FROM ubuntu:16.04

# Install packages, by running a command
RUN apt update && apt install package1 package2

# You can also copy you own script/config files
COPY startup.sh /startup.sh

然后,您“编译”映像(假设该目录包含Dockerfile,而脚本是当前目录):

docker build -t my_image .

然后您使用您的图像:

docker run my_image

Dockerfiles的完整语法在这里

这种方法的好处:

  • Dockerfile是您对工作容器的“配方”,无需做旁注,等等。这就是您获得文件化和可维护的容器的方式。
  • 您可以轻松升级到基本映像的新版本
  • 您可以共享映像或将映像传输到另一台机器,只需传输docker文件以及您复制到容器中的少量文件即可。

docker commit

您还可以从当前容器内容创建图像:

docker commit <containerId> <imageName>

问题是,如果图像有效,则您实际上并不知道其中的内容,并且传输也不容易(这是一个很大的文件)

笔记:

  • 在您更改USER之前,您已经是容器的根用户,因此通常不需要 sudo
  • 您也不需要nano任何一个,在容器外部编辑文件,然后使用Dockerfile复制它们。容器是一堆扔掉的东西。
  • 使用您自己的映像,即使没有网络,容器也可以启动得更快,因为您不需要重新安装东西。
  • 容器是一次性物品,很难备份或转移。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何从另一个Docker容器访问安装在Docker容器中的应用程序?

是否可以将非容器化的 Spring Boot 应用程序连接到 MongoDB Docker 容器?

在使用 SQLAlchemy 的 Flask 应用程序中,是否可以将 `session.rollback` 永久放在应用程序的开头?

是否可以将应用程序安装在与操作系统不同的单独驱动器上?

将Ansible应用程序安装到Docker容器

是否可以在Windows docker容器中运行的dotnet核心应用程序中使用EPPlus?

检查React应用程序是否在Docker容器中运行

将数据表包装在容器中,以避免在应用程序中滚动

可以更新安装在外部Google Play商店中的应用程序吗?

如何使用jsp检查应用程序是否已安装在移动设备中?

Android - 检查应用程序是否已安装在模拟器中

我如何将--bind安装在Docker容器中?

为什么将Tomcat安装在Web应用程序的项目目录中(java)

MySQL应该如何安装在Django应用程序中?

是否可以在单个 NGINX 容器中托管多个 Web 应用程序容器?

一旦球衣应用程序安装在服务器上并运行,是否可以运行确认消息?

将VS Code的服务器永久安装在容器中

是否可以运行 Docker 容器并在主机上显示其图形应用程序窗口?

使用docker-compose将azure文件共享安装到linux容器的Web应用程序

如何配置Apache(安装在服务器中)以在Docker中运行Web应用程序(Django)?

可以从Windows Docker容器内将Service Fabric应用程序部署到群集吗?

如何在Windows Docker容器上安装应用程序?

如果我的应用程序使用ios7的新功能,可以将其安装在iOS 6中吗?

是否可以在 chroot 或容器中运行某些应用程序,但允许 DBus 与主机系统交互?

是否可以使用容器在 Azure 管道中构建 .NET WPF 应用程序?

是否可以为php应用程序安装程序?

您可以在Docker容器中运行GUI应用程序吗?

Spring Boot应用程序可以在IntelliJ中运行,但不能作为Docker容器运行

将构建的文件从 React 容器复制到 NGINX 容器后,是否可以热重载 React 应用程序?