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

Общие обсуждения => Компьютеры и интернет => 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
Интересно, насколько именно оно легковеснее. Это ж всё равно одну операционку внутри другой запускать. А винда сама по себе нехило так отжирает. Какие ресурсы на каждый контейнер нужны, не меньше гига памяти?