如何使用 docker 文件运行 docker 命令

2024-02-05

我有一些在终端中运行的基本 docker 命令。现在我想要的是将所有基本 docker 命令使用到一个 docker 文件中,然后构建该 docker 文件。

例如。 考虑两个 docker 文件 文件 - Docker1、Docker2

Docker1 包含要运行的命令列表

在 Docker2 中我想构建 Docker1 并运行它

Docker2:(考虑带有演示代码的场景)

FROM ubuntu:16.04
MAINTAINER [email protected] /cdn-cgi/l/email-protection
WORKDIR /home/docker_test/
RUN docker build -t Docker1 .
RUN docker run -it Docker1

我想做这样的事情。但它抛出 - docker:来自守护进程 oci 运行时的错误响应创建失败的container_linux.go

我怎样才能做到这一点?我哪里出错了

P.S-我是 Docker 新手


你的例子是混合两个步骤,图像创作 and 运行图像,不能以这种方式混合(与Dockerfile).

形象创作

A Dockerfile用于创建图像。让我们拿这个alpine3.8 docker 文件 https://github.com/gliderlabs/docker-alpine/blob/c14b86580b9f86f42296050ec7564faf6b6db9be/versions/library-3.8/x86_64/Dockerfile作为一个最小的例子

FROM scratch
ADD rootfs.tar.xz /
CMD ["/bin/sh"]

这是一个基本图像,它不是基于另一个图像,它开始FROM scratch。 然后复制并解压一个tar文件,参见ADD https://docs.docker.com/engine/reference/builder/#add并且shell被设置为启动命令,参见CMD https://docs.docker.com/engine/reference/builder/#cmd。你可以用以下方式构建它

docker build -t test_image .

从同一文件夹发出,其中Dockerfile是。您还需要rootfs.tar.xz在该文件夹中,从上面的 alpine 链接复制它。

运行容器

从此test_image你现在可以生成一个容器

docker run -it test_image

它将启动并为您提供容器内的外壳。

Docker 组合

通常不需要构建您的images在产生新的之前一遍又一遍container。但如果你真的需要的话,你可以这样做docker-compose. Docker 组合 https://docs.docker.com/compose/overview/旨在定义和运行由多个容器组成的服务堆栈。堆栈定义在docker-compose.yml file.

version: '3'
services:
  alpine_test:
    build: .

build: .负责构建image在启动之前再次启动,但通常只需image: <image_name>并使用已有的图像。

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

如何使用 docker 文件运行 docker 命令 的相关文章

