Сборка нового контейнера со смешанными командами CMD и RUN не работает - PullRequest
0 голосов
/ 01 февраля 2020

Я новичок в docker и учусь создавать новый контейнер. Я столкнулся с проблемой сборки контейнера, унаследованного от Ubuntu. Я хочу установить Python3 и некоторые другие пакеты на контейнер Ubuntu с соответствующими сообщениями, но это не работает. Когда я создаю контейнер с Dockerfile с помощью:

FROM ubuntu
CMD echo "hello new Ubuntu"
RUN apt-get upgrade &&  apt-get update && apt-get install -y python3 
CMD echo "installed python"

, вызов встроенного Ubuntu с docker run -it my_new_ubuntu не входит в интерактивный режим, а выводит только installed python, даже не "привет" новая Ubuntu ".

Хотя, когда я собираю контейнер с Dockerfile без какого-либо сообщения:

FROM ubuntu RUN apt-get upgrade &&  apt-get update && apt-get install
-y python3

и вызываю построенный контейнер с docker run -it my_new_ubuntu, он входит в Ubuntu root, и я могу Звоните python. Я не уверен, почему первый Dockerfile не работает. Кажется, я не могу смешивать команды RUN и CMD вместе. Я ценю любую помощь или комментарий.

1 Ответ

0 голосов
/ 01 февраля 2020

RUN указывает команду для запуска при создании образа из вашего Dockerfile. Вы можете иметь несколько RUN инструкций, и каждая из них будет применяться к изображению в указанном порядке.

CMD указывает команду по умолчанию, для которой изображение было создано в контейнере и запущено , Если имеется несколько CMD инструкций, применяется только последняя.

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