Языковая политика

Общие обсуждения => Компьютеры и интернет => Topic started by: cetsalcoatle on 29 May 2026, 04:40:20

Title: Как работает Docker?
Post by: cetsalcoatle on 29 May 2026, 04:40:20
Я понял общий принцип, но я не совсем понимаю механику. :what?

Он используется для работы на сервере?
Title: Re: Как работает Docker?
Post by: Upliner on 29 May 2026, 04:50:28
Суть вопроса совершенно непонятна :look:
Title: Re: Как работает Docker?
Post by: cetsalcoatle on 29 May 2026, 04:55:44
Quote
Docker — это платформа, которая позволяет упаковывать приложения и все их зависимости (библиотеки, конфигурацию, системные утилиты) в один единый стандартный модуль, называемый контейнером.
Ближайшая понятная аналогия — что-то вроде универсального WinRar.
Title: Re: Как работает Docker?
Post by: Yougi on 29 May 2026, 08:11:18
Quote
что-то вроде универсального WinRar
совсем непохоже.
 там жеж написано - приложения и все зависимости.
 Тебе не надо ставить экрзотическую версию .NET на свой комп или разыскивать библиотеки написанные хрен знает когда хрен знает кем. Аффтар контейнера об этом уже позаботился.
 
Title: Re: Как работает Docker?
Post by: Квас on 29 May 2026, 16:47:14
Да, это для приложений, а не для данных. Вместо того, чтобы ставить приложения непосредственно в свою ОС, можно их ставить в их собственные ОС, работающие в контейнерах. И на hub.docker.com есть большое количество готовых образов с установленным софтом. Преимущества:
- контроль над версиями
- легко воспроизводимо
- упрощается установка и конфигурирование софта
- основная ОС не забивается хламом

Например,
- контейнер 1: бэкенд
- контейнер 2: postgresql
- контейнер 3: pgadmin
Можете для практики попробовать реализовать такую конфигурацию. Для усложнения можно добавить фронтенд:
- контейнер 4: дев-сервер фронтенда
- контейнер 5: nginx, за которым работают бэкенд и фронтенд, чтобы не было ошибок CORS.

Контейнеры общаются друг с другом по внутридокерной сети. Поэтому, например, для postgresql не нужно конфигурировать порт. Он может использовать порт по умолчанию, потому что это не порт компьютера-хоста, а порт контейнера.
Title: Re: Как работает Docker?
Post by: cetsalcoatle on 29 May 2026, 16:51:12
Т.е. это что вроде эмулятора? Допустим я создаю приложение для Linux, но мне нужно чтобы оно запускалось на Windows, Docker берёт и в момент запуска приложения создаёт микросреду Linux? :what?
Title: Re: Как работает Docker?
Post by: Квас on 29 May 2026, 19:35:16
Это вроде кучи виртуальных машин, но гораздо легковеснее. С виндоусом в контексте докера никогда не работал, не знаю деталей. Контейнеры с линуксом хорошо работают на линуксе. :)
Title: Re: Как работает Docker?
Post by: Квас on 29 May 2026, 20:40:28
Вот пример. У вас есть сайт, и вы хотите раздавать его nginx-ом.

Для примера, сайт будет такой: в папке mysite файл index.html
Code: [Select]
<!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:
Code: [Select]
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 и с кастомной конфигурацией, скопировав или примонтировав локальный конфиг-файл в контейнер.
Title: Re: Как работает Docker?
Post by: Bhudh on 30 May 2026, 04:49:15
Интересно, насколько именно оно легковеснее. Это ж всё равно одну операционку внутри другой запускать. А винда сама по себе нехило так отжирает. Какие ресурсы на каждый контейнер нужны, не меньше гига памяти?
Title: Re: Как работает Docker?
Post by: Upliner on 30 May 2026, 13:52:12
Допустим я создаю приложение для Linux, но мне нужно чтобы оно запускалось на Windows
Можно напрямую в WSL запускать, докер всё равно через него работает.
Какие ресурсы на каждый контейнер нужны, не меньше гига памяти?
Однозначно нет. К тому же если контейнеры основаны на одной системе, то общие библиотеки у них будут расшарены.
Title: Re: Как работает Docker?
Post by: Bhudh on 30 May 2026, 18:10:53
Куда именно расшарены? У докера есть ещё какое-то "внешнее пространство" для разных контейнеров? Или в пределах WSL?
Title: Re: Как работает Docker?
Post by: Upliner on 31 May 2026, 07:38:37
WSL имеет отношение только к винде для эмуляции линукса. В самом Линуксе докер использует специальную OverlayFS и там общие слои шарятся между контейнерами, поэтому все контейнеры, использующие одну версию alpine или убунты будут грузить в память только один экземпляр этой системы.
Title: Re: Как работает Docker?
Post by: Bhudh on 01 June 2026, 02:14:09
То есть, по сути, вложенные контейнеры получаются. И какой максимальный уровень вложенности?
Title: Re: Как работает Docker?
Post by: Upliner on 01 June 2026, 02:54:18
И какой максимальный уровень вложенности?
Gemini подсказывает, что 127.
Title: Re: Как работает Docker?
Post by: Bhudh on 01 June 2026, 07:51:12
Нихрена себе. Тут JSON-то такой вложенности редко встретишь. Интересно, какая машинка потянет полноценную вложенность.