随机推荐

  • 隐藏固定透明标题下的滚动内容,滚动背景

    假设我有一个背景图像 一个带有透明部分的固定标题图像 一个带有半透明背景的内容 div 以及传统页眉 内容 页脚布局中的动态高度 我试图实现的效果 在固定标题下滚动背景和内容 隐藏内容并显示背景 我读过很多相关主题 例如隐藏透明标题下的滚动
  • 应该使用哪个 EncodeFor 进行定位?

    Which EncodeFor应该使用location 如果我想通过位置推送一些数据 它应该是什么样子 location obtainBDK cfm message ErrorMessage false nothing OR locatio
  • 从 SQLite 数据库中删除指定数量的行

    我尝试使用以下语句从数据库中删除 6 行 但出现如下错误 getWritableDatabase execSQL DELETE FROM tblname ORDER BY id ASC LIMIT 6 Error 引起原因 android
  • 集合并查找算法

    我有数千行 1 到 100 个数字 每行定义一组数字以及它们之间的关系 我需要获取相关数字的集合 小例子 如果我有这7行数据 T1 T2 T3 T4 T5 T6 T1 T5 T4 T3 T4 T7 我需要一个不太慢的算法来知道这里的集合是
  • Chrome 扩展程序中的页面加载事件

    我想在 Chrome 浏览器页面完全加载后检查其内容中的一些值 像那样 if document body innerText indexOf Cat 1 我可以在何时何地进行支票 请给我一个明确的例子 我读了一些关于 Background
  • 如何向 Symfony 2.1 添加命名空间?

    我有一个使用命名空间的第三方库 我想将其添加到供应商目录中 由于某些原因 我无法为此库使用作曲家 使用 ClassLoader 的 add 方法添加它对我不起作用 找不到类 详细地 我正在使用 Symfony 2 1 7 app autol
  • 在管理控制台上删除 reCAPTCHA 站点

    很简单 我觉得某个地方有一个我没有看到的设置或按钮 我有一个使用 reCAPTCHA 注册的网站列表 我想在管理控制台上删除一个 我该怎么做 当我进入其中一个网站的设置时 似乎没有办法删除 我是对的 有一个删除按钮我没有看到 单击顶部的齿轮
  • Backbone.js 悬停事件未触发

    我第一次尝试使用 Backbone js 但遇到了一些问题 我不知道我的问题是否是我不理解主干应该如何工作 或者这只是一个代码问题 我正在尝试创建一个动态菜单 并且使用其项目创建主菜单栏没有问题 但每当我悬停其中一个菜单项时 我都无法触发悬
  • 使用 axWindowsMediaPlayer 播放两个视频

    我尝试播放jpg 循环 单击mp4后应该在结束后播放 该jpg应该再次播放 我不知道为什么 但在 axWindowsMediaPlayer1 PlayStateChange 中播放 vido 后 播放然后停止 帮助 using System
  • Jenkins DSL 插件:如何在现有的 jenkins 视图中创建作业?

    我发现以下有关创建作业以及使用 DSL 插件添加到新创建的视图的问题 将作业添加到新创建的视图中 https stackoverflow com questions 22021763 create a job dsl that create
  • MediaStore.MediaColumns#DATE_TAKEN 只能从 API 级别 29 开始使用吗?

    我正在尝试使用MediaStore Images Media DATE TAKEN https developer android com reference android provider MediaStore MediaColumns
  • Groovy:读取数组中文件的内容并 grep 查找某些内容

    我正在尝试在 GROOVY 脚本中实现以下内容 但出现错误 读取数组中 HTML 文件的内容 然后grep对于该数组中的某些内容 def file1 new File path to the file xyz html def lines
  • 执行 mongoDb docker 实例的 mongodump 的正确语法是什么?

    我正在运行带有一些 docker 容器的 ubuntu 16 04 LTS 服务器 其中一个容器是 mongoDB 容器 我的数据存储在其中 现在我正在尝试通过以下方式进行备份mongodump 对我来说 问题是 mongoDb 作为 do
  • GKPeerPickerController 的连接问题

    我正在使用 GKSession 和 GKPeerPickerController 开发 iOS 游戏 我发现连接两个 iOS 设备的过程缓慢且不可靠 即使它们彼此相邻 我们将我的设备称为 设备 A 和 设备 B 通常会发生以下情况 在每台设
  • 如何将这个 4 列表转换为单列表,但仍保持表的可访问性

    我想做这张桌子http jsfiddle net B7SVK http jsfiddle net B7SVK 从 4 列变为单列 因为我需要将此表从桌面网站转换为移动网站 而移动设备的宽度有限 我不想在网页中水平滚动 那么有没有一种方法可以
  • Nodejs Nodemailer:使用现有代码将grid SMTP 用户名和密码发送到 API 密钥错误:550

    目前我正在使用 sendgrid 使用节点 js 库 nodemailer 运输工具选项 config transporterOption host process env SMTP HOST smtp sendgrid net pool
  • 当用户以编程方式单击 swift ios 中的“删除”按钮时,如何将光标自动从一个文本字段移动到另一个文本字段?

    目前 我有 6textfields我要从一个textfield一旦用户单击键盘上的数字 就会进入下一步 我试图解决的问题是 如果用户点击Delete Button返回重新输入不同的号码 如何在程序中进行编码 如何让用户返回在键盘上输入新号码
  • CloudKit:将容器环境从开发切换到生产

    我正在构建一个测试工具来验证 CloudKit 中的内容 但我希望能够选择容器的环境 在 iOS 上 当您导出应用程序进行临时测试时 您可以选择 开发 或 生产 环境 但在 OS X 上没有该选项 它始终指向 开发 环境 任何人都知道 是否
  • 打印类的所有实例

    对于 Python 中的类 如何定义一个函数以按照函数中定义的格式打印该类的每个实例 在这种情况下我看到两个选择 垃圾收集器 import gc for obj in gc get objects if isinstance obj som
  • 如何使用 docker 文件运行 docker 命令

    我有一些在终端中运行的基本 docker 命令 现在我想要的是将所有基本 docker 命令使用到一个 docker 文件中 然后构建该 docker 文件 例如 考虑两个 docker 文件 文件 Docker1 Docker2 Dock