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

问题描述 投票:0回答:1

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

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

Docker1 包含要运行的命令列表

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

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

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

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

我该怎么做?我哪里错了

P.S - 我是 Docker 新手

docker dockerfile
1个回答
5
投票

您的示例混合了两个步骤,图像创建运行图像,不能以这种方式混合(使用

Dockerfile
)。

图像创作

“Dockerfile”用于创建镜像。让我们以这个 [alpine3.8 docker file][1] 作为一个最小的例子
FROM scratch
ADD rootfs.tar.xz /
CMD ["/bin/sh"]

它是一个基础图像,它不是基于另一个图像,它开始于

FROM scratch
。 然后复制并解压 tar 文件,请参阅ADD,并将 shell 设置为启动命令,请参阅CMD。你可以用

来构建它
docker build -t test_image .

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

运行容器

从此

test_image
您现在可以使用

生成一个容器
docker run -it test_image

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

Docker 组合

通常无需在生成新的

images
之前一遍又一遍地构建您的
container
。但如果你真的需要的话,你可以用
docker-compose
来完成。 Docker Compose 旨在定义和运行由多个容器组成的服务堆栈。堆栈在
docker-compose.yml
文件中定义。

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

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

© www.soinside.com 2019 - 2024. All rights reserved.