Как запустить Docker-контейнер с помощью Dockerfile: несколько методов с примерами кода

Чтобы запустить контейнер в Docker с помощью Dockerfile, вы можете использовать несколько методов. Вот несколько примеров:

Метод 1: использование команд docker buildи docker run

Шаг 1. Создайте файл Dockerfile
Создайте файл с именем Dockerfile(без расширения файла) и откройте его в текстовом редакторе. Добавьте необходимые инструкции для создания образа контейнера. Например, предположим, что вы хотите создать простое приложение Node.js:

# Use an official Node.js runtime as the base image
FROM node:14
# Set the working directory in the container
WORKDIR /app
# Copy package.json and package-lock.json to the working directory
COPY package*.json ./
# Install the application dependencies
RUN npm install
# Copy the application code to the working directory
COPY . .
# Expose a port (if necessary)
EXPOSE 3000
# Define the command to run the application
CMD ["node", "app.js"]

Шаг 2. Создайте образ Docker
Откройте терминал или командную строку, перейдите в каталог, содержащий файл Dockerfile, и выполните следующую команду, чтобы создать образ Docker:

docker build -t myapp .

Эта команда создаст образ Docker, используя инструкции, указанные в файле Dockerfile. Флаг -tпозволяет пометить изображение именем (в данном примере myapp).

Шаг 3. Запустите контейнер Docker
После создания образа вы можете запустить контейнер на основе этого образа с помощью следующей команды:

docker run -d -p 8080:3000 myapp

Эта команда запустит контейнер в автономном режиме (флаг -d), сопоставляя порт 8080 на вашем локальном компьютере с портом 3000 в контейнере (флаг -p) и используя изображение myapp.

Метод 2: использование Docker Compose
Docker Compose — это инструмент для определения и запуска многоконтейнерных приложений Docker. Он позволяет вам определять службы, сети и тома вашего приложения в файле YAML. Вот пример использования Docker Compose:

Шаг 1. Создайте файл Dockerfile (так же, как в методе 1)

Шаг 2. Создайте файл docker-compose.yml.
Создайте файл с именем docker-compose.yml

3

Этот YAML-файл определяет службу с именем app, которая создает образ с использованием файла Dockerfile в текущем каталоге (build:.) и сопоставляет порт 8080 на хосте с порт 3000 в контейнере (ports).

Шаг 3. Запустите контейнер Docker с помощью Docker Compose
Откройте терминал или командную строку, перейдите в каталог, содержащий файл Docker Compose, и выполните следующую команду:

docker-compose up -d

Эта команда запустит контейнер, определенный в файле docker-compose.yml, в автономном режиме (флаг -d).