Docker
Docker
Docker
Команда FAANG School приветствует тебя и рада представить то, чего все
так давно просили — подробнейшее руководство по Docker!
по Dockerfile
Что такое Dockerfile?
Dockerfile — это скрипт, который содержит инструкции для создания образа Docker.
Синтаксис Dockerfile
FROM:
FROM image_name:tag
#Example
FROM ubuntu:20.04
WORKDIR:
WORKDIR /path/to/directory
#Example
WORKDIR /app
COPY:
Копирует файлы или каталоги из контекста сборки образа в контейнер. Из ОС, где лежит
#Example
COPY ..
R UN :
R UN co mman d1 && co d2
mman
#Example
R UN apt-ge t up d e &&
at apt -ge i s
t n tall -y c r
u l
ENV:
ENV KEY=VALUE
#Example
ENV NODE_VERSION=14
EXPOSE:
Сообщает Docker, что контейнер слушает указанные сетевые порты во время выполнения.
EXPOSE port
#Example
EXPOSE 8080
CMD:
выполняемого контейнера.
CMD ["executable","param1","param2"]
#Example
или
#Example
ARG:
#Example
ARG VERSION=latest
ENTRYPOINT:
#Example
или
#Example
VOLUME:
VOLUME /path/to/volume
#Example
VOLUME /data
LABEL:
LABEL key="value"
#Example
USER:
Указывает имя пользователя или UID для использования при запуске образа.
USER user_name
#Example
USER app
ADD:
#Example
Пример
FROM node:20-alpine
WORKDIR /app
директорию
COPY package*.json ./
# Установить зависимости
COPY . .
EXPOSE 8080
ENV NODE_ENV=production
version:
Пример:
version: '3.8'
services:
Пример:
services:
web:
image: nginx:latest
networks:
Пример:
networks:
my_network:
driver: bridge
command:
Пример:
Пример:
volumes:
my_volume:
environment:
Пример:
environment:
- NODE_ENV=production
ports:
Маппит порты хоста на порты контейнера. Т.е. определяет запросы на какой порт хост-
Пример:
ports:
- "8080:80"
depends_on:
другого.
Пример:
depends_on:
- db
build:
Пример:
build:
context: .
dockerfile: Dockerfile.dev
volumes_from:
Пример:
volumes_from:
- service_name
version: '3.8'
services:
# Сервис MongoDB
mongo:
image: mongo:latest
ports:
- "27017:27017"
volumes:
- mongo_data:/data/db
environment:
MONGO_INITDB_ROOT_USERNAME:admin
MONGO_INITDB_ROOT_PASSWORD:admin
api:
build:
context: ./api
# Указание Dockerfile для сборки API сервиса
dockerfile: Dockerfile
ports:
- "5000:5000"
depends_on:
- mongo
environment:
MONGO_URI: mongodb://admin:admin@mongo:27017/mydatabase
networks:
- mern_network
client:
build:
context: ./client
dockerfile: Dockerfile
ports:
- "5000:5000"
depends_on:
- api
networks:
- mern_network
volumes:
mongo_data:
networks:
mern_network:
Образы
Docker
1. Построение образа из Dockerfile:
#Example
#Example
#Example
#Example
Или #Example
#Example
#Example
#Example
#Example
#Example
#Example
#Example
> docker ps
> docker ps -a
#Example
#Example
#Example
#Example
#Example
#Example
#Example
#Example
#Example
#Example
и Сеть
1. Создать именованный volume:
#Example
#Example
4. Удалить volume:
#Example
image_name:tag
#Example
#Example
#Example
#Example
#Example
#Example
#Example
docker-compose.yml.
Эта команда собирает или пересобирает Docker образы для сервисов, определенных
в файле docker-compose.yml.
4В
. ывести список контейнеров дл я г
определенно о проекта D ocker C
ompose:
docker-compose.yml.
5. Просмотреть логи сервисов:
Эта команда показывает логи для всех сервисов, определенных в файле docker-
compose.yml.
#Example
#Example
Docker Compose создает volumes для сервисов. Эта команда помогает вам их видеть.
9. Приостановить сервис: