Языковая политика
Общие обсуждения => Компьютеры и интернет => Topic started by: cetsalcoatle on 29 May 2026, 04:40:20
-
Я понял общий принцип, но я не совсем понимаю механику. :what?
Он используется для работы на сервере?
-
Суть вопроса совершенно непонятна :look:
-
Docker — это платформа, которая позволяет упаковывать приложения и все их зависимости (библиотеки, конфигурацию, системные утилиты) в один единый стандартный модуль, называемый контейнером.
Ближайшая понятная аналогия — что-то вроде универсального WinRar.
-
что-то вроде универсального WinRar
совсем непохоже.
там жеж написано - приложения и все зависимости.
Тебе не надо ставить экрзотическую версию .NET на свой комп или разыскивать библиотеки написанные хрен знает когда хрен знает кем. Аффтар контейнера об этом уже позаботился.
-
Да, это для приложений, а не для данных. Вместо того, чтобы ставить приложения непосредственно в свою ОС, можно их ставить в их собственные ОС, работающие в контейнерах. И на hub.docker.com есть большое количество готовых образов с установленным софтом. Преимущества:
- контроль над версиями
- легко воспроизводимо
- упрощается установка и конфигурирование софта
- основная ОС не забивается хламом
Например,
- контейнер 1: бэкенд
- контейнер 2: postgresql
- контейнер 3: pgadmin
Можете для практики попробовать реализовать такую конфигурацию. Для усложнения можно добавить фронтенд:
- контейнер 4: дев-сервер фронтенда
- контейнер 5: nginx, за которым работают бэкенд и фронтенд, чтобы не было ошибок CORS.
Контейнеры общаются друг с другом по внутридокерной сети. Поэтому, например, для postgresql не нужно конфигурировать порт. Он может использовать порт по умолчанию, потому что это не порт компьютера-хоста, а порт контейнера.
-
Т.е. это что вроде эмулятора? Допустим я создаю приложение для Linux, но мне нужно чтобы оно запускалось на Windows, Docker берёт и в момент запуска приложения создаёт микросреду Linux? :what?
-
Это вроде кучи виртуальных машин, но гораздо легковеснее. С виндоусом в контексте докера никогда не работал, не знаю деталей. Контейнеры с линуксом хорошо работают на линуксе. :)
-
Вот пример. У вас есть сайт, и вы хотите раздавать его nginx-ом.
Для примера, сайт будет такой: в папке mysite файл index.html
<!DOCTYPE html>
<html>
<head>
<title>Example</title>
</head>
<body>
<p>This is an example of a simple HTML page with one paragraph.</p>
</body>
</html>
Запускаете контейнер nginx:
docker run -v /path/to/mysite:/usr/share/nginx/html:ro -p 8080:80 nginx
Можно открыть localhost:8080 и посмотреть.
-v - сокращение от --volume. Эта опция монтирует директорию хоста в контейнер. nginx предполагает, что раздаваемые файлы лежат в директории /usr/share/nginx/html, и мы "подсовываем" туда локальную директорию.
Опция -p перенаправляет порт. nginx по умолчанию раздаёт файлы на порту 80. Когда он используется в контейнере, это порт 80 контейнера. Опция -p 8080:80 перенаправляет запросы на порт 8080 локалхоста на порт 80 контейнера.
Так мы используем nginx, не устанавливая его и не конфигурируя.
Но, конечно, можно запускать nginx и с кастомной конфигурацией, скопировав или примонтировав локальный конфиг-файл в контейнер.
-
Интересно, насколько именно оно легковеснее. Это ж всё равно одну операционку внутри другой запускать. А винда сама по себе нехило так отжирает. Какие ресурсы на каждый контейнер нужны, не меньше гига памяти?