Управление контейнерами Docker с помощью командной строки
Docker CMD — это инструкция в Dockerfile, которая определяет команду, которую будет выполнять контейнер при запуске. Эта команда может содержать несколько аргументов и параметров, и она будет исполняться внутри контейнера.
Пример 1:
FROM ubuntu
CMD echo "Hello, Docker!"
В данном примере Dockerfile создает образ на основе Ubuntu и задает команду `echo "Hello, Docker!"` как команду по умолчанию. Таким образом, при запуске контейнера, он будет выводить сообщение "Hello, Docker!".
Пример 2:
FROM python:3.8
WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY . .
CMD ["python", "app.py"]
В данном примере Dockerfile создает образ на основе Python 3.8, задает рабочую директорию `/app`, копирует файл `requirements.txt` и устанавливает необходимые зависимости. Затем копирует все файлы и папки проекта в контейнер. В конечном результате, команда `CMD ["python", "app.py"]` задает запуск файла `app.py` с использованием интерпретатора Python при запуске контейнера.
Важно отметить, что объявление команды `CMD` не означает, что ее выполнение будет ожидать команду `ENTRYPOINT`. Если `ENTRYPOINT` присутствует в Dockerfile, команда `CMD` будет использоваться в качестве аргументов для `ENTRYPOINT`.
Также можно использовать варианты с CMD:
- CMD ["executable", "param1", "param2"] — запустить исполняемый файл внутри контейнера с указанными параметрами.
- CMD command param1 param2 — запустить команду внутри командной оболочки контейнера.
Например:
CMD echo "Hello, $NAME"
В данном примере, если переменная окружения `NAME` была определена при запуске контейнера, команда `echo "Hello, $NAME"` выведет приветствие с указанным именем.
В целом, использование команды `CMD` является важной частью конфигурации Docker контейнера, так как она определяет то, что будет выполняться при его запуске.