我有一些在终端中运行的基本 docker 命令。现在我想要的是将所有基本 docker 命令使用到一个 docker 文件中,然后构建该 docker 文件。
例如。考虑两个 docker 文件 文件 - Docker1、Docker2
Docker1 包含要运行的命令列表
在 Docker2 中我想构建 Docker1 并运行它
Docker2:(考虑带有演示代码的场景)
FROM ubuntu:16.04
MAINTAINER abc@gmail.com
WORKDIR /home/docker_test/
RUN docker build -t Docker1 .
RUN docker run -it Docker1
Run Code Online (Sandbox Code Playgroud)
我想做这样的事情。但它抛出 - docker:来自守护进程 oci 运行时的错误响应创建失败的container_linux.go
我怎样才能做到这一点?我哪里出错了
PS-我是 Docker 新手
您的示例混合了两个步骤,即图像创建和运行 image,这不能以这种方式混合(与 a Dockerfile)。
ADockerfile用于创建图像。让我们以这个alpine3.8 docker 文件作为一个最小的例子
FROM scratch
ADD rootfs.tar.xz /
CMD ["/bin/sh"]
Run Code Online (Sandbox Code Playgroud)
它是一个基本图像,它不是基于另一个图像,它开始FROM scratch。然后复制并解压 tar 文件,请参阅ADD并将 shell 设置为启动命令,请参阅CMD。你可以用以下方式构建它
docker build -t test_image .
Run Code Online (Sandbox Code Playgroud)
从所在的同一文件夹发出Dockerfile。您还需要rootfs.tar.xz在该文件夹中,从上面的 alpine 链接复制它。
从那里test_image你现在可以生成一个容器
docker run -it test_image
Run Code Online (Sandbox Code Playgroud)
它将启动并为您提供容器内的外壳。
通常在生成images新的container. 但如果你真的需要的话,你可以用 来完成docker-compose。Docker Compose旨在定义和运行由多个容器组成的服务堆栈。堆栈在docker-compose.yml文件中定义。
version: '3'
services:
alpine_test:
build: .
Run Code Online (Sandbox Code Playgroud)
build: .负责image在启动之前重新构建,但通常只需image: <image_name>使用现有的映像就足够了。
| 归档时间: |
|
| 查看次数: |
21763 次 |
| 最近记录: |