[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"page-ru-/guides/linux/docker-network-configuration":3,"mdc-xv4lai-key":430,"mdc--2u2h85-key":450,"mdc-v4bli-key":474,"mdc--89qad9-key":491,"mdc--nanyik-key":516,"mdc--kqtgdv-key":538,"mdc-ktg5qx-key":560,"mdc-ha69ru-key":584,"related-/guides/linux/docker-installation,/guides/linux/docker-compose-networks,/guides/linux/docker-volume-management":608},{"id":4,"title":5,"appliesTo":6,"author":10,"body":11,"canonical":365,"code":71,"createdAt":366,"description":367,"difficulty":368,"draft":369,"estimatedTime":370,"extension":371,"faq":372,"howToSteps":385,"howToTotalTime":398,"image":365,"keywords":399,"locale":409,"meta":410,"navigation":411,"path":412,"platform":413,"related":414,"section":418,"seo":419,"severity":71,"stem":420,"summary":421,"tags":422,"twitterCreator":365,"twitterSite":365,"type":428,"updatedAt":366,"__hash__":429},"content_ru/guides/linux/docker-network-configuration.md","Docker-сети: настройка bridge-сетей и маппинг портов",[7,8,9],"Docker 20.10+","Ubuntu 22.04","Linux Kernel 5.15+","FixPedia Team",{"type":12,"value":13,"toc":351},"minimark",[14,19,23,27,56,60,65,100,112,116,146,156,170,174,177,207,213,216,220,223,246,249,264,267,271,291,295,344,347],[15,16,18],"h2",{"id":17},"введение","Введение",[20,21,22],"p",{},"Docker-сети позволяют изолированно запускать контейнеры и обмениваться между ними данными. Правильно настроенная bridge-сеть обеспечивает необходимую изоляцию и возможность доступа к внешним сервисам. После выполнения этой инструкции вы сможете создавать bridge-сети, подключать к ним контейнеры и выполнять маппинг портов хоста, чтобы сделать приложения внутри контейнеров доступными извне.",[15,24,26],{"id":25},"требования","Требования",[28,29,30,39,46,49],"ul",{},[31,32,33,34,38],"li",{},"Docker версии 20.10 или выше, установленный и запущенный (",[35,36,37],"code",{},"docker --version",").",[31,40,41,42,45],{},"Доступ с правами суперпользователя (",[35,43,44],{},"sudo","), если Docker работает через Docker Group.",[31,47,48],{},"Linux-ядро, поддерживающее iptables и VLAN (стандартные дистрибутивы удовлетворяют этому требованию).",[31,50,51,52,55],{},"Базовый образ, например ",[35,53,54],{},"nginx",", для тестирования (или любой другой контейнер).",[15,57,59],{"id":58},"пошаговая-инструкция","Пошаговая инструкция",[61,62,64],"h3",{"id":63},"шаг-1-создание-bridge-сети","Шаг 1: Создание bridge-сети",[66,67,72],"pre",{"className":68,"code":69,"language":70,"meta":71,"style":71},"language-bash shiki shiki-themes github-light github-dark","docker network create --driver bridge mynetwork\n","bash","",[35,73,74],{"__ignoreMap":71},[75,76,79,83,87,90,94,97],"span",{"class":77,"line":78},"line",1,[75,80,82],{"class":81},"sScJk","docker",[75,84,86],{"class":85},"sZZnC"," network",[75,88,89],{"class":85}," create",[75,91,93],{"class":92},"sj4cs"," --driver",[75,95,96],{"class":85}," bridge",[75,98,99],{"class":85}," mynetwork\n",[20,101,102,103,107,108,111],{},"Команда создаёт сеть с драйвером ",[104,105,106],"strong",{},"bridge",". Имя ",[35,109,110],{},"mynetwork"," будет использоваться для подключения контейнеров.",[61,113,115],{"id":114},"шаг-2-запуск-контейнера-в-новой-сети","Шаг 2: Запуск контейнера в новой сети",[66,117,119],{"className":68,"code":118,"language":70,"meta":71,"style":71},"docker run -d --network mynetwork --name webcontainer nginx\n",[35,120,121],{"__ignoreMap":71},[75,122,123,125,128,131,134,137,140,143],{"class":77,"line":78},[75,124,82],{"class":81},[75,126,127],{"class":85}," run",[75,129,130],{"class":92}," -d",[75,132,133],{"class":92}," --network",[75,135,136],{"class":85}," mynetwork",[75,138,139],{"class":92}," --name",[75,141,142],{"class":85}," webcontainer",[75,144,145],{"class":85}," nginx\n",[20,147,148,149,152,153,155],{},"Контейнер ",[35,150,151],{},"webcontainer"," присоединяется к сети ",[35,154,110],{}," и получает автоматический IP-адрес из подсети сети.",[157,158,159],"blockquote",{},[20,160,161,162,165,166,169],{},"⚠️ Важно: Если вам нужны статические IP-адреса, используйте ",[35,163,164],{},"--ip"," при создании сети: ",[35,167,168],{},"docker network create --driver bridge --subnet 172.20.0.0/16 mynetwork",".",[61,171,173],{"id":172},"шаг-3-маппинг-портов-хоста-к-контейнеру","Шаг 3: Маппинг портов хоста к контейнеру",[20,175,176],{},"Экспортируйте порт хоста в контейнер:",[66,178,180],{"className":68,"code":179,"language":70,"meta":71,"style":71},"docker run -d -p 8080:80 --network mynetwork --name webcontainer2 nginx\n",[35,181,182],{"__ignoreMap":71},[75,183,184,186,188,190,193,196,198,200,202,205],{"class":77,"line":78},[75,185,82],{"class":81},[75,187,127],{"class":85},[75,189,130],{"class":92},[75,191,192],{"class":92}," -p",[75,194,195],{"class":85}," 8080:80",[75,197,133],{"class":92},[75,199,136],{"class":85},[75,201,139],{"class":92},[75,203,204],{"class":85}," webcontainer2",[75,206,145],{"class":85},[20,208,209,210,169],{},"Теперь сервис в контейнере слушается на порту 80, а доступ к нему с хоста осуществляется через ",[35,211,212],{},"http://localhost:8080",[214,215],"in-article-ad",{},[61,217,219],{"id":218},"шаг-4-проверка-подключения","Шаг 4: Проверка подключения",[20,221,222],{},"Проверьте connectivity внутри контейнера:",[66,224,226],{"className":68,"code":225,"language":70,"meta":71,"style":71},"docker exec webcontainer curl -s http://localhost\n",[35,227,228],{"__ignoreMap":71},[75,229,230,232,235,237,240,243],{"class":77,"line":78},[75,231,82],{"class":81},[75,233,234],{"class":85}," exec",[75,236,142],{"class":85},[75,238,239],{"class":85}," curl",[75,241,242],{"class":92}," -s",[75,244,245],{"class":85}," http://localhost\n",[20,247,248],{},"На хосте убедитесь, что маппинг работает:",[66,250,252],{"className":68,"code":251,"language":70,"meta":71,"style":71},"curl -s http://localhost:8080\n",[35,253,254],{"__ignoreMap":71},[75,255,256,259,261],{"class":77,"line":78},[75,257,258],{"class":81},"curl",[75,260,242],{"class":92},[75,262,263],{"class":85}," http://localhost:8080\n",[20,265,266],{},"Если ответ содержит HTML-разметку Nginx, маппинг портов настроен корректно.",[15,268,270],{"id":269},"проверка-результата","Проверка результата",[28,272,273,279,285],{},[31,274,275,278],{},[35,276,277],{},"docker network ls"," — список всех сетей Docker.",[31,280,281,284],{},[35,282,283],{},"docker network inspect mynetwork"," — подробная информация о подсети, IP-адресах и драйвере.",[31,286,287,290],{},[35,288,289],{},"docker ps"," — отображает подключённые сети для каждого контейнера.",[15,292,294],{"id":293},"возможные-проблемы","Возможные проблемы",[28,296,297,308,322,331],{},[31,298,299,304,305,169],{},[104,300,301],{},[35,302,303],{},"Error response from daemon: address already in use"," – bridge-сеть с таким именем уже существует. Удалите её перед повторным созданием: ",[35,306,307],{},"docker network rm mynetwork",[31,309,310,313,314,317,318,321],{},[104,311,312],{},"Контейнер не может подключиться к сети"," – проверьте DNS в контейнере: ",[35,315,316],{},"docker exec webcontainer cat /etc/resolv.conf",". Убедитесь, что ",[35,319,320],{},"--dns"," не переопределяет DNS-сервер.",[31,323,324,327,328,169],{},[104,325,326],{},"Порт хоста занят"," – укажите другой свободный порт или остановите процесс, использующий порт: ",[35,329,330],{},"lsof -i :8080",[31,332,333,336,337,340,341,169],{},[104,334,335],{},"Контейнер не видит хост"," – bridge-сети Docker изолируют контейнеры по умолчанию. Для доступа к хосту используйте ",[35,338,339],{},"--network bridge"," и маппинг портов, либо добавьте специальный алиас в ",[35,342,343],{},"/etc/hosts",[20,345,346],{},"Следуйте этим шагам, и ваши Docker-контейнеры будут корректно взаимодействовать друг с другом и с внешним миром. Удачного использования Docker!",[348,349,350],"style",{},"html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":71,"searchDepth":352,"depth":352,"links":353},2,[354,355,356,363,364],{"id":17,"depth":352,"text":18},{"id":25,"depth":352,"text":26},{"id":58,"depth":352,"text":59,"children":357},[358,360,361,362],{"id":63,"depth":359,"text":64},3,{"id":114,"depth":359,"text":115},{"id":172,"depth":359,"text":173},{"id":218,"depth":359,"text":219},{"id":269,"depth":352,"text":270},{"id":293,"depth":352,"text":294},null,"2026-07-20 10:43:04","Пошаговое руководство по настройке сетей Docker на Linux: создание bridge-сетей, маппинг портов и подключение контейнеров. Узнайте, как быстро настроить Docker-сети за 5 минут.","medium",false,"5-10 мин","md",[373,376,379,382],{"question":374,"answer":375},"Как создать bridge-сеть в Docker?","Используйте команду `docker network create --driver bridge \u003Cимя_сети>`. Новая сеть будет доступна контейнерам, подключённым к ней.",{"question":377,"answer":378},"Как подключить контейнер к существующей bridge-сети?","При запуске контейнера укажите `--network \u003Cимя_сети>`. Например: `docker run -d --network mybridge nginx`.",{"question":380,"answer":381},"Что делать, если маппинг портов не работает?","Проверьте, что порт хоста не используется другим процессом, и что контейнер слушает на нужном интерфейсе. Используйте `docker port \u003Cконтейнер>` для проверки.",{"question":383,"answer":384},"Как проверить настройки сети Docker?","Выполните `docker network inspect \u003Cимя_сети>` для просмотра IP-адресов и настроек, а также `docker exec \u003Cконтейнер> ip link` внутри контейнера.",[386,389,392,395],{"name":387,"text":388},"Создание bridge-сети","Откройте терминал и выполните команду `docker network create --driver bridge mynetwork`. Команда создаст новую сеть с драйвером bridge и именем **mynetwork**.",{"name":390,"text":391},"Запуск контейнера в новой сети","Запустите контейнер, явно указав сеть: `docker run -d --network mynetwork --name webcontainer nginx`. Контейнер получит IP-адрес из подсети сети **mynetwork**.",{"name":393,"text":394},"Маппинг портов хоста к контейнеру","Экспортируйте порт 8080 хоста в контейнерский порт 80: `docker run -d -p 8080:80 --network mynetwork --name webcontainer nginx`. Теперь внешний трафик на `http://localhost:8080` поступает в контейнер.",{"name":396,"text":397},"Проверка подключения","Inside контейнера проверьте сетевое соединение: `docker exec webcontainer curl -s http://localhost`. На хосте убедитесь, что порт открыт: `curl -s http://localhost:8080`.","PT8M",[400,401,402,403,404,405,406,407,408],"Docker сеть настройка","Docker bridge сеть","маппинг портов Docker","подключение контейнера к сети Docker","Docker network bridge","Docker сети Linux","Docker network configuration","Docker bridge network","Docker port forwarding","ru_RU",{},true,"/guides/linux/docker-network-configuration","linux",[415,416,417],"/guides/linux/docker-installation","/guides/linux/docker-compose-networks","/guides/linux/docker-volume-management","Гайды Docker",{"title":5,"description":367},"guides/linux/docker-network-configuration","В этой статье вы узнаете, как создать и настроить Docker-сети, подключить к ним контейнеры и выполнить маппинг портов хоста. После выполнения инструкции ваши контейнеры будут правильно взаимодействовать друг с другом и с внешним миром.",[423,424,425,426,106,427],"Docker","Linux","сети","контейнеры","порты","guide","M-NWaYlyXAfviPbRHxfT0IP0Epoz_YQrvqQ0tfbGxyc",{"data":431,"body":432},{},{"type":433,"children":434},"root",[435],{"type":436,"tag":20,"props":437,"children":438},"element",{},[439,442,448],{"type":440,"value":441},"text","Используйте команду ",{"type":436,"tag":35,"props":443,"children":445},{"className":444},[],[446],{"type":440,"value":447},"docker network create --driver bridge \u003Cимя_сети>",{"type":440,"value":449},". Новая сеть будет доступна контейнерам, подключённым к ней.",{"data":451,"body":452},{},{"type":433,"children":453},[454],{"type":436,"tag":20,"props":455,"children":456},{},[457,459,465,467,473],{"type":440,"value":458},"При запуске контейнера укажите ",{"type":436,"tag":35,"props":460,"children":462},{"className":461},[],[463],{"type":440,"value":464},"--network \u003Cимя_сети>",{"type":440,"value":466},". Например: ",{"type":436,"tag":35,"props":468,"children":470},{"className":469},[],[471],{"type":440,"value":472},"docker run -d --network mybridge nginx",{"type":440,"value":169},{"data":475,"body":476},{},{"type":433,"children":477},[478],{"type":436,"tag":20,"props":479,"children":480},{},[481,483,489],{"type":440,"value":482},"Проверьте, что порт хоста не используется другим процессом, и что контейнер слушает на нужном интерфейсе. Используйте ",{"type":436,"tag":35,"props":484,"children":486},{"className":485},[],[487],{"type":440,"value":488},"docker port \u003Cконтейнер>",{"type":440,"value":490}," для проверки.",{"data":492,"body":493},{},{"type":433,"children":494},[495],{"type":436,"tag":20,"props":496,"children":497},{},[498,500,506,508,514],{"type":440,"value":499},"Выполните ",{"type":436,"tag":35,"props":501,"children":503},{"className":502},[],[504],{"type":440,"value":505},"docker network inspect \u003Cимя_сети>",{"type":440,"value":507}," для просмотра IP-адресов и настроек, а также ",{"type":436,"tag":35,"props":509,"children":511},{"className":510},[],[512],{"type":440,"value":513},"docker exec \u003Cконтейнер> ip link",{"type":440,"value":515}," внутри контейнера.",{"data":517,"body":518},{},{"type":433,"children":519},[520],{"type":436,"tag":20,"props":521,"children":522},{},[523,525,531,533,537],{"type":440,"value":524},"Откройте терминал и выполните команду ",{"type":436,"tag":35,"props":526,"children":528},{"className":527},[],[529],{"type":440,"value":530},"docker network create --driver bridge mynetwork",{"type":440,"value":532},". Команда создаст новую сеть с драйвером bridge и именем ",{"type":436,"tag":104,"props":534,"children":535},{},[536],{"type":440,"value":110},{"type":440,"value":169},{"data":539,"body":540},{},{"type":433,"children":541},[542],{"type":436,"tag":20,"props":543,"children":544},{},[545,547,553,555,559],{"type":440,"value":546},"Запустите контейнер, явно указав сеть: ",{"type":436,"tag":35,"props":548,"children":550},{"className":549},[],[551],{"type":440,"value":552},"docker run -d --network mynetwork --name webcontainer nginx",{"type":440,"value":554},". Контейнер получит IP-адрес из подсети сети ",{"type":436,"tag":104,"props":556,"children":557},{},[558],{"type":440,"value":110},{"type":440,"value":169},{"data":561,"body":562},{},{"type":433,"children":563},[564],{"type":436,"tag":20,"props":565,"children":566},{},[567,569,575,577,582],{"type":440,"value":568},"Экспортируйте порт 8080 хоста в контейнерский порт 80: ",{"type":436,"tag":35,"props":570,"children":572},{"className":571},[],[573],{"type":440,"value":574},"docker run -d -p 8080:80 --network mynetwork --name webcontainer nginx",{"type":440,"value":576},". Теперь внешний трафик на ",{"type":436,"tag":35,"props":578,"children":580},{"className":579},[],[581],{"type":440,"value":212},{"type":440,"value":583}," поступает в контейнер.",{"data":585,"body":586},{},{"type":433,"children":587},[588],{"type":436,"tag":20,"props":589,"children":590},{},[591,593,599,601,607],{"type":440,"value":592},"Inside контейнера проверьте сетевое соединение: ",{"type":436,"tag":35,"props":594,"children":596},{"className":595},[],[597],{"type":440,"value":598},"docker exec webcontainer curl -s http://localhost",{"type":440,"value":600},". На хосте убедитесь, что порт открыт: ",{"type":436,"tag":35,"props":602,"children":604},{"className":603},[],[605],{"type":440,"value":606},"curl -s http://localhost:8080",{"type":440,"value":169},[609,1790],{"id":610,"title":611,"appliesTo":612,"author":10,"body":619,"canonical":365,"code":365,"createdAt":1730,"description":1731,"difficulty":1732,"draft":369,"estimatedTime":1733,"extension":371,"faq":1734,"howToSteps":1747,"howToTotalTime":1763,"image":365,"keywords":1764,"locale":409,"meta":1775,"navigation":411,"path":415,"platform":413,"related":1776,"section":418,"seo":1780,"severity":365,"stem":1781,"summary":1782,"tags":1783,"twitterCreator":365,"twitterSite":365,"type":428,"updatedAt":1730,"__hash__":1789},"content_ru/guides/linux/docker-installation.md","Установите Docker на Linux: пошаговая инструкция для Ubuntu, CentOS и других",[613,614,615,616,617,618],"Ubuntu 20.04/22.04/24.04","Debian 11/12","CentOS 7/8","RHEL 8/9","Fedora 35+","Arch Linux",{"type":12,"value":620,"toc":1703},[621,625,628,632,635,667,671,678,758,760,763,767,772,983,987,1037,1041,1048,1136,1139,1189,1193,1236,1240,1244,1321,1333,1337,1365,1367,1370,1404,1406,1410,1418,1423,1467,1474,1479,1493,1529,1536,1544,1549,1561,1568,1576,1584,1586,1590,1594,1601,1637,1643,1647,1654,1658,1661,1690,1700],[15,622,624],{"id":623},"введение-зачем-это-нужно","Введение / Зачем это нужно",[20,626,627],{},"Docker — это платформа для контейнеризации, которая позволяет упаковывать приложения и их зависимости в изолированные окружения. Установка Docker на Linux — это первый шаг к разработке, тестированию и развёртыванию современных облачных приложений. После выполнения этого гайда вы сможете запускать контейнеры, создавать образы и использовать весь экосистемный инструментарий Docker.",[15,629,631],{"id":630},"требования-подготовка","Требования / Подготовка",[20,633,634],{},"Перед началом убедитесь, что:",[28,636,637,643,646,653],{},[31,638,639,640,642],{},"У вас есть доступ к учётной записи с правами ",[104,641,44],{}," (или root).",[31,644,645],{},"Система подключена к интернету для загрузки пакетов.",[31,647,648,649,652],{},"Дистрибутив поддерживается Docker (список см. в ",[35,650,651],{},"appliesTo"," выше).",[31,654,655,656,658,659,662,663,666],{},"Установлены базовые утилиты: ",[35,657,258],{},", ",[35,660,661],{},"gnupg"," (для Ubuntu/Debian) или ",[35,664,665],{},"yum-utils"," (для CentOS/RHEL).",[61,668,670],{"id":669},"удаление-конфликтующих-пакетов-опционально","Удаление конфликтующих пакетов (опционально)",[20,672,673,674,677],{},"Если на системе ранее устанавливался Docker из репозитория дистрибутива (например, пакет ",[35,675,676],{},"docker.io","), удалите его:",[66,679,681],{"className":68,"code":680,"language":70,"meta":71,"style":71},"# Для Ubuntu/Debian\nsudo apt-get remove docker docker-engine docker.io containerd runc\n\n# Для CentOS/RHEL/Fedora\nsudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine\n",[35,682,683,689,714,719,725],{"__ignoreMap":71},[75,684,685],{"class":77,"line":78},[75,686,688],{"class":687},"sJ8bj","# Для Ubuntu/Debian\n",[75,690,691,693,696,699,702,705,708,711],{"class":77,"line":352},[75,692,44],{"class":81},[75,694,695],{"class":85}," apt-get",[75,697,698],{"class":85}," remove",[75,700,701],{"class":85}," docker",[75,703,704],{"class":85}," docker-engine",[75,706,707],{"class":85}," docker.io",[75,709,710],{"class":85}," containerd",[75,712,713],{"class":85}," runc\n",[75,715,716],{"class":77,"line":359},[75,717,718],{"emptyLinePlaceholder":411},"\n",[75,720,722],{"class":77,"line":721},4,[75,723,724],{"class":687},"# Для CentOS/RHEL/Fedora\n",[75,726,728,730,733,735,737,740,743,746,749,752,755],{"class":77,"line":727},5,[75,729,44],{"class":81},[75,731,732],{"class":85}," yum",[75,734,698],{"class":85},[75,736,701],{"class":85},[75,738,739],{"class":85}," docker-client",[75,741,742],{"class":85}," docker-client-latest",[75,744,745],{"class":85}," docker-common",[75,747,748],{"class":85}," docker-latest",[75,750,751],{"class":85}," docker-latest-logrotate",[75,753,754],{"class":85}," docker-logrotate",[75,756,757],{"class":85}," docker-engine\n",[15,759,59],{"id":58},[20,761,762],{},"Инструкции различаются в зависимости от дистрибутива. Выберите соответствующий раздел.",[61,764,766],{"id":765},"для-ubuntu-debian","Для Ubuntu / Debian",[768,769,771],"h4",{"id":770},"шаг-1-установка-зависимостей-и-добавление-репозитория","Шаг 1: Установка зависимостей и добавление репозитория",[66,773,775],{"className":68,"code":774,"language":70,"meta":71,"style":71},"# Обновление индекса пакетов\nsudo apt-get update\n\n# Установка необходимых пакетов для работы с HTTPS-репозиториями\nsudo apt-get install ca-certificates curl gnupg\n\n# Создание директории для ключей (если её нет)\nsudo install -m 0755 -d /etc/apt/keyrings\n\n# Импорт GPG-ключа Docker (официальный метод)\ncurl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg\nsudo chmod a+r /etc/apt/keyrings/docker.gpg\n\n# Добавление репозитория Docker (замените `jammy` на вашу версию, например `focal`, `noble`)\necho \\\n  \"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \\\n  $(. /etc/os-release && echo \"$VERSION_CODENAME\") stable\" | \\\n  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null\n",[35,776,777,782,791,795,800,817,822,828,846,851,857,887,900,905,911,920,938,965],{"__ignoreMap":71},[75,778,779],{"class":77,"line":78},[75,780,781],{"class":687},"# Обновление индекса пакетов\n",[75,783,784,786,788],{"class":77,"line":352},[75,785,44],{"class":81},[75,787,695],{"class":85},[75,789,790],{"class":85}," update\n",[75,792,793],{"class":77,"line":359},[75,794,718],{"emptyLinePlaceholder":411},[75,796,797],{"class":77,"line":721},[75,798,799],{"class":687},"# Установка необходимых пакетов для работы с HTTPS-репозиториями\n",[75,801,802,804,806,809,812,814],{"class":77,"line":727},[75,803,44],{"class":81},[75,805,695],{"class":85},[75,807,808],{"class":85}," install",[75,810,811],{"class":85}," ca-certificates",[75,813,239],{"class":85},[75,815,816],{"class":85}," gnupg\n",[75,818,820],{"class":77,"line":819},6,[75,821,718],{"emptyLinePlaceholder":411},[75,823,825],{"class":77,"line":824},7,[75,826,827],{"class":687},"# Создание директории для ключей (если её нет)\n",[75,829,831,833,835,838,841,843],{"class":77,"line":830},8,[75,832,44],{"class":81},[75,834,808],{"class":85},[75,836,837],{"class":92}," -m",[75,839,840],{"class":92}," 0755",[75,842,130],{"class":92},[75,844,845],{"class":85}," /etc/apt/keyrings\n",[75,847,849],{"class":77,"line":848},9,[75,850,718],{"emptyLinePlaceholder":411},[75,852,854],{"class":77,"line":853},10,[75,855,856],{"class":687},"# Импорт GPG-ключа Docker (официальный метод)\n",[75,858,860,862,865,868,872,875,878,881,884],{"class":77,"line":859},11,[75,861,258],{"class":81},[75,863,864],{"class":92}," -fsSL",[75,866,867],{"class":85}," https://download.docker.com/linux/ubuntu/gpg",[75,869,871],{"class":870},"szBVR"," |",[75,873,874],{"class":81}," sudo",[75,876,877],{"class":85}," gpg",[75,879,880],{"class":92}," --dearmor",[75,882,883],{"class":92}," -o",[75,885,886],{"class":85}," /etc/apt/keyrings/docker.gpg\n",[75,888,890,892,895,898],{"class":77,"line":889},12,[75,891,44],{"class":81},[75,893,894],{"class":85}," chmod",[75,896,897],{"class":85}," a+r",[75,899,886],{"class":85},[75,901,903],{"class":77,"line":902},13,[75,904,718],{"emptyLinePlaceholder":411},[75,906,908],{"class":77,"line":907},14,[75,909,910],{"class":687},"# Добавление репозитория Docker (замените `jammy` на вашу версию, например `focal`, `noble`)\n",[75,912,914,917],{"class":77,"line":913},15,[75,915,916],{"class":92},"echo",[75,918,919],{"class":92}," \\\n",[75,921,923,926,929,932,935],{"class":77,"line":922},16,[75,924,925],{"class":85},"  \"deb [arch=$(",[75,927,928],{"class":81},"dpkg",[75,930,931],{"class":92}," --print-architecture",[75,933,934],{"class":85},") signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu ",[75,936,937],{"class":92},"\\\n",[75,939,941,944,946,949,951,954,958,961,963],{"class":77,"line":940},17,[75,942,943],{"class":85},"  $(",[75,945,169],{"class":92},[75,947,948],{"class":85}," /etc/os-release && ",[75,950,916],{"class":92},[75,952,953],{"class":85}," \"",[75,955,957],{"class":956},"sVt8B","$VERSION_CODENAME",[75,959,960],{"class":85},"\") stable\"",[75,962,871],{"class":870},[75,964,919],{"class":92},[75,966,968,971,974,977,980],{"class":77,"line":967},18,[75,969,970],{"class":81},"  sudo",[75,972,973],{"class":85}," tee",[75,975,976],{"class":85}," /etc/apt/sources.list.d/docker.list",[75,978,979],{"class":870}," >",[75,981,982],{"class":85}," /dev/null\n",[768,984,986],{"id":985},"шаг-2-установка-docker-engine","Шаг 2: Установка Docker Engine",[66,988,990],{"className":68,"code":989,"language":70,"meta":71,"style":71},"# Обновление кэша пакетов с нового репозитория\nsudo apt-get update\n\n# Установка последней версии Docker и зависимостей\nsudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin\n",[35,991,992,997,1005,1009,1014],{"__ignoreMap":71},[75,993,994],{"class":77,"line":78},[75,995,996],{"class":687},"# Обновление кэша пакетов с нового репозитория\n",[75,998,999,1001,1003],{"class":77,"line":352},[75,1000,44],{"class":81},[75,1002,695],{"class":85},[75,1004,790],{"class":85},[75,1006,1007],{"class":77,"line":359},[75,1008,718],{"emptyLinePlaceholder":411},[75,1010,1011],{"class":77,"line":721},[75,1012,1013],{"class":687},"# Установка последней версии Docker и зависимостей\n",[75,1015,1016,1018,1020,1022,1025,1028,1031,1034],{"class":77,"line":727},[75,1017,44],{"class":81},[75,1019,695],{"class":85},[75,1021,808],{"class":85},[75,1023,1024],{"class":85}," docker-ce",[75,1026,1027],{"class":85}," docker-ce-cli",[75,1029,1030],{"class":85}," containerd.io",[75,1032,1033],{"class":85}," docker-buildx-plugin",[75,1035,1036],{"class":85}," docker-compose-plugin\n",[61,1038,1040],{"id":1039},"для-centos-rhel-fedora","Для CentOS / RHEL / Fedora",[768,1042,1044,1045,1047],{"id":1043},"шаг-1-установка-yum-utils-и-добавление-репозитория","Шаг 1: Установка ",[35,1046,665],{}," и добавление репозитория",[66,1049,1051],{"className":68,"code":1050,"language":70,"meta":71,"style":71},"# Для CentOS/RHEL 7/8\nsudo yum install -y yum-utils\n\n# Для Fedora (использует dnf)\nsudo dnf install -y dnf-plugins-core\n\n# Добавление стабильного репозитория Docker\nsudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo\n# Или для Fedora:\nsudo dnf config-manager --add-repo https://download.docker.com/linux/fedora/docker-ce.repo\n",[35,1052,1053,1058,1072,1076,1081,1095,1099,1104,1117,1122],{"__ignoreMap":71},[75,1054,1055],{"class":77,"line":78},[75,1056,1057],{"class":687},"# Для CentOS/RHEL 7/8\n",[75,1059,1060,1062,1064,1066,1069],{"class":77,"line":352},[75,1061,44],{"class":81},[75,1063,732],{"class":85},[75,1065,808],{"class":85},[75,1067,1068],{"class":92}," -y",[75,1070,1071],{"class":85}," yum-utils\n",[75,1073,1074],{"class":77,"line":359},[75,1075,718],{"emptyLinePlaceholder":411},[75,1077,1078],{"class":77,"line":721},[75,1079,1080],{"class":687},"# Для Fedora (использует dnf)\n",[75,1082,1083,1085,1088,1090,1092],{"class":77,"line":727},[75,1084,44],{"class":81},[75,1086,1087],{"class":85}," dnf",[75,1089,808],{"class":85},[75,1091,1068],{"class":92},[75,1093,1094],{"class":85}," dnf-plugins-core\n",[75,1096,1097],{"class":77,"line":819},[75,1098,718],{"emptyLinePlaceholder":411},[75,1100,1101],{"class":77,"line":824},[75,1102,1103],{"class":687},"# Добавление стабильного репозитория Docker\n",[75,1105,1106,1108,1111,1114],{"class":77,"line":830},[75,1107,44],{"class":81},[75,1109,1110],{"class":85}," yum-config-manager",[75,1112,1113],{"class":92}," --add-repo",[75,1115,1116],{"class":85}," https://download.docker.com/linux/centos/docker-ce.repo\n",[75,1118,1119],{"class":77,"line":848},[75,1120,1121],{"class":687},"# Или для Fedora:\n",[75,1123,1124,1126,1128,1131,1133],{"class":77,"line":853},[75,1125,44],{"class":81},[75,1127,1087],{"class":85},[75,1129,1130],{"class":85}," config-manager",[75,1132,1113],{"class":92},[75,1134,1135],{"class":85}," https://download.docker.com/linux/fedora/docker-ce.repo\n",[768,1137,986],{"id":1138},"шаг-2-установка-docker-engine-1",[66,1140,1142],{"className":68,"code":1141,"language":70,"meta":71,"style":71},"# Установка последней версии (для CentOS/RHEL/Fedora)\nsudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin\n\n# Если yum сообщает о конфликтах, можно попробовать:\nsudo yum install docker-ce --allowerasing\n",[35,1143,1144,1149,1167,1171,1176],{"__ignoreMap":71},[75,1145,1146],{"class":77,"line":78},[75,1147,1148],{"class":687},"# Установка последней версии (для CentOS/RHEL/Fedora)\n",[75,1150,1151,1153,1155,1157,1159,1161,1163,1165],{"class":77,"line":352},[75,1152,44],{"class":81},[75,1154,732],{"class":85},[75,1156,808],{"class":85},[75,1158,1024],{"class":85},[75,1160,1027],{"class":85},[75,1162,1030],{"class":85},[75,1164,1033],{"class":85},[75,1166,1036],{"class":85},[75,1168,1169],{"class":77,"line":359},[75,1170,718],{"emptyLinePlaceholder":411},[75,1172,1173],{"class":77,"line":721},[75,1174,1175],{"class":687},"# Если yum сообщает о конфликтах, можно попробовать:\n",[75,1177,1178,1180,1182,1184,1186],{"class":77,"line":727},[75,1179,44],{"class":81},[75,1181,732],{"class":85},[75,1183,808],{"class":85},[75,1185,1024],{"class":85},[75,1187,1188],{"class":92}," --allowerasing\n",[61,1190,1192],{"id":1191},"для-arch-linux","Для Arch Linux",[66,1194,1196],{"className":68,"code":1195,"language":70,"meta":71,"style":71},"# Установка из официальных репозиториев Arch\nsudo pacman -S docker\n\n# Дополнительно можно установить docker-compose (если нужен отдельный пакет)\nsudo pacman -S docker-compose\n",[35,1197,1198,1203,1216,1220,1225],{"__ignoreMap":71},[75,1199,1200],{"class":77,"line":78},[75,1201,1202],{"class":687},"# Установка из официальных репозиториев Arch\n",[75,1204,1205,1207,1210,1213],{"class":77,"line":352},[75,1206,44],{"class":81},[75,1208,1209],{"class":85}," pacman",[75,1211,1212],{"class":92}," -S",[75,1214,1215],{"class":85}," docker\n",[75,1217,1218],{"class":77,"line":359},[75,1219,718],{"emptyLinePlaceholder":411},[75,1221,1222],{"class":77,"line":721},[75,1223,1224],{"class":687},"# Дополнительно можно установить docker-compose (если нужен отдельный пакет)\n",[75,1226,1227,1229,1231,1233],{"class":77,"line":727},[75,1228,44],{"class":81},[75,1230,1209],{"class":85},[75,1232,1212],{"class":92},[75,1234,1235],{"class":85}," docker-compose\n",[61,1237,1239],{"id":1238},"общие-шаги-для-всех-дистрибутивов","Общие шаги для всех дистрибутивов",[768,1241,1243],{"id":1242},"шаг-3-настройка-прав-доступа-и-запуск-сервиса","Шаг 3: Настройка прав доступа и запуск сервиса",[66,1245,1247],{"className":68,"code":1246,"language":70,"meta":71,"style":71},"# Добавление текущего пользователя в группу `docker` (чтобы не использовать sudo)\nsudo usermod -aG docker $USER\n\n# Запуск демона Docker и включение автозагрузки\nsudo systemctl start docker\nsudo systemctl enable docker\n\n# Проверка статуса (должен быть `active (running)`)\nsudo systemctl status docker\n",[35,1248,1249,1254,1269,1273,1278,1290,1301,1305,1310],{"__ignoreMap":71},[75,1250,1251],{"class":77,"line":78},[75,1252,1253],{"class":687},"# Добавление текущего пользователя в группу `docker` (чтобы не использовать sudo)\n",[75,1255,1256,1258,1261,1264,1266],{"class":77,"line":352},[75,1257,44],{"class":81},[75,1259,1260],{"class":85}," usermod",[75,1262,1263],{"class":92}," -aG",[75,1265,701],{"class":85},[75,1267,1268],{"class":956}," $USER\n",[75,1270,1271],{"class":77,"line":359},[75,1272,718],{"emptyLinePlaceholder":411},[75,1274,1275],{"class":77,"line":721},[75,1276,1277],{"class":687},"# Запуск демона Docker и включение автозагрузки\n",[75,1279,1280,1282,1285,1288],{"class":77,"line":727},[75,1281,44],{"class":81},[75,1283,1284],{"class":85}," systemctl",[75,1286,1287],{"class":85}," start",[75,1289,1215],{"class":85},[75,1291,1292,1294,1296,1299],{"class":77,"line":819},[75,1293,44],{"class":81},[75,1295,1284],{"class":85},[75,1297,1298],{"class":85}," enable",[75,1300,1215],{"class":85},[75,1302,1303],{"class":77,"line":824},[75,1304,718],{"emptyLinePlaceholder":411},[75,1306,1307],{"class":77,"line":830},[75,1308,1309],{"class":687},"# Проверка статуса (должен быть `active (running)`)\n",[75,1311,1312,1314,1316,1319],{"class":77,"line":848},[75,1313,44],{"class":81},[75,1315,1284],{"class":85},[75,1317,1318],{"class":85}," status",[75,1320,1215],{"class":85},[157,1322,1323],{},[20,1324,1325,1326,1329,1330,169],{},"⚠️ ",[104,1327,1328],{},"Важно:"," Изменения группы вступят в силу после выхода и повторного входа в систему или выполнения ",[35,1331,1332],{},"newgrp docker",[768,1334,1336],{"id":1335},"шаг-4-проверка-установки","Шаг 4: Проверка установки",[66,1338,1340],{"className":68,"code":1339,"language":70,"meta":71,"style":71},"# Загрузка и запуск тестового контейнера `hello-world`\ndocker run hello-world\n\n# Ожидаемый вывод: сообщение об успешной загрузке образа и приветствие.\n",[35,1341,1342,1347,1356,1360],{"__ignoreMap":71},[75,1343,1344],{"class":77,"line":78},[75,1345,1346],{"class":687},"# Загрузка и запуск тестового контейнера `hello-world`\n",[75,1348,1349,1351,1353],{"class":77,"line":352},[75,1350,82],{"class":81},[75,1352,127],{"class":85},[75,1354,1355],{"class":85}," hello-world\n",[75,1357,1358],{"class":77,"line":359},[75,1359,718],{"emptyLinePlaceholder":411},[75,1361,1362],{"class":77,"line":721},[75,1363,1364],{"class":687},"# Ожидаемый вывод: сообщение об успешной загрузке образа и приветствие.\n",[15,1366,270],{"id":269},[20,1368,1369],{},"Успешная установка подтверждается:",[1371,1372,1373,1380,1386,1396],"ol",{},[31,1374,1375,1376,1379],{},"Команда ",[35,1377,1378],{},"docker version"," показывает клиентскую и серверную версии без ошибок.",[31,1381,148,1382,1385],{},[35,1383,1384],{},"hello-world"," запускается и выводит приветственное сообщение.",[31,1387,1388,1389,1392,1393,169],{},"Демон Docker активен: ",[35,1390,1391],{},"sudo systemctl is-active docker"," возвращает ",[35,1394,1395],{},"active",[31,1397,1398,1399,1401,1402,169],{},"Текущий пользователь может выполнять ",[35,1400,289],{}," без ",[35,1403,44],{},[15,1405,294],{"id":293},[61,1407,1409],{"id":1408},"ошибка-cannot-connect-to-the-docker-daemon-at-unixvarrundockersock-is-the-docker-daemon-running","Ошибка: \"Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?\"",[20,1411,1412,1415,1416,169],{},[104,1413,1414],{},"Причина:"," Демон Docker не запущен или текущий пользователь не в группе ",[35,1417,82],{},[20,1419,1420],{},[104,1421,1422],{},"Решение:",[66,1424,1426],{"className":68,"code":1425,"language":70,"meta":71,"style":71},"sudo systemctl start docker\n# Добавьте пользователя в группу, если ещё не делали\nsudo usermod -aG docker $USER\n# Перезайдите в систему или выполните:\nnewgrp docker\n",[35,1427,1428,1438,1443,1455,1460],{"__ignoreMap":71},[75,1429,1430,1432,1434,1436],{"class":77,"line":78},[75,1431,44],{"class":81},[75,1433,1284],{"class":85},[75,1435,1287],{"class":85},[75,1437,1215],{"class":85},[75,1439,1440],{"class":77,"line":352},[75,1441,1442],{"class":687},"# Добавьте пользователя в группу, если ещё не делали\n",[75,1444,1445,1447,1449,1451,1453],{"class":77,"line":359},[75,1446,44],{"class":81},[75,1448,1260],{"class":85},[75,1450,1263],{"class":92},[75,1452,701],{"class":85},[75,1454,1268],{"class":956},[75,1456,1457],{"class":77,"line":721},[75,1458,1459],{"class":687},"# Перезайдите в систему или выполните:\n",[75,1461,1462,1465],{"class":77,"line":727},[75,1463,1464],{"class":81},"newgrp",[75,1466,1215],{"class":85},[61,1468,1470,1471],{"id":1469},"ошибка-gpg-ключ-не-найден-или-no_pubkey","Ошибка: GPG-ключ не найден или ",[35,1472,1473],{},"NO_PUBKEY",[20,1475,1476,1478],{},[104,1477,1414],{}," Не установлен или не добавлен ключ репозитория Docker.",[20,1480,1481,1484,1485,1488,1489,1492],{},[104,1482,1483],{},"Решение (Ubuntu/Debian):"," Убедитесь, что ключ скопирован в ",[35,1486,1487],{},"/etc/apt/keyrings/docker.gpg"," и имеет права ",[35,1490,1491],{},"a+r",". Для старых версий (до Ubuntu 22.04) может потребоваться:",[66,1494,1496],{"className":68,"code":1495,"language":70,"meta":71,"style":71},"sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys \u003CID_ключа>\n",[35,1497,1498],{"__ignoreMap":71},[75,1499,1500,1502,1505,1508,1511,1514,1517,1520,1523,1526],{"class":77,"line":78},[75,1501,44],{"class":81},[75,1503,1504],{"class":85}," apt-key",[75,1506,1507],{"class":85}," adv",[75,1509,1510],{"class":92}," --keyserver",[75,1512,1513],{"class":85}," keyserver.ubuntu.com",[75,1515,1516],{"class":92}," --recv-keys",[75,1518,1519],{"class":870}," \u003C",[75,1521,1522],{"class":85},"ID_ключ",[75,1524,1525],{"class":956},"а",[75,1527,1528],{"class":870},">\n",[20,1530,1531,1532,1535],{},"Но метод с ",[35,1533,1534],{},"/etc/apt/keyrings"," предпочтительнее.",[61,1537,1539,1540,1543],{"id":1538},"ошибка-error-failed-to-solve-при-попытке-запуска","Ошибка: ",[35,1541,1542],{},"Error: failed to solve: ..."," при попытке запуска",[20,1545,1546,1548],{},[104,1547,1414],{}," Недостаточно места на диске или проблемы с сетью при загрузке образа.",[20,1550,1551,1553,1554,1557,1558,169],{},[104,1552,1422],{}," Проверьте свободное место (",[35,1555,1556],{},"df -h",") и подключение к Docker Hub. Можно попробовать очистить старые образы: ",[35,1559,1560],{},"docker system prune -a",[61,1562,1564,1565],{"id":1563},"конфликт-версий-containerd","Конфликт версий ",[35,1566,1567],{},"containerd",[20,1569,1570,1572,1573,1575],{},[104,1571,1414],{}," В некоторых дистрибутивах (особенно CentOS 7) предустановленная версия ",[35,1574,1567],{}," слишком старая.",[20,1577,1578,1580,1581,1583],{},[104,1579,1422],{}," Удалите системный ",[35,1582,1567],{}," перед установкой Docker (он будет установлен как зависимость). Или используйте официальный скрипт Docker для ручной установки.",[214,1585],{},[15,1587,1589],{"id":1588},"дополнительные-настройки-опционально","Дополнительные настройки (опционально)",[61,1591,1593],{"id":1592},"настройка-dns-для-контейнеров","Настройка DNS для контейнеров",[20,1595,1596,1597,1600],{},"Если контейнеры не могут разрешать имена, отредактируйте ",[35,1598,1599],{},"/etc/docker/daemon.json",":",[66,1602,1606],{"className":1603,"code":1604,"language":1605,"meta":71,"style":71},"language-json shiki shiki-themes github-light github-dark","{\n  \"dns\": [\"8.8.8.8\", \"1.1.1.1\"]\n}\n","json",[35,1607,1608,1613,1632],{"__ignoreMap":71},[75,1609,1610],{"class":77,"line":78},[75,1611,1612],{"class":956},"{\n",[75,1614,1615,1618,1621,1624,1626,1629],{"class":77,"line":352},[75,1616,1617],{"class":92},"  \"dns\"",[75,1619,1620],{"class":956},": [",[75,1622,1623],{"class":85},"\"8.8.8.8\"",[75,1625,658],{"class":956},[75,1627,1628],{"class":85},"\"1.1.1.1\"",[75,1630,1631],{"class":956},"]\n",[75,1633,1634],{"class":77,"line":359},[75,1635,1636],{"class":956},"}\n",[20,1638,1639,1640,169],{},"После изменений перезапустите демон: ",[35,1641,1642],{},"sudo systemctl restart docker",[61,1644,1646],{"id":1645},"увеличение-размеров-образов-для-production","Увеличение размеров образов (для production)",[20,1648,1649,1650,1653],{},"Для продакшн-сред рекомендуется настройка драйвера хранения (например, ",[35,1651,1652],{},"overlay2",") и лимитов ресурсов. См. официальную документацию Docker по настройке демона.",[15,1655,1657],{"id":1656},"заключительные-рекомендации","Заключительные рекомендации",[20,1659,1660],{},"Теперь, когда Docker установлен, вы можете:",[1371,1662,1663,1677,1684],{},[31,1664,1665,1666,658,1669,658,1672,658,1674,169],{},"Изучить базовые команды: ",[35,1667,1668],{},"docker pull",[35,1670,1671],{},"docker run",[35,1673,289],{},[35,1675,1676],{},"docker exec",[31,1678,1679,1680,1683],{},"Написать свой первый ",[35,1681,1682],{},"Dockerfile"," и собрать образ.",[31,1685,1686,1687,38],{},"Установить Docker Compose для оркестрации многоконтейнерных приложений (входит в пакет ",[35,1688,1689],{},"docker-compose-plugin",[20,1691,1692,1693,658,1696,1699],{},"Для обновления Docker в будущем используйте стандартный менеджер пакетов (",[35,1694,1695],{},"apt upgrade",[35,1697,1698],{},"yum update","). Регулярно проверяйте обновления безопасности.",[348,1701,1702],{},"html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}",{"title":71,"searchDepth":352,"depth":352,"links":1704},[1705,1706,1709,1715,1716,1725,1729],{"id":623,"depth":352,"text":624},{"id":630,"depth":352,"text":631,"children":1707},[1708],{"id":669,"depth":359,"text":670},{"id":58,"depth":352,"text":59,"children":1710},[1711,1712,1713,1714],{"id":765,"depth":359,"text":766},{"id":1039,"depth":359,"text":1040},{"id":1191,"depth":359,"text":1192},{"id":1238,"depth":359,"text":1239},{"id":269,"depth":352,"text":270},{"id":293,"depth":352,"text":294,"children":1717},[1718,1719,1721,1723],{"id":1408,"depth":359,"text":1409},{"id":1469,"depth":359,"text":1720},"Ошибка: GPG-ключ не найден или NO_PUBKEY",{"id":1538,"depth":359,"text":1722},"Ошибка: Error: failed to solve: ... при попытке запуска",{"id":1563,"depth":359,"text":1724},"Конфликт версий containerd",{"id":1588,"depth":352,"text":1589,"children":1726},[1727,1728],{"id":1592,"depth":359,"text":1593},{"id":1645,"depth":359,"text":1646},{"id":1656,"depth":352,"text":1657},"2026-02-16 13:46:05","Полное руководство по установке Docker на любом дистрибутиве Linux. Официальные репозитории, настройка прав и проверка работы за 15 минут.","easy","15-30 мин",[1735,1738,1741,1744],{"question":1736,"answer":1737},"Почему Docker требует sudo для каждой команды?","По умолчанию только root и пользователи в группе `docker` могут управлять демоном. Добавьте текущего пользователя в группу `docker` и перезайдите в систему, чтобы работать без sudo.",{"question":1739,"answer":1740},"Что делать, если при добавлении GPG-ключа возникает ошибка?","Убедитесь, что пакет `curl` или `gnupg` установлен. На старых дистрибутивах может потребоваться использовать `apt-key` (устарел) или вручную скачать ключ.",{"question":1742,"answer":1743},"Можно ли установить Docker на Raspberry Pi с Linux?","Да, но нужно использовать версию Docker для архитектуры ARM. Установите пакет `docker.io` из репозитория дистрибутива или используйте официальный скрипт для ARM.",{"question":1745,"answer":1746},"Как полностью удалить Docker перед переустановкой?","Выполните: `sudo apt-get purge docker-ce docker-ce-cli containerd.io` (для Ubuntu/Debian) или `sudo yum remove docker-ce` (для CentOS/RHEL), затем удалите файлы в `/var/lib/docker`.",[1748,1751,1754,1757,1760],{"name":1749,"text":1750},"Подготовьте систему и удалите старые версии Docker","Обновите кэш пакетов и удалите конфликтующие пакеты Docker, если они есть. Это гарантирует чистую установку.",{"name":1752,"text":1753},"Добавьте официальный репозиторий Docker","Импортируйте GPG-ключ Docker и добавьте стабильный репозиторий, соответствующий вашему дистрибутиву.",{"name":1755,"text":1756},"Установите Docker Engine и вспомогательные компоненты","Установите пакеты `docker-ce`, `docker-ce-cli` и `containerd.io` через менеджер пакетов вашего дистрибутива.",{"name":1758,"text":1759},"Настройте права доступа и запустите сервис","Добавьте текущего пользователя в группу `docker`, затем запустите и включите автозагрузку демона Docker.",{"name":1761,"text":1762},"Проверьте работоспособность установки","Выполните команду `docker run hello-world` для проверки связи с демоном и корректности настройки.","PT30M",[1765,1766,1767,1768,1769,1770,1771,1772,1773,1774],"установка docker на linux","docker engine установка ubuntu","как установить docker на centos","docker linux инструкция","установка docker через терминал","docker ошибка permission denied","добавить репозиторий docker","запуск docker без sudo","docker hello world","удалить старый docker",{},[1777,1778,1779],"/guides/linux/docker-run-basic","/errors/linux/docker-permission-denied","/guides/linux/docker-compose-install",{"title":611,"description":1731},"guides/linux/docker-installation","Этот гайд поможет вам правильно установить Docker Engine на популярные дистрибутивы Linux, включая Ubuntu, CentOS, Fedora и Arch. Вы научитесь добавлять репозиторий, устанавливать пакеты и настраивать права для работы без sudo.",[1784,82,413,1785,1786,1787,1788,426],"установка","ubuntu","centos","containerization","devops","E7mh90BkVudDcPI6Cr_QBqlS5DHoLvpQZQS6L1zaZgY",{"id":1791,"title":1792,"appliesTo":1793,"author":10,"body":1797,"canonical":365,"code":71,"createdAt":2391,"description":2392,"difficulty":368,"draft":369,"estimatedTime":2393,"extension":371,"faq":2394,"howToSteps":2407,"howToTotalTime":2423,"image":365,"keywords":2424,"locale":409,"meta":2432,"navigation":411,"path":416,"platform":413,"related":2433,"section":418,"seo":2437,"severity":71,"stem":2438,"summary":2439,"tags":2440,"twitterCreator":365,"twitterSite":365,"type":428,"updatedAt":2391,"__hash__":2443},"content_ru/guides/linux/docker-compose-networks.md","Как настроить сети Docker Compose: полное руководство",[7,1794,1795,1796],"Docker Compose 2.0+","Ubuntu 20.04+","CentOS 8+",{"type":12,"value":1798,"toc":2378},[1799,1801,1804,1806,1826,1828,1832,1835,1890,1897,1901,1911,2035,2039,2045,2136,2140,2143,2215,2218,2222,2296,2304,2306,2308,2333,2336,2338,2372,2375],[15,1800,624],{"id":623},[20,1802,1803],{},"Сети в Docker Compose упрощают взаимодействие контейнеров друг с другом без публикации портов. Правильно настроенная сеть позволяет использовать имена хостов, изолирует трафик и ускоряет разработку и запуск приложений. После выполнения этого руководства у вас будет рабочая сеть для любого набора сервисов Docker Compose.",[15,1805,631],{"id":630},[28,1807,1808,1811,1819],{},[31,1809,1810],{},"Docker Engine ≥ 20.10 и Docker Compose ≥ 2.0 (установлены и работают).",[31,1812,1813,1814,1816,1817,38],{},"Права на выполнение команд ",[35,1815,82],{}," (обычно требуется пользователь в группе ",[35,1818,82],{},[31,1820,1821,1822,1825],{},"Базовый проект Docker Compose (",[35,1823,1824],{},"docker-compose.yml","), который вы хотите расширить сетью.",[15,1827,59],{"id":58},[61,1829,1831],{"id":1830},"шаг-1-установите-docker-и-docker-compose","Шаг 1: Установите Docker и Docker Compose",[20,1833,1834],{},"Установите необходимые пакеты.",[66,1836,1838],{"className":68,"code":1837,"language":70,"meta":71,"style":71},"# Ubuntu/Debian\nsudo apt update && sudo apt install docker.io docker-compose\n# CentOS/RHEL\nsudo yum install docker docker-compose\n# Либо через установщик Docker (https://docs.docker.com/engine/install/)\n",[35,1839,1840,1845,1868,1873,1885],{"__ignoreMap":71},[75,1841,1842],{"class":77,"line":78},[75,1843,1844],{"class":687},"# Ubuntu/Debian\n",[75,1846,1847,1849,1852,1855,1858,1860,1862,1864,1866],{"class":77,"line":352},[75,1848,44],{"class":81},[75,1850,1851],{"class":85}," apt",[75,1853,1854],{"class":85}," update",[75,1856,1857],{"class":956}," && ",[75,1859,44],{"class":81},[75,1861,1851],{"class":85},[75,1863,808],{"class":85},[75,1865,707],{"class":85},[75,1867,1235],{"class":85},[75,1869,1870],{"class":77,"line":359},[75,1871,1872],{"class":687},"# CentOS/RHEL\n",[75,1874,1875,1877,1879,1881,1883],{"class":77,"line":721},[75,1876,44],{"class":81},[75,1878,732],{"class":85},[75,1880,808],{"class":85},[75,1882,701],{"class":85},[75,1884,1235],{"class":85},[75,1886,1887],{"class":77,"line":727},[75,1888,1889],{"class":687},"# Либо через установщик Docker (https://docs.docker.com/engine/install/)\n",[157,1891,1892],{},[20,1893,1894,1895,169],{},"💡 Совет: После установки перезапустите службу Docker: ",[35,1896,1642],{},[61,1898,1900],{"id":1899},"шаг-2-определите-сеть-в-docker-composeyml","Шаг 2: Определите сеть в docker-compose.yml",[20,1902,1903,1904,1907,1908,1910],{},"Добавьте секцию ",[35,1905,1906],{},"networks:"," в корневой раздел файла ",[35,1909,1824],{},". Пример для bridge-сети:",[66,1912,1916],{"className":1913,"code":1914,"language":1915,"meta":71,"style":71},"language-yaml shiki shiki-themes github-light github-dark","version: \"3.9\"\n\nservices:\n  web:\n    image: nginx:alpine\n    ports:\n      - \"80:80\"\n  db:\n    image: postgres:15\n    environment:\n      POSTGRES_PASSWORD: example\n\nnetworks:\n  appnet:\n    driver: bridge\n","yaml",[35,1917,1918,1930,1934,1942,1949,1959,1966,1974,1981,1990,1997,2007,2011,2018,2025],{"__ignoreMap":71},[75,1919,1920,1924,1927],{"class":77,"line":78},[75,1921,1923],{"class":1922},"s9eBZ","version",[75,1925,1926],{"class":956},": ",[75,1928,1929],{"class":85},"\"3.9\"\n",[75,1931,1932],{"class":77,"line":352},[75,1933,718],{"emptyLinePlaceholder":411},[75,1935,1936,1939],{"class":77,"line":359},[75,1937,1938],{"class":1922},"services",[75,1940,1941],{"class":956},":\n",[75,1943,1944,1947],{"class":77,"line":721},[75,1945,1946],{"class":1922},"  web",[75,1948,1941],{"class":956},[75,1950,1951,1954,1956],{"class":77,"line":727},[75,1952,1953],{"class":1922},"    image",[75,1955,1926],{"class":956},[75,1957,1958],{"class":85},"nginx:alpine\n",[75,1960,1961,1964],{"class":77,"line":819},[75,1962,1963],{"class":1922},"    ports",[75,1965,1941],{"class":956},[75,1967,1968,1971],{"class":77,"line":824},[75,1969,1970],{"class":956},"      - ",[75,1972,1973],{"class":85},"\"80:80\"\n",[75,1975,1976,1979],{"class":77,"line":830},[75,1977,1978],{"class":1922},"  db",[75,1980,1941],{"class":956},[75,1982,1983,1985,1987],{"class":77,"line":848},[75,1984,1953],{"class":1922},[75,1986,1926],{"class":956},[75,1988,1989],{"class":85},"postgres:15\n",[75,1991,1992,1995],{"class":77,"line":853},[75,1993,1994],{"class":1922},"    environment",[75,1996,1941],{"class":956},[75,1998,1999,2002,2004],{"class":77,"line":859},[75,2000,2001],{"class":1922},"      POSTGRES_PASSWORD",[75,2003,1926],{"class":956},[75,2005,2006],{"class":85},"example\n",[75,2008,2009],{"class":77,"line":889},[75,2010,718],{"emptyLinePlaceholder":411},[75,2012,2013,2016],{"class":77,"line":902},[75,2014,2015],{"class":1922},"networks",[75,2017,1941],{"class":956},[75,2019,2020,2023],{"class":77,"line":907},[75,2021,2022],{"class":1922},"  appnet",[75,2024,1941],{"class":956},[75,2026,2027,2030,2032],{"class":77,"line":913},[75,2028,2029],{"class":1922},"    driver",[75,2031,1926],{"class":956},[75,2033,2034],{"class":85},"bridge\n",[61,2036,2038],{"id":2037},"шаг-3-подключите-сервисы-к-сети","Шаг 3: Подключите сервисы к сети",[20,2040,2041,2042,2044],{},"Для каждого сервиса, который должен быть в сети, укажите ",[35,2043,1906],{}," со списком сетей. Если сервис использует только одну сеть, можете передать её как строку:",[66,2046,2048],{"className":1913,"code":2047,"language":1915,"meta":71,"style":71},"services:\n  web:\n    image: nginx:alpine\n    ports:\n      - \"80:80\"\n    networks:\n      - appnet\n  db:\n    image: postgres:15\n    environment:\n      POSTGRES_PASSWORD: example\n    networks:\n      - appnet\n",[35,2049,2050,2056,2062,2070,2076,2082,2089,2096,2102,2110,2116,2124,2130],{"__ignoreMap":71},[75,2051,2052,2054],{"class":77,"line":78},[75,2053,1938],{"class":1922},[75,2055,1941],{"class":956},[75,2057,2058,2060],{"class":77,"line":352},[75,2059,1946],{"class":1922},[75,2061,1941],{"class":956},[75,2063,2064,2066,2068],{"class":77,"line":359},[75,2065,1953],{"class":1922},[75,2067,1926],{"class":956},[75,2069,1958],{"class":85},[75,2071,2072,2074],{"class":77,"line":721},[75,2073,1963],{"class":1922},[75,2075,1941],{"class":956},[75,2077,2078,2080],{"class":77,"line":727},[75,2079,1970],{"class":956},[75,2081,1973],{"class":85},[75,2083,2084,2087],{"class":77,"line":819},[75,2085,2086],{"class":1922},"    networks",[75,2088,1941],{"class":956},[75,2090,2091,2093],{"class":77,"line":824},[75,2092,1970],{"class":956},[75,2094,2095],{"class":85},"appnet\n",[75,2097,2098,2100],{"class":77,"line":830},[75,2099,1978],{"class":1922},[75,2101,1941],{"class":956},[75,2103,2104,2106,2108],{"class":77,"line":848},[75,2105,1953],{"class":1922},[75,2107,1926],{"class":956},[75,2109,1989],{"class":85},[75,2111,2112,2114],{"class":77,"line":853},[75,2113,1994],{"class":1922},[75,2115,1941],{"class":956},[75,2117,2118,2120,2122],{"class":77,"line":859},[75,2119,2001],{"class":1922},[75,2121,1926],{"class":956},[75,2123,2006],{"class":85},[75,2125,2126,2128],{"class":77,"line":889},[75,2127,2086],{"class":1922},[75,2129,1941],{"class":956},[75,2131,2132,2134],{"class":77,"line":902},[75,2133,1970],{"class":956},[75,2135,2095],{"class":85},[61,2137,2139],{"id":2138},"шаг-4-проверьте-подключение","Шаг 4: Проверьте подключение",[20,2141,2142],{},"Запустите проект и проверьте сетевое взаимодействие:",[66,2144,2146],{"className":68,"code":2145,"language":70,"meta":71,"style":71},"docker compose up -d\n# Проверьте пингом внутри контейнера web\ndocker exec \u003Ccontainer_id_web> ping db\n# Либо через curl, если сервис предоставляет HTTP\ndocker exec \u003Ccontainer_id_web> curl -s http://db:5432\n",[35,2147,2148,2161,2166,2189,2194],{"__ignoreMap":71},[75,2149,2150,2152,2155,2158],{"class":77,"line":78},[75,2151,82],{"class":81},[75,2153,2154],{"class":85}," compose",[75,2156,2157],{"class":85}," up",[75,2159,2160],{"class":92}," -d\n",[75,2162,2163],{"class":77,"line":352},[75,2164,2165],{"class":687},"# Проверьте пингом внутри контейнера web\n",[75,2167,2168,2170,2172,2174,2177,2180,2183,2186],{"class":77,"line":359},[75,2169,82],{"class":81},[75,2171,234],{"class":85},[75,2173,1519],{"class":870},[75,2175,2176],{"class":85},"container_id_we",[75,2178,2179],{"class":956},"b",[75,2181,2182],{"class":870},">",[75,2184,2185],{"class":85}," ping",[75,2187,2188],{"class":85}," db\n",[75,2190,2191],{"class":77,"line":721},[75,2192,2193],{"class":687},"# Либо через curl, если сервис предоставляет HTTP\n",[75,2195,2196,2198,2200,2202,2204,2206,2208,2210,2212],{"class":77,"line":727},[75,2197,82],{"class":81},[75,2199,234],{"class":85},[75,2201,1519],{"class":870},[75,2203,2176],{"class":85},[75,2205,2179],{"class":956},[75,2207,2182],{"class":870},[75,2209,239],{"class":85},[75,2211,242],{"class":92},[75,2213,2214],{"class":85}," http://db:5432\n",[20,2216,2217],{},"Если пинг успешен, сеть работает правильно.",[61,2219,2221],{"id":2220},"шаг-5-диагностика-типичных-проблем","Шаг 5: Диагностика типичных проблем",[2223,2224,2225,2241],"table",{},[2226,2227,2228],"thead",{},[2229,2230,2231,2235,2238],"tr",{},[2232,2233,2234],"th",{},"Симптом",[2232,2236,2237],{},"Возможная причина",[2232,2239,2240],{},"Решение",[2242,2243,2244,2258,2279],"tbody",{},[2229,2245,2246,2250,2255],{},[2247,2248,2249],"td",{},"Контейнеры не видят друг друга",[2247,2251,2252,2253],{},"Сеть не определена в корневом разделе ",[35,2254,1906],{},[2247,2256,2257],{},"Убедитесь, что сети указаны в корне файла.",[2229,2259,2260,2266,2269],{},[2247,2261,2262,2265],{},[35,2263,2264],{},"ping"," не успешен",[2247,2267,2268],{},"Контейнер подключён к другой сети или отсутствует DNS",[2247,2270,2271,2272,2275,2276,2278],{},"Проверьте ",[35,2273,2274],{},"docker inspect \u003Cконтейнер>"," на наличие сетевых алиасов; переопределите ",[35,2277,1906],{}," в сервисе.",[2229,2280,2281,2284,2290],{},[2247,2282,2283],{},"Контейнер не может разрешить DNS по имени хоста",[2247,2285,2286,2287,2289],{},"Отсутствует сетевой драйвер ",[35,2288,106],{}," или используется пользовательская сеть без DNS",[2247,2291,2292,2293,2295],{},"Используйте стандартный драйвер ",[35,2294,106],{}," или настройте сетевую подсеть вручную.",[157,2297,2298],{},[20,2299,2300,2301,38],{},"⚠️ Важно: Если вы используете пользовательскую сеть, убедитесь, что драйвер установлен (",[35,2302,2303],{},"docker network create --driver \u003Cdriver> \u003Cname>",[214,2305],{},[15,2307,270],{"id":269},[28,2309,2310,2316,2322],{},[31,2311,2312,2313,38],{},"Каждый сервис должен иметь корректный IP-адрес в подсети сети (",[35,2314,2315],{},"docker network inspect appnet",[31,2317,2318,2321],{},[35,2319,2320],{},"docker compose ps"," показывает состояние сервисов как «up».",[31,2323,2324,2325,2328,2329,2332],{},"Внутри контейнера ",[35,2326,2327],{},"ping \u003Cимя-соседа>"," успешен, а ",[35,2330,2331],{},"curl http://\u003Cимя-сервиса>"," возвращает ответ.",[20,2334,2335],{},"Если всё вышеперечисленное работает, сеть настроена корректно и готова к использованию в производстве или разработке.",[15,2337,294],{"id":293},[28,2339,2340,2353,2359],{},[31,2341,2342,2345,2346,2349,2350,38],{},[104,2343,2344],{},"Разрешение DNS не работает",": Убедитесь, что сетевые алиасы сервисов определены корректно (",[35,2347,2348],{},"networks: - appnet"," или ",[35,2351,2352],{},"aliases: [...]",[31,2354,2355,2358],{},[104,2356,2357],{},"Конфликт портов",": Избегайте публикации одного и того же хост-порта несколькими сервисами; используйте уникальные порты или перенаправления внутри сети.",[31,2360,2361,2364,2365,2368,2369,169],{},[104,2362,2363],{},"Утечка IP-адресов",": После удаления сервисов удалите неиспользуемые сети: ",[35,2366,2367],{},"docker compose down --remove-orphans"," и ",[35,2370,2371],{},"docker network prune",[20,2373,2374],{},"Следуя этим рекомендациям, вы сможете быстро настроить надёжные сети Docker Compose и избежать типичных ошибок.",[348,2376,2377],{},"html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .s9eBZ, html code.shiki .s9eBZ{--shiki-default:#22863A;--shiki-dark:#85E89D}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}",{"title":71,"searchDepth":352,"depth":352,"links":2379},[2380,2381,2382,2389,2390],{"id":623,"depth":352,"text":624},{"id":630,"depth":352,"text":631},{"id":58,"depth":352,"text":59,"children":2383},[2384,2385,2386,2387,2388],{"id":1830,"depth":359,"text":1831},{"id":1899,"depth":359,"text":1900},{"id":2037,"depth":359,"text":2038},{"id":2138,"depth":359,"text":2139},{"id":2220,"depth":359,"text":2221},{"id":269,"depth":352,"text":270},{"id":293,"depth":352,"text":294},"2026-08-09 08:47:33","Узнайте, как быстро настроить сети Docker Compose за 5 минут. Пошаговая инструкция с примерами, проверкой подключения и решением типичных проблем.","10-15 мин",[2395,2398,2401,2404],{"question":2396,"answer":2397},"Зачем в Docker Compose нужна отдельная сеть?","Сеть позволяет контейнерам взаимодействовать по имени хоста, избегать публикаций портов и изолировать трафик.",{"question":2399,"answer":2400},"Можно ли подключить один сервис к нескольким сетям?","Да, укажите `networks:` со списком сетей в сервисе в `docker-compose.yml`.",{"question":2402,"answer":2403},"Как проверить, что контейнер подключён к сети?","Используйте `docker exec \u003Cконтейнер> ping \u003Cимя-соседа>` или `curl http://\u003Cимя-сервиса>`.",{"question":2405,"answer":2406},"Что делать, если контейнеры не видят друг друга после добавления в сеть?","Убедитесь, что сети определены в корневом разделе `networks:` и сервисы подключены к той же сети.",[2408,2411,2414,2417,2420],{"name":2409,"text":2410},"Установите Docker и Docker Compose","Установите Docker Engine (≥20.10) и Docker Compose Plugin или отдельный бинарный файл. На Ubuntu: `sudo apt update && sudo apt install docker.io docker-compose`.",{"name":2412,"text":2413},"Определите сеть в docker-compose.yml","Добавьте секцию `networks:` в корневой раздел файла. Пример: `networks: mynetwork:` с драйвером `bridge`.",{"name":2415,"text":2416},"Подключите сервисы к сети","Для каждого сервиса, который должен быть в сети, укажите `networks:` со списком сетей, например `networks: - mynetwork`.",{"name":2418,"text":2419},"Проверьте подключение","Запустите стек командой `docker compose up -d`, затем проверьте пингом или curl внутри контейнера.",{"name":2421,"text":2422},"Диагностика типичных проблем","Если контейнеры не видят друг друга, проверьте `docker inspect` на наличие IP-адресов, убедитесь, что сети определены в корневом разделе и нет конфликтующих сетевых алиасов.","PT15M",[2425,2426,2427,2428,2429,2430,2431],"docker compose networks","настройка сетей docker compose","создание сети в docker compose","docker-compose.yml networks","docker compose bridge network","docker compose network aliases","docker compose networks troubleshooting",{},[2434,2435,2436],"/guides/linux/docker-compose-basics","/guides/linux/docker-compose-volumes","/guides/linux/docker-compose-environment",{"title":1792,"description":2392},"guides/linux/docker-compose-networks","В этом руководстве вы научитесь создавать и настраивать сети Docker Compose, подключать контейнеры и диагностировать сетевые проблемы.",[423,2441,2442,424],"docker-compose","networking","CkVs0W-nha68uflTpS4RpIUHoDKjkydhGyo8uEKDUXQ"]