Как запускать команды Docker с помощью файла Docker - PullRequest
0 голосов
/ 03 октября 2018

У меня есть определенная базовая команда 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

Я хочу сделать что-то подобное.Но это бросок - docker: ответ об ошибке из демона oci runtime create not container_linux.go

Как я могу это сделать?Куда я иду не так

PS - я новичок в Docker

1 Ответ

0 голосов
/ 20 октября 2018

Ваш пример смешивает два шага: создание образа и запуск образа , который не может быть смешан таким образом (с Dockerfile).

Создание изображения

A Dockerfile используется для создания изображения.Давайте возьмем файл докера alpine3.8 в качестве минимального примера

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

Это базовое изображение, оно не основано на другом изображении, оно начинается FROM scratch.Затем tar-файл копируется и распаковывается, см. ADD , а оболочка установлена ​​в качестве команды запуска, см. CMD .Вы можете построить это с помощью

docker build -t test_image .

, выпущенной из той же папки, где находится Dockerfile.Вам также понадобится rootfs.tar.xz в этой папке, скопируйте его из вышеупомянутой альпийской ссылки.

Запуск контейнера

С этого test_image теперь вы можете порождать контейнер с помощью

docker run -it test_image

Он запустится и даст вам оболочку внутри контейнера.

Docker Compose

Обычно нет необходимости собирать ваш images снова и снова перед порождениемновый container.Но если вам действительно нужно, вы можете сделать это с помощью docker-compose. Docker Compose предназначен для определения и запуска стека служб, состоящего из нескольких контейнеров.Стек определен в файле docker-compose.yml.

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

build: . снова заботится о сборке image перед запуском, но обычно достаточно просто image: <image_name> и использоватьуже существующее изображение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...