[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"page-ru-/guides/linux/docker-installation":3,"mdc-z106w-key":1234,"mdc-qsr41v-key":1260,"mdc--sax6fc-key":1291,"mdc--i1sg7b-key":1307,"mdc--ezat1j-key":1338,"mdc-luno8l-key":1346,"mdc--h7pirm-key":1354,"mdc--kph74r-key":1386,"mdc--lopds7-key":1402,"related-/guides/linux/docker-run-basic,/errors/linux/docker-permission-denied,/guides/linux/docker-compose-install":1419},{"id":4,"title":5,"appliesTo":6,"author":13,"body":14,"canonical":1165,"code":1165,"createdAt":1166,"description":1167,"difficulty":1168,"draft":1169,"estimatedTime":1170,"extension":1171,"faq":1172,"howToSteps":1185,"howToTotalTime":1201,"image":1165,"keywords":1202,"locale":1213,"meta":1214,"navigation":134,"path":1215,"platform":1216,"related":1217,"section":1221,"seo":1222,"severity":1165,"stem":1223,"summary":1224,"tags":1225,"twitterCreator":1165,"twitterSite":1165,"type":1232,"updatedAt":1166,"__hash__":1233},"content_ru/guides/linux/docker-installation.md","Установите Docker на Linux: пошаговая инструкция для Ubuntu, CentOS и других",[7,8,9,10,11,12],"Ubuntu 20.04/22.04/24.04","Debian 11/12","CentOS 7/8","RHEL 8/9","Fedora 35+","Arch Linux","FixPedia Team",{"type":15,"value":16,"toc":1138},"minimark",[17,22,26,30,33,71,76,83,175,179,182,186,191,406,410,460,464,471,559,562,612,616,659,663,667,744,757,761,791,795,798,834,838,842,850,855,899,906,911,925,961,968,976,981,993,1000,1008,1016,1019,1023,1027,1034,1070,1076,1080,1087,1091,1094,1124,1134],[18,19,21],"h2",{"id":20},"введение-зачем-это-нужно","Введение / Зачем это нужно",[23,24,25],"p",{},"Docker — это платформа для контейнеризации, которая позволяет упаковывать приложения и их зависимости в изолированные окружения. Установка Docker на Linux — это первый шаг к разработке, тестированию и развёртыванию современных облачных приложений. После выполнения этого гайда вы сможете запускать контейнеры, создавать образы и использовать весь экосистемный инструментарий Docker.",[18,27,29],{"id":28},"требования-подготовка","Требования / Подготовка",[23,31,32],{},"Перед началом убедитесь, что:",[34,35,36,45,48,56],"ul",{},[37,38,39,40,44],"li",{},"У вас есть доступ к учётной записи с правами ",[41,42,43],"strong",{},"sudo"," (или root).",[37,46,47],{},"Система подключена к интернету для загрузки пакетов.",[37,49,50,51,55],{},"Дистрибутив поддерживается Docker (список см. в ",[52,53,54],"code",{},"appliesTo"," выше).",[37,57,58,59,62,63,66,67,70],{},"Установлены базовые утилиты: ",[52,60,61],{},"curl",", ",[52,64,65],{},"gnupg"," (для Ubuntu/Debian) или ",[52,68,69],{},"yum-utils"," (для CentOS/RHEL).",[72,73,75],"h3",{"id":74},"удаление-конфликтующих-пакетов-опционально","Удаление конфликтующих пакетов (опционально)",[23,77,78,79,82],{},"Если на системе ранее устанавливался Docker из репозитория дистрибутива (например, пакет ",[52,80,81],{},"docker.io","), удалите его:",[84,85,90],"pre",{"className":86,"code":87,"language":88,"meta":89,"style":89},"language-bash shiki shiki-themes github-light github-dark","# Для 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","bash","",[52,91,92,101,129,136,142],{"__ignoreMap":89},[93,94,97],"span",{"class":95,"line":96},"line",1,[93,98,100],{"class":99},"sJ8bj","# Для Ubuntu/Debian\n",[93,102,104,107,111,114,117,120,123,126],{"class":95,"line":103},2,[93,105,43],{"class":106},"sScJk",[93,108,110],{"class":109},"sZZnC"," apt-get",[93,112,113],{"class":109}," remove",[93,115,116],{"class":109}," docker",[93,118,119],{"class":109}," docker-engine",[93,121,122],{"class":109}," docker.io",[93,124,125],{"class":109}," containerd",[93,127,128],{"class":109}," runc\n",[93,130,132],{"class":95,"line":131},3,[93,133,135],{"emptyLinePlaceholder":134},true,"\n",[93,137,139],{"class":95,"line":138},4,[93,140,141],{"class":99},"# Для CentOS/RHEL/Fedora\n",[93,143,145,147,150,152,154,157,160,163,166,169,172],{"class":95,"line":144},5,[93,146,43],{"class":106},[93,148,149],{"class":109}," yum",[93,151,113],{"class":109},[93,153,116],{"class":109},[93,155,156],{"class":109}," docker-client",[93,158,159],{"class":109}," docker-client-latest",[93,161,162],{"class":109}," docker-common",[93,164,165],{"class":109}," docker-latest",[93,167,168],{"class":109}," docker-latest-logrotate",[93,170,171],{"class":109}," docker-logrotate",[93,173,174],{"class":109}," docker-engine\n",[18,176,178],{"id":177},"пошаговая-инструкция","Пошаговая инструкция",[23,180,181],{},"Инструкции различаются в зависимости от дистрибутива. Выберите соответствующий раздел.",[72,183,185],{"id":184},"для-ubuntu-debian","Для Ubuntu / Debian",[187,188,190],"h4",{"id":189},"шаг-1-установка-зависимостей-и-добавление-репозитория","Шаг 1: Установка зависимостей и добавление репозитория",[84,192,194],{"className":86,"code":193,"language":88,"meta":89,"style":89},"# Обновление индекса пакетов\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",[52,195,196,201,210,214,219,237,242,248,268,273,279,309,322,327,333,342,360,388],{"__ignoreMap":89},[93,197,198],{"class":95,"line":96},[93,199,200],{"class":99},"# Обновление индекса пакетов\n",[93,202,203,205,207],{"class":95,"line":103},[93,204,43],{"class":106},[93,206,110],{"class":109},[93,208,209],{"class":109}," update\n",[93,211,212],{"class":95,"line":131},[93,213,135],{"emptyLinePlaceholder":134},[93,215,216],{"class":95,"line":138},[93,217,218],{"class":99},"# Установка необходимых пакетов для работы с HTTPS-репозиториями\n",[93,220,221,223,225,228,231,234],{"class":95,"line":144},[93,222,43],{"class":106},[93,224,110],{"class":109},[93,226,227],{"class":109}," install",[93,229,230],{"class":109}," ca-certificates",[93,232,233],{"class":109}," curl",[93,235,236],{"class":109}," gnupg\n",[93,238,240],{"class":95,"line":239},6,[93,241,135],{"emptyLinePlaceholder":134},[93,243,245],{"class":95,"line":244},7,[93,246,247],{"class":99},"# Создание директории для ключей (если её нет)\n",[93,249,251,253,255,259,262,265],{"class":95,"line":250},8,[93,252,43],{"class":106},[93,254,227],{"class":109},[93,256,258],{"class":257},"sj4cs"," -m",[93,260,261],{"class":257}," 0755",[93,263,264],{"class":257}," -d",[93,266,267],{"class":109}," /etc/apt/keyrings\n",[93,269,271],{"class":95,"line":270},9,[93,272,135],{"emptyLinePlaceholder":134},[93,274,276],{"class":95,"line":275},10,[93,277,278],{"class":99},"# Импорт GPG-ключа Docker (официальный метод)\n",[93,280,282,284,287,290,294,297,300,303,306],{"class":95,"line":281},11,[93,283,61],{"class":106},[93,285,286],{"class":257}," -fsSL",[93,288,289],{"class":109}," https://download.docker.com/linux/ubuntu/gpg",[93,291,293],{"class":292},"szBVR"," |",[93,295,296],{"class":106}," sudo",[93,298,299],{"class":109}," gpg",[93,301,302],{"class":257}," --dearmor",[93,304,305],{"class":257}," -o",[93,307,308],{"class":109}," /etc/apt/keyrings/docker.gpg\n",[93,310,312,314,317,320],{"class":95,"line":311},12,[93,313,43],{"class":106},[93,315,316],{"class":109}," chmod",[93,318,319],{"class":109}," a+r",[93,321,308],{"class":109},[93,323,325],{"class":95,"line":324},13,[93,326,135],{"emptyLinePlaceholder":134},[93,328,330],{"class":95,"line":329},14,[93,331,332],{"class":99},"# Добавление репозитория Docker (замените `jammy` на вашу версию, например `focal`, `noble`)\n",[93,334,336,339],{"class":95,"line":335},15,[93,337,338],{"class":257},"echo",[93,340,341],{"class":257}," \\\n",[93,343,345,348,351,354,357],{"class":95,"line":344},16,[93,346,347],{"class":109},"  \"deb [arch=$(",[93,349,350],{"class":106},"dpkg",[93,352,353],{"class":257}," --print-architecture",[93,355,356],{"class":109},") signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu ",[93,358,359],{"class":257},"\\\n",[93,361,363,366,369,372,374,377,381,384,386],{"class":95,"line":362},17,[93,364,365],{"class":109},"  $(",[93,367,368],{"class":257},".",[93,370,371],{"class":109}," /etc/os-release && ",[93,373,338],{"class":257},[93,375,376],{"class":109}," \"",[93,378,380],{"class":379},"sVt8B","$VERSION_CODENAME",[93,382,383],{"class":109},"\") stable\"",[93,385,293],{"class":292},[93,387,341],{"class":257},[93,389,391,394,397,400,403],{"class":95,"line":390},18,[93,392,393],{"class":106},"  sudo",[93,395,396],{"class":109}," tee",[93,398,399],{"class":109}," /etc/apt/sources.list.d/docker.list",[93,401,402],{"class":292}," >",[93,404,405],{"class":109}," /dev/null\n",[187,407,409],{"id":408},"шаг-2-установка-docker-engine","Шаг 2: Установка Docker Engine",[84,411,413],{"className":86,"code":412,"language":88,"meta":89,"style":89},"# Обновление кэша пакетов с нового репозитория\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",[52,414,415,420,428,432,437],{"__ignoreMap":89},[93,416,417],{"class":95,"line":96},[93,418,419],{"class":99},"# Обновление кэша пакетов с нового репозитория\n",[93,421,422,424,426],{"class":95,"line":103},[93,423,43],{"class":106},[93,425,110],{"class":109},[93,427,209],{"class":109},[93,429,430],{"class":95,"line":131},[93,431,135],{"emptyLinePlaceholder":134},[93,433,434],{"class":95,"line":138},[93,435,436],{"class":99},"# Установка последней версии Docker и зависимостей\n",[93,438,439,441,443,445,448,451,454,457],{"class":95,"line":144},[93,440,43],{"class":106},[93,442,110],{"class":109},[93,444,227],{"class":109},[93,446,447],{"class":109}," docker-ce",[93,449,450],{"class":109}," docker-ce-cli",[93,452,453],{"class":109}," containerd.io",[93,455,456],{"class":109}," docker-buildx-plugin",[93,458,459],{"class":109}," docker-compose-plugin\n",[72,461,463],{"id":462},"для-centos-rhel-fedora","Для CentOS / RHEL / Fedora",[187,465,467,468,470],{"id":466},"шаг-1-установка-yum-utils-и-добавление-репозитория","Шаг 1: Установка ",[52,469,69],{}," и добавление репозитория",[84,472,474],{"className":86,"code":473,"language":88,"meta":89,"style":89},"# Для 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",[52,475,476,481,495,499,504,518,522,527,540,545],{"__ignoreMap":89},[93,477,478],{"class":95,"line":96},[93,479,480],{"class":99},"# Для CentOS/RHEL 7/8\n",[93,482,483,485,487,489,492],{"class":95,"line":103},[93,484,43],{"class":106},[93,486,149],{"class":109},[93,488,227],{"class":109},[93,490,491],{"class":257}," -y",[93,493,494],{"class":109}," yum-utils\n",[93,496,497],{"class":95,"line":131},[93,498,135],{"emptyLinePlaceholder":134},[93,500,501],{"class":95,"line":138},[93,502,503],{"class":99},"# Для Fedora (использует dnf)\n",[93,505,506,508,511,513,515],{"class":95,"line":144},[93,507,43],{"class":106},[93,509,510],{"class":109}," dnf",[93,512,227],{"class":109},[93,514,491],{"class":257},[93,516,517],{"class":109}," dnf-plugins-core\n",[93,519,520],{"class":95,"line":239},[93,521,135],{"emptyLinePlaceholder":134},[93,523,524],{"class":95,"line":244},[93,525,526],{"class":99},"# Добавление стабильного репозитория Docker\n",[93,528,529,531,534,537],{"class":95,"line":250},[93,530,43],{"class":106},[93,532,533],{"class":109}," yum-config-manager",[93,535,536],{"class":257}," --add-repo",[93,538,539],{"class":109}," https://download.docker.com/linux/centos/docker-ce.repo\n",[93,541,542],{"class":95,"line":270},[93,543,544],{"class":99},"# Или для Fedora:\n",[93,546,547,549,551,554,556],{"class":95,"line":275},[93,548,43],{"class":106},[93,550,510],{"class":109},[93,552,553],{"class":109}," config-manager",[93,555,536],{"class":257},[93,557,558],{"class":109}," https://download.docker.com/linux/fedora/docker-ce.repo\n",[187,560,409],{"id":561},"шаг-2-установка-docker-engine-1",[84,563,565],{"className":86,"code":564,"language":88,"meta":89,"style":89},"# Установка последней версии (для 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",[52,566,567,572,590,594,599],{"__ignoreMap":89},[93,568,569],{"class":95,"line":96},[93,570,571],{"class":99},"# Установка последней версии (для CentOS/RHEL/Fedora)\n",[93,573,574,576,578,580,582,584,586,588],{"class":95,"line":103},[93,575,43],{"class":106},[93,577,149],{"class":109},[93,579,227],{"class":109},[93,581,447],{"class":109},[93,583,450],{"class":109},[93,585,453],{"class":109},[93,587,456],{"class":109},[93,589,459],{"class":109},[93,591,592],{"class":95,"line":131},[93,593,135],{"emptyLinePlaceholder":134},[93,595,596],{"class":95,"line":138},[93,597,598],{"class":99},"# Если yum сообщает о конфликтах, можно попробовать:\n",[93,600,601,603,605,607,609],{"class":95,"line":144},[93,602,43],{"class":106},[93,604,149],{"class":109},[93,606,227],{"class":109},[93,608,447],{"class":109},[93,610,611],{"class":257}," --allowerasing\n",[72,613,615],{"id":614},"для-arch-linux","Для Arch Linux",[84,617,619],{"className":86,"code":618,"language":88,"meta":89,"style":89},"# Установка из официальных репозиториев Arch\nsudo pacman -S docker\n\n# Дополнительно можно установить docker-compose (если нужен отдельный пакет)\nsudo pacman -S docker-compose\n",[52,620,621,626,639,643,648],{"__ignoreMap":89},[93,622,623],{"class":95,"line":96},[93,624,625],{"class":99},"# Установка из официальных репозиториев Arch\n",[93,627,628,630,633,636],{"class":95,"line":103},[93,629,43],{"class":106},[93,631,632],{"class":109}," pacman",[93,634,635],{"class":257}," -S",[93,637,638],{"class":109}," docker\n",[93,640,641],{"class":95,"line":131},[93,642,135],{"emptyLinePlaceholder":134},[93,644,645],{"class":95,"line":138},[93,646,647],{"class":99},"# Дополнительно можно установить docker-compose (если нужен отдельный пакет)\n",[93,649,650,652,654,656],{"class":95,"line":144},[93,651,43],{"class":106},[93,653,632],{"class":109},[93,655,635],{"class":257},[93,657,658],{"class":109}," docker-compose\n",[72,660,662],{"id":661},"общие-шаги-для-всех-дистрибутивов","Общие шаги для всех дистрибутивов",[187,664,666],{"id":665},"шаг-3-настройка-прав-доступа-и-запуск-сервиса","Шаг 3: Настройка прав доступа и запуск сервиса",[84,668,670],{"className":86,"code":669,"language":88,"meta":89,"style":89},"# Добавление текущего пользователя в группу `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",[52,671,672,677,692,696,701,713,724,728,733],{"__ignoreMap":89},[93,673,674],{"class":95,"line":96},[93,675,676],{"class":99},"# Добавление текущего пользователя в группу `docker` (чтобы не использовать sudo)\n",[93,678,679,681,684,687,689],{"class":95,"line":103},[93,680,43],{"class":106},[93,682,683],{"class":109}," usermod",[93,685,686],{"class":257}," -aG",[93,688,116],{"class":109},[93,690,691],{"class":379}," $USER\n",[93,693,694],{"class":95,"line":131},[93,695,135],{"emptyLinePlaceholder":134},[93,697,698],{"class":95,"line":138},[93,699,700],{"class":99},"# Запуск демона Docker и включение автозагрузки\n",[93,702,703,705,708,711],{"class":95,"line":144},[93,704,43],{"class":106},[93,706,707],{"class":109}," systemctl",[93,709,710],{"class":109}," start",[93,712,638],{"class":109},[93,714,715,717,719,722],{"class":95,"line":239},[93,716,43],{"class":106},[93,718,707],{"class":109},[93,720,721],{"class":109}," enable",[93,723,638],{"class":109},[93,725,726],{"class":95,"line":244},[93,727,135],{"emptyLinePlaceholder":134},[93,729,730],{"class":95,"line":250},[93,731,732],{"class":99},"# Проверка статуса (должен быть `active (running)`)\n",[93,734,735,737,739,742],{"class":95,"line":270},[93,736,43],{"class":106},[93,738,707],{"class":109},[93,740,741],{"class":109}," status",[93,743,638],{"class":109},[745,746,747],"blockquote",{},[23,748,749,750,753,754,368],{},"⚠️ ",[41,751,752],{},"Важно:"," Изменения группы вступят в силу после выхода и повторного входа в систему или выполнения ",[52,755,756],{},"newgrp docker",[187,758,760],{"id":759},"шаг-4-проверка-установки","Шаг 4: Проверка установки",[84,762,764],{"className":86,"code":763,"language":88,"meta":89,"style":89},"# Загрузка и запуск тестового контейнера `hello-world`\ndocker run hello-world\n\n# Ожидаемый вывод: сообщение об успешной загрузке образа и приветствие.\n",[52,765,766,771,782,786],{"__ignoreMap":89},[93,767,768],{"class":95,"line":96},[93,769,770],{"class":99},"# Загрузка и запуск тестового контейнера `hello-world`\n",[93,772,773,776,779],{"class":95,"line":103},[93,774,775],{"class":106},"docker",[93,777,778],{"class":109}," run",[93,780,781],{"class":109}," hello-world\n",[93,783,784],{"class":95,"line":131},[93,785,135],{"emptyLinePlaceholder":134},[93,787,788],{"class":95,"line":138},[93,789,790],{"class":99},"# Ожидаемый вывод: сообщение об успешной загрузке образа и приветствие.\n",[18,792,794],{"id":793},"проверка-результата","Проверка результата",[23,796,797],{},"Успешная установка подтверждается:",[799,800,801,808,815,825],"ol",{},[37,802,803,804,807],{},"Команда ",[52,805,806],{},"docker version"," показывает клиентскую и серверную версии без ошибок.",[37,809,810,811,814],{},"Контейнер ",[52,812,813],{},"hello-world"," запускается и выводит приветственное сообщение.",[37,816,817,818,821,822,368],{},"Демон Docker активен: ",[52,819,820],{},"sudo systemctl is-active docker"," возвращает ",[52,823,824],{},"active",[37,826,827,828,831,832,368],{},"Текущий пользователь может выполнять ",[52,829,830],{},"docker ps"," без ",[52,833,43],{},[18,835,837],{"id":836},"возможные-проблемы","Возможные проблемы",[72,839,841],{"id":840},"ошибка-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?\"",[23,843,844,847,848,368],{},[41,845,846],{},"Причина:"," Демон Docker не запущен или текущий пользователь не в группе ",[52,849,775],{},[23,851,852],{},[41,853,854],{},"Решение:",[84,856,858],{"className":86,"code":857,"language":88,"meta":89,"style":89},"sudo systemctl start docker\n# Добавьте пользователя в группу, если ещё не делали\nsudo usermod -aG docker $USER\n# Перезайдите в систему или выполните:\nnewgrp docker\n",[52,859,860,870,875,887,892],{"__ignoreMap":89},[93,861,862,864,866,868],{"class":95,"line":96},[93,863,43],{"class":106},[93,865,707],{"class":109},[93,867,710],{"class":109},[93,869,638],{"class":109},[93,871,872],{"class":95,"line":103},[93,873,874],{"class":99},"# Добавьте пользователя в группу, если ещё не делали\n",[93,876,877,879,881,883,885],{"class":95,"line":131},[93,878,43],{"class":106},[93,880,683],{"class":109},[93,882,686],{"class":257},[93,884,116],{"class":109},[93,886,691],{"class":379},[93,888,889],{"class":95,"line":138},[93,890,891],{"class":99},"# Перезайдите в систему или выполните:\n",[93,893,894,897],{"class":95,"line":144},[93,895,896],{"class":106},"newgrp",[93,898,638],{"class":109},[72,900,902,903],{"id":901},"ошибка-gpg-ключ-не-найден-или-no_pubkey","Ошибка: GPG-ключ не найден или ",[52,904,905],{},"NO_PUBKEY",[23,907,908,910],{},[41,909,846],{}," Не установлен или не добавлен ключ репозитория Docker.",[23,912,913,916,917,920,921,924],{},[41,914,915],{},"Решение (Ubuntu/Debian):"," Убедитесь, что ключ скопирован в ",[52,918,919],{},"/etc/apt/keyrings/docker.gpg"," и имеет права ",[52,922,923],{},"a+r",". Для старых версий (до Ubuntu 22.04) может потребоваться:",[84,926,928],{"className":86,"code":927,"language":88,"meta":89,"style":89},"sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys \u003CID_ключа>\n",[52,929,930],{"__ignoreMap":89},[93,931,932,934,937,940,943,946,949,952,955,958],{"class":95,"line":96},[93,933,43],{"class":106},[93,935,936],{"class":109}," apt-key",[93,938,939],{"class":109}," adv",[93,941,942],{"class":257}," --keyserver",[93,944,945],{"class":109}," keyserver.ubuntu.com",[93,947,948],{"class":257}," --recv-keys",[93,950,951],{"class":292}," \u003C",[93,953,954],{"class":109},"ID_ключ",[93,956,957],{"class":379},"а",[93,959,960],{"class":292},">\n",[23,962,963,964,967],{},"Но метод с ",[52,965,966],{},"/etc/apt/keyrings"," предпочтительнее.",[72,969,971,972,975],{"id":970},"ошибка-error-failed-to-solve-при-попытке-запуска","Ошибка: ",[52,973,974],{},"Error: failed to solve: ..."," при попытке запуска",[23,977,978,980],{},[41,979,846],{}," Недостаточно места на диске или проблемы с сетью при загрузке образа.",[23,982,983,985,986,989,990,368],{},[41,984,854],{}," Проверьте свободное место (",[52,987,988],{},"df -h",") и подключение к Docker Hub. Можно попробовать очистить старые образы: ",[52,991,992],{},"docker system prune -a",[72,994,996,997],{"id":995},"конфликт-версий-containerd","Конфликт версий ",[52,998,999],{},"containerd",[23,1001,1002,1004,1005,1007],{},[41,1003,846],{}," В некоторых дистрибутивах (особенно CentOS 7) предустановленная версия ",[52,1006,999],{}," слишком старая.",[23,1009,1010,1012,1013,1015],{},[41,1011,854],{}," Удалите системный ",[52,1014,999],{}," перед установкой Docker (он будет установлен как зависимость). Или используйте официальный скрипт Docker для ручной установки.",[1017,1018],"in-article-ad",{},[18,1020,1022],{"id":1021},"дополнительные-настройки-опционально","Дополнительные настройки (опционально)",[72,1024,1026],{"id":1025},"настройка-dns-для-контейнеров","Настройка DNS для контейнеров",[23,1028,1029,1030,1033],{},"Если контейнеры не могут разрешать имена, отредактируйте ",[52,1031,1032],{},"/etc/docker/daemon.json",":",[84,1035,1039],{"className":1036,"code":1037,"language":1038,"meta":89,"style":89},"language-json shiki shiki-themes github-light github-dark","{\n  \"dns\": [\"8.8.8.8\", \"1.1.1.1\"]\n}\n","json",[52,1040,1041,1046,1065],{"__ignoreMap":89},[93,1042,1043],{"class":95,"line":96},[93,1044,1045],{"class":379},"{\n",[93,1047,1048,1051,1054,1057,1059,1062],{"class":95,"line":103},[93,1049,1050],{"class":257},"  \"dns\"",[93,1052,1053],{"class":379},": [",[93,1055,1056],{"class":109},"\"8.8.8.8\"",[93,1058,62],{"class":379},[93,1060,1061],{"class":109},"\"1.1.1.1\"",[93,1063,1064],{"class":379},"]\n",[93,1066,1067],{"class":95,"line":131},[93,1068,1069],{"class":379},"}\n",[23,1071,1072,1073,368],{},"После изменений перезапустите демон: ",[52,1074,1075],{},"sudo systemctl restart docker",[72,1077,1079],{"id":1078},"увеличение-размеров-образов-для-production","Увеличение размеров образов (для production)",[23,1081,1082,1083,1086],{},"Для продакшн-сред рекомендуется настройка драйвера хранения (например, ",[52,1084,1085],{},"overlay2",") и лимитов ресурсов. См. официальную документацию Docker по настройке демона.",[18,1088,1090],{"id":1089},"заключительные-рекомендации","Заключительные рекомендации",[23,1092,1093],{},"Теперь, когда Docker установлен, вы можете:",[799,1095,1096,1110,1117],{},[37,1097,1098,1099,62,1102,62,1105,62,1107,368],{},"Изучить базовые команды: ",[52,1100,1101],{},"docker pull",[52,1103,1104],{},"docker run",[52,1106,830],{},[52,1108,1109],{},"docker exec",[37,1111,1112,1113,1116],{},"Написать свой первый ",[52,1114,1115],{},"Dockerfile"," и собрать образ.",[37,1118,1119,1120,1123],{},"Установить Docker Compose для оркестрации многоконтейнерных приложений (входит в пакет ",[52,1121,1122],{},"docker-compose-plugin",").",[23,1125,1126,1127,62,1130,1133],{},"Для обновления Docker в будущем используйте стандартный менеджер пакетов (",[52,1128,1129],{},"apt upgrade",[52,1131,1132],{},"yum update","). Регулярно проверяйте обновления безопасности.",[1135,1136,1137],"style",{},"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":89,"searchDepth":103,"depth":103,"links":1139},[1140,1141,1144,1150,1151,1160,1164],{"id":20,"depth":103,"text":21},{"id":28,"depth":103,"text":29,"children":1142},[1143],{"id":74,"depth":131,"text":75},{"id":177,"depth":103,"text":178,"children":1145},[1146,1147,1148,1149],{"id":184,"depth":131,"text":185},{"id":462,"depth":131,"text":463},{"id":614,"depth":131,"text":615},{"id":661,"depth":131,"text":662},{"id":793,"depth":103,"text":794},{"id":836,"depth":103,"text":837,"children":1152},[1153,1154,1156,1158],{"id":840,"depth":131,"text":841},{"id":901,"depth":131,"text":1155},"Ошибка: GPG-ключ не найден или NO_PUBKEY",{"id":970,"depth":131,"text":1157},"Ошибка: Error: failed to solve: ... при попытке запуска",{"id":995,"depth":131,"text":1159},"Конфликт версий containerd",{"id":1021,"depth":103,"text":1022,"children":1161},[1162,1163],{"id":1025,"depth":131,"text":1026},{"id":1078,"depth":131,"text":1079},{"id":1089,"depth":103,"text":1090},null,"2026-02-16 13:46:05","Полное руководство по установке Docker на любом дистрибутиве Linux. Официальные репозитории, настройка прав и проверка работы за 15 минут.","easy",false,"15-30 мин","md",[1173,1176,1179,1182],{"question":1174,"answer":1175},"Почему Docker требует sudo для каждой команды?","По умолчанию только root и пользователи в группе `docker` могут управлять демоном. Добавьте текущего пользователя в группу `docker` и перезайдите в систему, чтобы работать без sudo.",{"question":1177,"answer":1178},"Что делать, если при добавлении GPG-ключа возникает ошибка?","Убедитесь, что пакет `curl` или `gnupg` установлен. На старых дистрибутивах может потребоваться использовать `apt-key` (устарел) или вручную скачать ключ.",{"question":1180,"answer":1181},"Можно ли установить Docker на Raspberry Pi с Linux?","Да, но нужно использовать версию Docker для архитектуры ARM. Установите пакет `docker.io` из репозитория дистрибутива или используйте официальный скрипт для ARM.",{"question":1183,"answer":1184},"Как полностью удалить Docker перед переустановкой?","Выполните: `sudo apt-get purge docker-ce docker-ce-cli containerd.io` (для Ubuntu/Debian) или `sudo yum remove docker-ce` (для CentOS/RHEL), затем удалите файлы в `/var/lib/docker`.",[1186,1189,1192,1195,1198],{"name":1187,"text":1188},"Подготовьте систему и удалите старые версии Docker","Обновите кэш пакетов и удалите конфликтующие пакеты Docker, если они есть. Это гарантирует чистую установку.",{"name":1190,"text":1191},"Добавьте официальный репозиторий Docker","Импортируйте GPG-ключ Docker и добавьте стабильный репозиторий, соответствующий вашему дистрибутиву.",{"name":1193,"text":1194},"Установите Docker Engine и вспомогательные компоненты","Установите пакеты `docker-ce`, `docker-ce-cli` и `containerd.io` через менеджер пакетов вашего дистрибутива.",{"name":1196,"text":1197},"Настройте права доступа и запустите сервис","Добавьте текущего пользователя в группу `docker`, затем запустите и включите автозагрузку демона Docker.",{"name":1199,"text":1200},"Проверьте работоспособность установки","Выполните команду `docker run hello-world` для проверки связи с демоном и корректности настройки.","PT30M",[1203,1204,1205,1206,1207,1208,1209,1210,1211,1212],"установка docker на linux","docker engine установка ubuntu","как установить docker на centos","docker linux инструкция","установка docker через терминал","docker ошибка permission denied","добавить репозиторий docker","запуск docker без sudo","docker hello world","удалить старый docker","ru_RU",{},"/guides/linux/docker-installation","linux",[1218,1219,1220],"/guides/linux/docker-run-basic","/errors/linux/docker-permission-denied","/guides/linux/docker-compose-install","Гайды Docker",{"title":5,"description":1167},"guides/linux/docker-installation","Этот гайд поможет вам правильно установить Docker Engine на популярные дистрибутивы Linux, включая Ubuntu, CentOS, Fedora и Arch. Вы научитесь добавлять репозиторий, устанавливать пакеты и настраивать права для работы без sudo.",[1226,775,1216,1227,1228,1229,1230,1231],"установка","ubuntu","centos","containerization","devops","контейнеры","guide","E7mh90BkVudDcPI6Cr_QBqlS5DHoLvpQZQS6L1zaZgY",{"data":1235,"body":1236},{},{"type":1237,"children":1238},"root",[1239],{"type":1240,"tag":23,"props":1241,"children":1242},"element",{},[1243,1246,1251,1253,1258],{"type":1244,"value":1245},"text","По умолчанию только root и пользователи в группе ",{"type":1240,"tag":52,"props":1247,"children":1249},{"className":1248},[],[1250],{"type":1244,"value":775},{"type":1244,"value":1252}," могут управлять демоном. Добавьте текущего пользователя в группу ",{"type":1240,"tag":52,"props":1254,"children":1256},{"className":1255},[],[1257],{"type":1244,"value":775},{"type":1244,"value":1259}," и перезайдите в систему, чтобы работать без sudo.",{"data":1261,"body":1262},{},{"type":1237,"children":1263},[1264],{"type":1240,"tag":23,"props":1265,"children":1266},{},[1267,1269,1274,1276,1281,1283,1289],{"type":1244,"value":1268},"Убедитесь, что пакет ",{"type":1240,"tag":52,"props":1270,"children":1272},{"className":1271},[],[1273],{"type":1244,"value":61},{"type":1244,"value":1275}," или ",{"type":1240,"tag":52,"props":1277,"children":1279},{"className":1278},[],[1280],{"type":1244,"value":65},{"type":1244,"value":1282}," установлен. На старых дистрибутивах может потребоваться использовать ",{"type":1240,"tag":52,"props":1284,"children":1286},{"className":1285},[],[1287],{"type":1244,"value":1288},"apt-key",{"type":1244,"value":1290}," (устарел) или вручную скачать ключ.",{"data":1292,"body":1293},{},{"type":1237,"children":1294},[1295],{"type":1240,"tag":23,"props":1296,"children":1297},{},[1298,1300,1305],{"type":1244,"value":1299},"Да, но нужно использовать версию Docker для архитектуры ARM. Установите пакет ",{"type":1240,"tag":52,"props":1301,"children":1303},{"className":1302},[],[1304],{"type":1244,"value":81},{"type":1244,"value":1306}," из репозитория дистрибутива или используйте официальный скрипт для ARM.",{"data":1308,"body":1309},{},{"type":1237,"children":1310},[1311],{"type":1240,"tag":23,"props":1312,"children":1313},{},[1314,1316,1322,1323,1329,1331,1337],{"type":1244,"value":1315},"Выполните: ",{"type":1240,"tag":52,"props":1317,"children":1319},{"className":1318},[],[1320],{"type":1244,"value":1321},"sudo apt-get purge docker-ce docker-ce-cli containerd.io",{"type":1244,"value":66},{"type":1240,"tag":52,"props":1324,"children":1326},{"className":1325},[],[1327],{"type":1244,"value":1328},"sudo yum remove docker-ce",{"type":1244,"value":1330}," (для CentOS/RHEL), затем удалите файлы в ",{"type":1240,"tag":52,"props":1332,"children":1334},{"className":1333},[],[1335],{"type":1244,"value":1336},"/var/lib/docker",{"type":1244,"value":368},{"data":1339,"body":1340},{},{"type":1237,"children":1341},[1342],{"type":1240,"tag":23,"props":1343,"children":1344},{},[1345],{"type":1244,"value":1188},{"data":1347,"body":1348},{},{"type":1237,"children":1349},[1350],{"type":1240,"tag":23,"props":1351,"children":1352},{},[1353],{"type":1244,"value":1191},{"data":1355,"body":1356},{},{"type":1237,"children":1357},[1358],{"type":1240,"tag":23,"props":1359,"children":1360},{},[1361,1363,1369,1370,1376,1378,1384],{"type":1244,"value":1362},"Установите пакеты ",{"type":1240,"tag":52,"props":1364,"children":1366},{"className":1365},[],[1367],{"type":1244,"value":1368},"docker-ce",{"type":1244,"value":62},{"type":1240,"tag":52,"props":1371,"children":1373},{"className":1372},[],[1374],{"type":1244,"value":1375},"docker-ce-cli",{"type":1244,"value":1377}," и ",{"type":1240,"tag":52,"props":1379,"children":1381},{"className":1380},[],[1382],{"type":1244,"value":1383},"containerd.io",{"type":1244,"value":1385}," через менеджер пакетов вашего дистрибутива.",{"data":1387,"body":1388},{},{"type":1237,"children":1389},[1390],{"type":1240,"tag":23,"props":1391,"children":1392},{},[1393,1395,1400],{"type":1244,"value":1394},"Добавьте текущего пользователя в группу ",{"type":1240,"tag":52,"props":1396,"children":1398},{"className":1397},[],[1399],{"type":1244,"value":775},{"type":1244,"value":1401},", затем запустите и включите автозагрузку демона Docker.",{"data":1403,"body":1404},{},{"type":1237,"children":1405},[1406],{"type":1240,"tag":23,"props":1407,"children":1408},{},[1409,1411,1417],{"type":1244,"value":1410},"Выполните команду ",{"type":1240,"tag":52,"props":1412,"children":1414},{"className":1413},[],[1415],{"type":1244,"value":1416},"docker run hello-world",{"type":1244,"value":1418}," для проверки связи с демоном и корректности настройки.",[1420,2151,3179],{"id":1421,"title":1422,"appliesTo":1423,"author":13,"body":1427,"canonical":1165,"code":1165,"createdAt":2097,"description":2098,"difficulty":1168,"draft":1169,"estimatedTime":2099,"extension":1171,"faq":2100,"howToSteps":2113,"howToTotalTime":2129,"image":1165,"keywords":2130,"locale":1213,"meta":2139,"navigation":134,"path":1218,"platform":1216,"related":2140,"section":1221,"seo":2143,"severity":1165,"stem":2144,"summary":2145,"tags":2146,"twitterCreator":1165,"twitterSite":1165,"type":1232,"updatedAt":2097,"__hash__":2150},"content_ru/guides/linux/docker-run-basic.md","Docker run: полное руководство по запуску контейнеров в Linux",[1424,1425,8,1426],"Docker 20.10+","Ubuntu 20.04/22.04","CentOS 8/Rocky 9",{"type":15,"value":1428,"toc":2084},[1429,1431,1436,1438,1440,1484,1486,1490,1500,1518,1527,1531,1545,1570,1574,1597,1604,1608,1618,1651,1656,1684,1691,1704,1708,1717,1751,1763,1767,1779,1853,1871,1873,1875,1920,1922,2045,2082],[18,1430,21],{"id":20},[23,1432,803,1433,1435],{},[52,1434,1104],{}," — это основной инструмент для запуска контейнеров Docker. Она берёт Docker-образ, создаёт из него новый контейнер и запускает его с заданными параметрами. Понимание этой команды — первый и самый важный шаг в работе с Docker. После прохождения этого гайда вы сможете уверенно запускать контейнеры с веб-серверами, базами данных или любым другим ПО, настраивать сеть, хранилище и интерактивный доступ.",[18,1437,29],{"id":28},[23,1439,32],{},[799,1441,1442,1452,1472],{},[37,1443,1444,1447,1448,1451],{},[41,1445,1446],{},"Docker Engine установлен и работает."," Проверьте командой ",[52,1449,1450],{},"docker --version",". Результат должен показывать версию 20.10 или новее.",[37,1453,1454,1457,1458,1460,1461,1464,1465,1467,1468,1471],{},[41,1455,1456],{},"Ваш пользователь имеет права на управление Docker."," Обычно это требует membership в группе ",[52,1459,775],{},". Проверьте ",[52,1462,1463],{},"groups $USER",". Если группы ",[52,1466,775],{}," нет, добавьте пользователя (",[52,1469,1470],{},"sudo usermod -aG docker $USER",") и перелогиньтесь.",[37,1473,1474,1477,1478,62,1481,1483],{},[41,1475,1476],{},"Вы можете загружать образы из Docker Hub."," Для публичных образов (как ",[52,1479,1480],{},"nginx",[52,1482,1227],{},") это работает по умолчанию.",[18,1485,178],{"id":177},[72,1487,1489],{"id":1488},"шаг-1-базовый-синтаксис-и-запуск-тестового-контейнера","Шаг 1: Базовый синтаксис и запуск тестового контейнера",[23,1491,1492,1493,1496,1497,1499],{},"Самый простой вызов команды: ",[52,1494,1495],{},"docker run \u003Cимя_образа>",". Docker проверит наличие образа локально. Если его нет — автоматически загрузит (pull) с Docker Hub, создаст контейнер и запустит команду по умолчанию, указанную в ",[52,1498,1115],{}," образа.",[84,1501,1503],{"className":86,"code":1502,"language":88,"meta":89,"style":89},"# Запуск официального тестового образа\ndocker run hello-world\n",[52,1504,1505,1510],{"__ignoreMap":89},[93,1506,1507],{"class":95,"line":96},[93,1508,1509],{"class":99},"# Запуск официального тестового образа\n",[93,1511,1512,1514,1516],{"class":95,"line":103},[93,1513,775],{"class":106},[93,1515,778],{"class":109},[93,1517,781],{"class":109},[23,1519,1520,1523,1524,1526],{},[41,1521,1522],{},"Что произошло:"," Docker загрузил образ ",[52,1525,813],{},", запустил его. Контейнер выполнил свою задачу (вывод приветствия) и остановился.",[72,1528,1530],{"id":1529},"шаг-2-интерактивный-запуск-и-работа-в-контейнере","Шаг 2: Интерактивный запуск и работа в контейнере",[23,1532,1533,1534,1536,1537,1540,1541,1544],{},"Чтобы оставаться внутри контейнера после запуска (например, для оболочки ",[52,1535,88],{},"), используйте флаги ",[52,1538,1539],{},"-i"," (интерактивный) и ",[52,1542,1543],{},"-t"," (присвоить TTY, терминал).",[84,1546,1548],{"className":86,"code":1547,"language":88,"meta":89,"style":89},"# Запуск образа Ubuntu и вход в оболочку bash\ndocker run -it ubuntu:22.04 bash\n",[52,1549,1550,1555],{"__ignoreMap":89},[93,1551,1552],{"class":95,"line":96},[93,1553,1554],{"class":99},"# Запуск образа Ubuntu и вход в оболочку bash\n",[93,1556,1557,1559,1561,1564,1567],{"class":95,"line":103},[93,1558,775],{"class":106},[93,1560,778],{"class":109},[93,1562,1563],{"class":257}," -it",[93,1565,1566],{"class":109}," ubuntu:22.04",[93,1568,1569],{"class":109}," bash\n",[23,1571,1572],{},[41,1573,1522],{},[34,1575,1576,1582,1588],{},[37,1577,1578,1581],{},[52,1579,1580],{},"-it"," — вы подключились к контейнеру.",[37,1583,1584,1587],{},[52,1585,1586],{},"ubuntu:22.04"," — конкретная версия образа.",[37,1589,1590,1592,1593,1596],{},[52,1591,88],{}," — команда, которую нужно выполнить внутри контейнера (переопределяет ",[52,1594,1595],{},"CMD"," из образа).",[23,1598,1599,1600,1603],{},"Вы окажетесь в командной строке внутри контейнера. Чтобы выйти, наберите ",[52,1601,1602],{},"exit",". Контейнер остановится.",[72,1605,1607],{"id":1606},"шаг-3-работа-в-фоновом-режиме-и-проброс-портов","Шаг 3: Работа в фоновом режиме и проброс портов",[23,1609,1610,1611,1614,1615,368],{},"Часто контейнеры (веб-серверы, БД) нужно запускать в фоне (detached). Ключевой флаг ",[52,1612,1613],{},"-d",". Для доступа к сервису из хоста нужен проброс портов ",[52,1616,1617],{},"-p",[84,1619,1621],{"className":86,"code":1620,"language":88,"meta":89,"style":89},"# Запуск Nginx в фоне, проброс порта 8080 хоста -> 80 контейнера\ndocker run -d -p 8080:80 --name my-nginx nginx:latest\n",[52,1622,1623,1628],{"__ignoreMap":89},[93,1624,1625],{"class":95,"line":96},[93,1626,1627],{"class":99},"# Запуск Nginx в фоне, проброс порта 8080 хоста -> 80 контейнера\n",[93,1629,1630,1632,1634,1636,1639,1642,1645,1648],{"class":95,"line":103},[93,1631,775],{"class":106},[93,1633,778],{"class":109},[93,1635,264],{"class":257},[93,1637,1638],{"class":257}," -p",[93,1640,1641],{"class":109}," 8080:80",[93,1643,1644],{"class":257}," --name",[93,1646,1647],{"class":109}," my-nginx",[93,1649,1650],{"class":109}," nginx:latest\n",[23,1652,1653],{},[41,1654,1655],{},"Разбор флагов:",[34,1657,1658,1663,1672,1678],{},[37,1659,1660,1662],{},[52,1661,1613],{}," — запуск в фоновом режиме (возвращает ID контейнера).",[37,1664,1665,1668,1669,368],{},[52,1666,1667],{},"-p 8080:80"," — проброс портов: ",[52,1670,1671],{},"хостовый_порт:порт_в_контейнере",[37,1673,1674,1677],{},[52,1675,1676],{},"--name my-nginx"," — задаёт удобное имя контейнеру (вместо случайного ID).",[37,1679,1680,1683],{},[52,1681,1682],{},"nginx:latest"," — образ для запуска.",[23,1685,1686,1687,1690],{},"Теперь Nginx работает в контейнере. Откройте в браузере ",[52,1688,1689],{},"http://localhost:8080"," — вы увидите стартовую страницу Nginx.",[745,1692,1693],{},[23,1694,1695,1696,1699,1700,1703],{},"💡 ",[41,1697,1698],{},"Совет:"," Для проброса всех портов контейнера на случайные порты хоста используйте ",[52,1701,1702],{},"-P"," (заглавная P).",[72,1705,1707],{"id":1706},"шаг-4-монтирование-томов-и-управление-данными","Шаг 4: Монтирование томов и управление данными",[23,1709,1710,1711,1275,1714,368],{},"По умолчанию данные внутри контейнера исчезают после его удаления. Чтобы сохранять файлы на хосте или делиться ими между контейнерами, используйте ",[41,1712,1713],{},"тома (volumes)",[41,1715,1716],{},"bind mounts",[84,1718,1720],{"className":86,"code":1719,"language":88,"meta":89,"style":89},"# Запуск контейнера с монтированием текущей директории хоста в /app контейнера\ndocker run -it -v \"$(pwd)\":/app ubuntu:22.04 bash\n",[52,1721,1722,1727],{"__ignoreMap":89},[93,1723,1724],{"class":95,"line":96},[93,1725,1726],{"class":99},"# Запуск контейнера с монтированием текущей директории хоста в /app контейнера\n",[93,1728,1729,1731,1733,1735,1738,1741,1744,1747,1749],{"class":95,"line":103},[93,1730,775],{"class":106},[93,1732,778],{"class":109},[93,1734,1563],{"class":257},[93,1736,1737],{"class":257}," -v",[93,1739,1740],{"class":109}," \"$(",[93,1742,1743],{"class":257},"pwd",[93,1745,1746],{"class":109},")\":/app",[93,1748,1566],{"class":109},[93,1750,1569],{"class":109},[23,1752,1753,1755,1756,1759,1760,1762],{},[41,1754,1522],{}," Директория, в которой вы выполнили команду на хосте, теперь доступна внутри контейнера по пути ",[52,1757,1758],{},"/app",". Все изменения в ",[52,1761,1758],{}," будут видны и на хосте, и после перезапуска контейнера.",[72,1764,1766],{"id":1765},"шаг-5-управление-жизненным-циклом-контейнера","Шаг 5: Управление жизненным циклом контейнера",[23,1768,1769,1771,1772,1775,1776,368],{},[52,1770,1104],{}," создаёт и запускает новый контейнер. Если контейнер уже существует (остановленный), используйте ",[52,1773,1774],{},"docker start","/",[52,1777,1778],{},"docker stop",[84,1780,1782],{"className":86,"code":1781,"language":88,"meta":89,"style":89},"# Остановка запущенного контейнера по имени\ndocker stop my-nginx\n\n# Запуск остановленного контейнера (с теми же параметрами)\ndocker start my-nginx\n\n# Просмотр всех контейнеров (включая остановленные)\ndocker ps -a\n\n# Удаление остановленного контейнера\ndocker rm my-nginx\n",[52,1783,1784,1789,1799,1803,1808,1816,1820,1825,1835,1839,1844],{"__ignoreMap":89},[93,1785,1786],{"class":95,"line":96},[93,1787,1788],{"class":99},"# Остановка запущенного контейнера по имени\n",[93,1790,1791,1793,1796],{"class":95,"line":103},[93,1792,775],{"class":106},[93,1794,1795],{"class":109}," stop",[93,1797,1798],{"class":109}," my-nginx\n",[93,1800,1801],{"class":95,"line":131},[93,1802,135],{"emptyLinePlaceholder":134},[93,1804,1805],{"class":95,"line":138},[93,1806,1807],{"class":99},"# Запуск остановленного контейнера (с теми же параметрами)\n",[93,1809,1810,1812,1814],{"class":95,"line":144},[93,1811,775],{"class":106},[93,1813,710],{"class":109},[93,1815,1798],{"class":109},[93,1817,1818],{"class":95,"line":239},[93,1819,135],{"emptyLinePlaceholder":134},[93,1821,1822],{"class":95,"line":244},[93,1823,1824],{"class":99},"# Просмотр всех контейнеров (включая остановленные)\n",[93,1826,1827,1829,1832],{"class":95,"line":250},[93,1828,775],{"class":106},[93,1830,1831],{"class":109}," ps",[93,1833,1834],{"class":257}," -a\n",[93,1836,1837],{"class":95,"line":270},[93,1838,135],{"emptyLinePlaceholder":134},[93,1840,1841],{"class":95,"line":275},[93,1842,1843],{"class":99},"# Удаление остановленного контейнера\n",[93,1845,1846,1848,1851],{"class":95,"line":281},[93,1847,775],{"class":106},[93,1849,1850],{"class":109}," rm",[93,1852,1798],{"class":109},[745,1854,1855],{},[23,1856,749,1857,1859,1860,1863,1864,1867,1868,1123],{},[41,1858,752],{}," Удаление контейнера (",[52,1861,1862],{},"rm",") ",[41,1865,1866],{},"не удаляет"," образ, из которого он был создан. Образы управляются отдельно (",[52,1869,1870],{},"docker image rm",[1017,1872],{},[18,1874,794],{"id":793},[799,1876,1877,1889,1901,1911],{},[37,1878,1879,1882,1883,1885,1886,1123],{},[41,1880,1881],{},"Контейнер запущен:"," Выполните ",[52,1884,830],{},". В списке должны быть активные контейнеры (например, ",[52,1887,1888],{},"my-nginx",[37,1890,1891,1894,1895,1897,1898,1900],{},[41,1892,1893],{},"Сервис доступен:"," Для веб-сервера откройте указанный в ",[52,1896,1617],{}," порт в браузере (",[52,1899,1689],{},"). Для БД проверьте подключение локально.",[37,1902,1903,1906,1907,1910],{},[41,1904,1905],{},"Данные сохраняются:"," Если вы монтировали том, создайте файл внутри контейнера (",[52,1908,1909],{},"touch /app/test.txt",") и проверьте его наличие в соответствующей директории на хосте.",[37,1912,1913,1916,1917,368],{},[41,1914,1915],{},"Логи контейнера:"," Просмотрите логи на предмет ошибок: ",[52,1918,1919],{},"docker logs \u003Cимя_или_id_контейнера>",[18,1921,837],{"id":836},[1923,1924,1925,1942],"table",{},[1926,1927,1928],"thead",{},[1929,1930,1931,1936,1939],"tr",{},[1932,1933,1935],"th",{"align":1934},"left","Проблема",[1932,1937,1938],{"align":1934},"Причина",[1932,1940,1941],{"align":1934},"Решение",[1943,1944,1945,1964,1984,2006,2023],"tbody",{},[1929,1946,1947,1953,1958],{},[1948,1949,1950],"td",{"align":1934},[52,1951,1952],{},"Got permission denied while trying to connect to the Docker daemon socket",[1948,1954,1955,1956,368],{"align":1934},"Пользователь не в группе ",[52,1957,775],{},[1948,1959,1960,1961,1963],{"align":1934},"Выполните ",[52,1962,1470],{},", выйдите из сессии и зайдите заново.",[1929,1965,1966,1975,1978],{},[1948,1967,1968,1971,1972],{"align":1934},[52,1969,1970],{},"Unable to find image '\u003Cimage>:latest' locally"," и последующая ошибка ",[52,1973,1974],{},"pull access denied",[1948,1976,1977],{"align":1934},"Ошибка в имени образа или нет доступа к приватному репозиторию.",[1948,1979,1980,1981,368],{"align":1934},"Проверьте имя образа на Docker Hub. Для приватных репозиториев выполните ",[52,1982,1983],{},"docker login",[1929,1985,1986,1993,1996],{},[1948,1987,1988,1989,1992],{"align":1934},"Порт уже занят (",[52,1990,1991],{},"Bind for 0.0.0.0:8080 failed: port is already allocated",")",[1948,1994,1995],{"align":1934},"На хосте уже запущен процесс, слушающий порт 8080.",[1948,1997,1998,1999,2002,2003,1123],{"align":1934},"Остановите конфликтующий процесс (",[52,2000,2001],{},"sudo lsof -i :8080","), или используйте другой порт хоста (",[52,2004,2005],{},"-p 8081:80",[1929,2007,2008,2011,2014],{},[1948,2009,2010],{"align":1934},"Контейнер сразу останавливается",[1948,2012,2013],{"align":1934},"Основной процесс внутри контейнера завершился.",[1948,2015,2016,2017,2019,2020,2022],{"align":1934},"Запустите контейнер в интерактивном режиме (",[52,2018,1580],{},") с долгоживущей командой (например, ",[52,2021,88],{},"), чтобы остаться внутри и диагностировать проблему.",[1929,2024,2025,2028,2035],{},[1948,2026,2027],{"align":1934},"Файлы не сохраняются после удаления контейнера",[1948,2029,2030,2031,2034],{"align":1934},"Том не был явно объявлен (",[52,2032,2033],{},"-v",") или это был анонимный volume, привязанный к удалённому контейнеру.",[1948,2036,2037,2038,2041,2042,1123],{"align":1934},"Всегда монтируйте внешние тома для важных данных. Удаляйте только контейнер (",[52,2039,2040],{},"docker rm","), не затрагивая тома (",[52,2043,2044],{},"docker volume ls",[84,2046,2048],{"className":86,"code":2047,"language":88,"meta":89,"style":89},"# Пример диагностики: запуск оболочки в уже созданном контейнере (если он остановился)\ndocker run -it --rm --entrypoint sh \u003Cimage_name>\n",[52,2049,2050,2055],{"__ignoreMap":89},[93,2051,2052],{"class":95,"line":96},[93,2053,2054],{"class":99},"# Пример диагностики: запуск оболочки в уже созданном контейнере (если он остановился)\n",[93,2056,2057,2059,2061,2063,2066,2069,2072,2074,2077,2080],{"class":95,"line":103},[93,2058,775],{"class":106},[93,2060,778],{"class":109},[93,2062,1563],{"class":257},[93,2064,2065],{"class":257}," --rm",[93,2067,2068],{"class":257}," --entrypoint",[93,2070,2071],{"class":109}," sh",[93,2073,951],{"class":292},[93,2075,2076],{"class":109},"image_nam",[93,2078,2079],{"class":379},"e",[93,2081,960],{"class":292},[1135,2083,1137],{},{"title":89,"searchDepth":103,"depth":103,"links":2085},[2086,2087,2088,2095,2096],{"id":20,"depth":103,"text":21},{"id":28,"depth":103,"text":29},{"id":177,"depth":103,"text":178,"children":2089},[2090,2091,2092,2093,2094],{"id":1488,"depth":131,"text":1489},{"id":1529,"depth":131,"text":1530},{"id":1606,"depth":131,"text":1607},{"id":1706,"depth":131,"text":1707},{"id":1765,"depth":131,"text":1766},{"id":793,"depth":103,"text":794},{"id":836,"depth":103,"text":837},"2026-02-16 18:27:08","Пошаговая инструкция по использованию команды docker run. Узнайте, как запускать, настраивать и управлять контейнерами Docker в Linux с практическими примерами.","10-15 мин",[2101,2104,2107,2110],{"question":2102,"answer":2103},"В чём разница между `docker run` и `docker create`?","`docker create` только создаёт контейнер из образа, но не запускает его. `docker run` — это комбинация `create` + `start`: контейнер создаётся и сразу запускается.",{"question":2105,"answer":2106},"Как сделать так, чтобы контейнер работал в фоне?","Используйте флаг `-d` (detached). Контейнер запустится в фоновом режиме, а вы получите его ID в терминале.",{"question":2108,"answer":2109},"Что делает флаг `--rm` и когда его использовать?","`--rm` автоматически удаляет контейнер после его остановки. Полезно для одноразовых задач (тесты, обработка данных), чтобы не накапливать остановленные контейнеры.",{"question":2111,"answer":2112},"Как открыть порт контейнера для доступа с хоста?","Флаг `-p \u003Cпорт_хоста>:\u003Cпорт_контейнера>`. Например, `-p 8080:80` пробросит порт 80 контейнера на порт 8080 вашей машины.",[2114,2117,2120,2123,2126],{"name":2115,"text":2116},"Проверка установки Docker","Убедитесь, что Docker установлен и демон запущен. Выполните `docker --version` и `docker info`.",{"name":2118,"text":2119},"Базовый синтаксис команды","Изучите структуру: `docker run [ОПЦИИ] ОБРАЗ [КОМАНДА] [АРГУМЕНТЫ]`. Опции управляют поведением, образ — что запускать.",{"name":2121,"text":2122},"Запуск простого контейнера","Запустите тестовый образ `hello-world` без опций: `docker run hello-world`. Это проверит работоспособность Docker.",{"name":2124,"text":2125},"Запуск с флагами (практические примеры)","Используйте `-it` для интерактивного режима, `-p` для проброса портов, `--name` для именования, `-v` для монтирования томов.",{"name":2127,"text":2128},"Управление запущенными контейнерами","Останавливайте (`docker stop \u003Cid>`), запускайте (`docker start \u003Cid>`), удаляйте (`docker rm \u003Cid>`) контейнеры отдельно от образов.","PT15M",[2131,2132,2133,2134,2135,2136,2137,2138],"docker run команда","запуск контейнера docker linux","docker run примеры","как использовать docker run","docker контейнер запуск","docker run флаги","базовые команды docker","запуск образа docker",{},[2141,2142,1219],"/guides/linux/docker-install-ubuntu","/guides/linux/docker-basic-commands",{"title":1422,"description":2098},"guides/linux/docker-run-basic","В этом гайде выlearn основы команды docker run — ключевого инструмента для запуска контейнеров Docker. Мы разберём синтаксис, основные флаги и приведём рабочие примеры для быстрого старта.",[775,1216,2147,1230,2148,2149],"контейнеризация","командная строка","container","ISzyvzK6gWgdz2UwkJXA2JjquolqgX-D9sgCQRhL9Go",{"id":2152,"title":2153,"appliesTo":2154,"author":13,"body":2159,"canonical":1165,"code":2196,"createdAt":3125,"description":3126,"difficulty":3127,"draft":1169,"estimatedTime":1170,"extension":1171,"faq":3128,"howToSteps":3141,"howToTotalTime":1165,"image":1165,"keywords":3154,"locale":1213,"meta":3164,"navigation":134,"path":1219,"platform":1216,"related":3165,"section":3168,"seo":3169,"severity":3170,"stem":3171,"summary":3172,"tags":3173,"twitterCreator":1165,"twitterSite":1165,"type":3177,"updatedAt":3125,"__hash__":3178},"content_ru/errors/linux/docker-permission-denied.md","Docker permission denied: причины и 5 проверенных способов решения",[2155,2156,2157,2158,11],"Ubuntu 20.04+","Debian 11+","CentOS 8+","RHEL 8+",{"type":15,"value":2160,"toc":3111},[2161,2168,2177,2180,2188,2202,2205,2279,2282,2335,2341,2345,2439,2446,2449,2455,2472,2479,2487,2496,2501,2508,2521,2524,2535,2542,2545,2565,2570,2581,2585,2591,2596,2612,2615,2622,2630,2635,2663,2668,2684,2694,2698,2707,2712,2735,2740,2755,2758,2778,2799,2808,2824,2829,2843,2847,2852,2871,2877,2882,2897,2900,2920,2925,2944,2946,2950,2999,3003,3021,3042,3057,3076,3096,3108],[23,2162,2163,2164,2167],{},"-",[52,2165,2166],{},"и владелец","root:docker`.\"",[34,2169,2170],{},[37,2171,2172,2173,2176],{},"name: \"Временное решение через sudo\"\ntext: \"Для срочного запуска используйте ",[52,2174,2175],{},"sudo docker ...",", но это не рекомендуется для повседневной работы из-за рисков безопасности.\"\nhowToTotalTime: \"PT15M\"",[2178,2179],"hr",{},[18,2181,2183,2184,2187],{"id":2182},"что-означает-ошибка-permission-denied-в-docker","Что означает ошибка ",[52,2185,2186],{},"permission denied"," в Docker",[23,2189,2190,2191,2193,2194,2197,2198,2201],{},"Ошибка ",[52,2192,2186],{}," (иногда с кодом ",[52,2195,2196],{},"EACCES",") означает, что текущий пользователь Linux не имеет прав на доступ к демону Docker (через сокет ",[52,2199,2200],{},"/var/run/docker.sock",") или к файлам/директориям внутри контейнера/образов.",[23,2203,2204],{},"Типичный полный текст:",[84,2206,2208],{"className":86,"code":2207,"language":88,"meta":89,"style":89},"docker: Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post \"http://%2Fvar%2Frun%2Fdocker.sock/v1.41/containers/create\": dial unix /var/run/docker.sock: connect: permission denied.\n",[52,2209,2210],{"__ignoreMap":89},[93,2211,2212,2215,2218,2221,2224,2227,2230,2233,2236,2238,2241,2244,2247,2250,2253,2256,2259,2262,2265,2268,2271,2274,2276],{"class":95,"line":96},[93,2213,2214],{"class":106},"docker:",[93,2216,2217],{"class":109}," Got",[93,2219,2220],{"class":109}," permission",[93,2222,2223],{"class":109}," denied",[93,2225,2226],{"class":109}," while",[93,2228,2229],{"class":109}," trying",[93,2231,2232],{"class":109}," to",[93,2234,2235],{"class":109}," connect",[93,2237,2232],{"class":109},[93,2239,2240],{"class":109}," the",[93,2242,2243],{"class":109}," Docker",[93,2245,2246],{"class":109}," daemon",[93,2248,2249],{"class":109}," socket",[93,2251,2252],{"class":109}," at",[93,2254,2255],{"class":109}," unix:///var/run/docker.sock:",[93,2257,2258],{"class":109}," Post",[93,2260,2261],{"class":109}," \"http://%2Fvar%2Frun%2Fdocker.sock/v1.41/containers/create\":",[93,2263,2264],{"class":109}," dial",[93,2266,2267],{"class":109}," unix",[93,2269,2270],{"class":109}," /var/run/docker.sock:",[93,2272,2273],{"class":109}," connect:",[93,2275,2220],{"class":109},[93,2277,2278],{"class":109}," denied.\n",[23,2280,2281],{},"Или при работе с файлами:",[84,2283,2285],{"className":86,"code":2284,"language":88,"meta":89,"style":89},"docker: Error response from daemon: Get \"https://registry-1.docker.io/v2/\": dial tcp: lookup registry-1.docker.io: Temporary failure in name resolution.\n",[52,2286,2287],{"__ignoreMap":89},[93,2288,2289,2291,2294,2297,2300,2303,2306,2309,2311,2314,2317,2320,2323,2326,2329,2332],{"class":95,"line":96},[93,2290,2214],{"class":106},[93,2292,2293],{"class":109}," Error",[93,2295,2296],{"class":109}," response",[93,2298,2299],{"class":109}," from",[93,2301,2302],{"class":109}," daemon:",[93,2304,2305],{"class":109}," Get",[93,2307,2308],{"class":109}," \"https://registry-1.docker.io/v2/\":",[93,2310,2264],{"class":109},[93,2312,2313],{"class":109}," tcp:",[93,2315,2316],{"class":109}," lookup",[93,2318,2319],{"class":109}," registry-1.docker.io:",[93,2321,2322],{"class":109}," Temporary",[93,2324,2325],{"class":109}," failure",[93,2327,2328],{"class":109}," in",[93,2330,2331],{"class":109}," name",[93,2333,2334],{"class":109}," resolution.\n",[23,2336,2337,2338,2340],{},"Ошибка появляется при выполнении любых команд ",[52,2339,775],{}," (run, ps, build, pull) от обычного пользователя.",[18,2342,2344],{"id":2343},"причины-возникновения","Причины возникновения",[799,2346,2347,2364,2381,2396,2410,2425],{},[37,2348,2349,2354,2357,2358,2360,2361,2363],{},[41,2350,2351,2352],{},"Пользователь не состоит в группе ",[52,2353,775],{},[2355,2356],"br",{},"\nПо умолчанию сокет ",[52,2359,2200],{}," принадлежит группе ",[52,2362,775],{},". Если пользователь не в этой группе, доступ запрещён.",[37,2365,2366,2371,2373,2374,2377,2378,368],{},[41,2367,2368,2369],{},"Неправильные права на сокет ",[52,2370,2200],{},[2355,2372],{},"\nНапример, если сокет создан с правами ",[52,2375,2376],{},"600"," (только root) или владельцем ",[52,2379,2380],{},"root:root",[37,2382,2383,2386,2388,2389,2392,2393,368],{},[41,2384,2385],{},"SELinux в режиме enforcing (RHEL/CentOS/Fedora)",[2355,2387],{},"\nSELinux может блокировать доступ Docker к сокету или файлам. Часто проявляется в сообщениях ",[52,2390,2391],{},"avc: denied"," в ",[52,2394,2395],{},"audit.log",[37,2397,2398,2401,2403,2404,1275,2407,368],{},[41,2399,2400],{},"AppArmor (Ubuntu/Debian)",[2355,2402],{},"\nПрофили AppArmor могут ограничивать доступ Docker. Ошибки в ",[52,2405,2406],{},"syslog",[52,2408,2409],{},"dmesg",[37,2411,2412,2415,2417,2418,2421,2422,368],{},[41,2413,2414],{},"Попытка монтирования хостовой директории без прав",[2355,2416],{},"\nПри ",[52,2419,2420],{},"docker run -v /host/path:/container"," если у пользователя нет прав на чтение/запись в ",[52,2423,2424],{},"/host/path",[37,2426,2427,2436,2438],{},[41,2428,2429,2430,1275,2433],{},"Файловая система смонтирована с опцией ",[52,2431,2432],{},"noexec",[52,2434,2435],{},"nosuid",[2355,2437],{},"\nМожет мешать выполнению бинарников внутри контейнера.",[18,2440,2442,2443,2445],{"id":2441},"способ-1-добавить-пользователя-в-группу-docker-рекомендуемый","Способ 1: Добавить пользователя в группу ",[52,2444,775],{}," (рекомендуемый)",[23,2447,2448],{},"Это каноническое решение для большинства дистрибутивов.",[799,2450,2451],{},[37,2452,1394,2453,1033],{},[52,2454,775],{},[84,2456,2458],{"className":86,"code":2457,"language":88,"meta":89,"style":89},"sudo usermod -aG docker $USER\n",[52,2459,2460],{"__ignoreMap":89},[93,2461,2462,2464,2466,2468,2470],{"class":95,"line":96},[93,2463,43],{"class":106},[93,2465,683],{"class":109},[93,2467,686],{"class":257},[93,2469,116],{"class":109},[93,2471,691],{"class":379},[23,2473,2474,2475,2478],{},"Флаг ",[52,2476,2477],{},"-aG"," (append to group) критически важен — без него пользователь может быть удалён из других групп.",[799,2480,2481],{"start":103},[37,2482,2483,2486],{},[41,2484,2485],{},"Примените изменения",": выйдите из терминала и системы (или перезагрузите). В новом сеансе проверьте:",[84,2488,2490],{"className":86,"code":2489,"language":88,"meta":89,"style":89},"groups\n",[52,2491,2492],{"__ignoreMap":89},[93,2493,2494],{"class":95,"line":96},[93,2495,2489],{"class":106},[23,2497,2498,2499,368],{},"В списке должна быть ",[52,2500,775],{},[799,2502,2503],{"start":131},[37,2504,2505,2506,1033],{},"Проверьте, что команды работают без ",[52,2507,43],{},[84,2509,2511],{"className":86,"code":2510,"language":88,"meta":89,"style":89},"docker run hello-world\n",[52,2512,2513],{"__ignoreMap":89},[93,2514,2515,2517,2519],{"class":95,"line":96},[93,2516,775],{"class":106},[93,2518,778],{"class":109},[93,2520,781],{"class":109},[23,2522,2523],{},"Если контейнер запустился — проблема решена.",[745,2525,2526],{},[23,2527,749,2528,2530,2531,2534],{},[41,2529,752],{}," После добавления в группу необходимо ",[41,2532,2533],{},"новый логин",". Это распространённая ошибка.",[18,2536,2538,2539,2541],{"id":2537},"способ-2-временный-запуск-через-sudo-не-для-продакшена","Способ 2: Временный запуск через ",[52,2540,43],{}," (не для продакшена)",[23,2543,2544],{},"Если нужно срочно запустить контейнер, а настройку групп сделать нельзя:",[84,2546,2548],{"className":86,"code":2547,"language":88,"meta":89,"style":89},"sudo docker run -it ubuntu bash\n",[52,2549,2550],{"__ignoreMap":89},[93,2551,2552,2554,2556,2558,2560,2563],{"class":95,"line":96},[93,2553,43],{"class":106},[93,2555,116],{"class":109},[93,2557,778],{"class":109},[93,2559,1563],{"class":257},[93,2561,2562],{"class":109}," ubuntu",[93,2564,1569],{"class":109},[23,2566,2567],{},[41,2568,2569],{},"Недостатки:",[34,2571,2572,2575,2578],{},[37,2573,2574],{},"Контейнер получает root-права хоста (опасность).",[37,2576,2577],{},"Файлы, созданные в контейнере, будут принадлежать root на хосте.",[37,2579,2580],{},"Неудобно для повседневной работы.",[18,2582,2584],{"id":2583},"способ-3-проверитьисправить-права-на-сокет-вручную","Способ 3: Проверить/исправить права на сокет вручную",[23,2586,2587,2588,2590],{},"Если группа ",[52,2589,775],{}," есть, но доступ всё равно denied:",[799,2592,2593],{},[37,2594,2595],{},"Проверьте текущие права:",[84,2597,2599],{"className":86,"code":2598,"language":88,"meta":89,"style":89},"ls -l /var/run/docker.sock\n",[52,2600,2601],{"__ignoreMap":89},[93,2602,2603,2606,2609],{"class":95,"line":96},[93,2604,2605],{"class":106},"ls",[93,2607,2608],{"class":257}," -l",[93,2610,2611],{"class":109}," /var/run/docker.sock\n",[23,2613,2614],{},"Ожидаемый вывод:",[84,2616,2620],{"className":2617,"code":2619,"language":1244},[2618],"language-text","srw-rw---- 1 root docker 0 Фев 16 12:00 /var/run/docker.sock\n",[52,2621,2619],{"__ignoreMap":89},[23,2623,2624,2625,2627,2628,1033],{},"Если группа не ",[52,2626,775],{}," или права ",[52,2629,2376],{},[799,2631,2632],{"start":103},[37,2633,2634],{},"Установите правильного владельца и права:",[84,2636,2638],{"className":86,"code":2637,"language":88,"meta":89,"style":89},"sudo chown root:docker /var/run/docker.sock\nsudo chmod 660 /var/run/docker.sock\n",[52,2639,2640,2652],{"__ignoreMap":89},[93,2641,2642,2644,2647,2650],{"class":95,"line":96},[93,2643,43],{"class":106},[93,2645,2646],{"class":109}," chown",[93,2648,2649],{"class":109}," root:docker",[93,2651,2611],{"class":109},[93,2653,2654,2656,2658,2661],{"class":95,"line":103},[93,2655,43],{"class":106},[93,2657,316],{"class":109},[93,2659,2660],{"class":257}," 660",[93,2662,2611],{"class":109},[799,2664,2665],{"start":131},[37,2666,2667],{},"Перезапустите Docker (на всякий случай):",[84,2669,2671],{"className":86,"code":2670,"language":88,"meta":89,"style":89},"sudo systemctl restart docker\n",[52,2672,2673],{"__ignoreMap":89},[93,2674,2675,2677,2679,2682],{"class":95,"line":96},[93,2676,43],{"class":106},[93,2678,707],{"class":109},[93,2680,2681],{"class":109}," restart",[93,2683,638],{"class":109},[745,2685,2686],{},[23,2687,1695,2688,2690,2691,2693],{},[41,2689,1698],{}," Права на сокет сбрасываются при перезагрузке Docker. Если проблема возвращается, проверьте конфигурацию демона (",[52,2692,1032],{},") или системные unit-файлы.",[18,2695,2697],{"id":2696},"способ-4-настройка-selinux-для-rhelcentosfedora","Способ 4: Настройка SELinux (для RHEL/CentOS/Fedora)",[23,2699,2700,2701,821,2704,1033],{},"Если ",[52,2702,2703],{},"getenforce",[52,2705,2706],{},"Enforcing",[799,2708,2709],{},[37,2710,2711],{},"Проверьте логи SELinux на наличие отказов:",[84,2713,2715],{"className":86,"code":2714,"language":88,"meta":89,"style":89},"sudo ausearch -m avc -ts recent\n",[52,2716,2717],{"__ignoreMap":89},[93,2718,2719,2721,2724,2726,2729,2732],{"class":95,"line":96},[93,2720,43],{"class":106},[93,2722,2723],{"class":109}," ausearch",[93,2725,258],{"class":257},[93,2727,2728],{"class":109}," avc",[93,2730,2731],{"class":257}," -ts",[93,2733,2734],{"class":109}," recent\n",[799,2736,2737],{"start":103},[37,2738,2739],{},"Самый быстрый способ (временно, до перезагрузки):",[84,2741,2743],{"className":86,"code":2742,"language":88,"meta":89,"style":89},"sudo setenforce 0\n",[52,2744,2745],{"__ignoreMap":89},[93,2746,2747,2749,2752],{"class":95,"line":96},[93,2748,43],{"class":106},[93,2750,2751],{"class":109}," setenforce",[93,2753,2754],{"class":257}," 0\n",[23,2756,2757],{},"Попробуйте запустить Docker. Если сработало — проблема в SELinux.",[799,2759,2760],{"start":131},[37,2761,2762,2763],{},"Для постоянного решения:\n",[34,2764,2765,2775],{},[37,2766,2767,2768,2392,2771,2774],{},"Либо переведите SELinux в режим ",[52,2769,2770],{},"permissive",[52,2772,2773],{},"/etc/selinux/config"," (небезопасно).",[37,2776,2777],{},"Либо создайте правильный политику:",[84,2779,2781],{"className":86,"code":2780,"language":88,"meta":89,"style":89},"sudo semanage permissive -a docker_t\n",[52,2782,2783],{"__ignoreMap":89},[93,2784,2785,2787,2790,2793,2796],{"class":95,"line":96},[93,2786,43],{"class":106},[93,2788,2789],{"class":109}," semanage",[93,2791,2792],{"class":109}," permissive",[93,2794,2795],{"class":257}," -a",[93,2797,2798],{"class":109}," docker_t\n",[34,2800,2801],{},[37,2802,2803,2804,2807],{},"Или установите пакет ",[52,2805,2806],{},"docker-selinux"," (если не установлен):",[84,2809,2811],{"className":86,"code":2810,"language":88,"meta":89,"style":89},"sudo yum install docker-selinux\n",[52,2812,2813],{"__ignoreMap":89},[93,2814,2815,2817,2819,2821],{"class":95,"line":96},[93,2816,43],{"class":106},[93,2818,149],{"class":109},[93,2820,227],{"class":109},[93,2822,2823],{"class":109}," docker-selinux\n",[799,2825,2826],{"start":138},[37,2827,2828],{},"Верните enforcing:",[84,2830,2832],{"className":86,"code":2831,"language":88,"meta":89,"style":89},"sudo setenforce 1\n",[52,2833,2834],{"__ignoreMap":89},[93,2835,2836,2838,2840],{"class":95,"line":96},[93,2837,43],{"class":106},[93,2839,2751],{"class":109},[93,2841,2842],{"class":257}," 1\n",[18,2844,2846],{"id":2845},"способ-5-настройка-apparmor-ubuntudebian","Способ 5: Настройка AppArmor (Ubuntu/Debian)",[799,2848,2849],{},[37,2850,2851],{},"Проверьте, загружен ли профиль Docker:",[84,2853,2855],{"className":86,"code":2854,"language":88,"meta":89,"style":89},"sudo apparmor_status | grep docker\n",[52,2856,2857],{"__ignoreMap":89},[93,2858,2859,2861,2864,2866,2869],{"class":95,"line":96},[93,2860,43],{"class":106},[93,2862,2863],{"class":109}," apparmor_status",[93,2865,293],{"class":292},[93,2867,2868],{"class":106}," grep",[93,2870,638],{"class":109},[23,2872,2873,2874,368],{},"Должно быть ",[52,2875,2876],{},"docker-default (enforced)",[799,2878,2879],{"start":103},[37,2880,2881],{},"Если профиль вызывает проблемы, можно его отключить (временно):",[84,2883,2885],{"className":86,"code":2884,"language":88,"meta":89,"style":89},"sudo aa-disable /etc/apparmor.d/docker\n",[52,2886,2887],{"__ignoreMap":89},[93,2888,2889,2891,2894],{"class":95,"line":96},[93,2890,43],{"class":106},[93,2892,2893],{"class":109}," aa-disable",[93,2895,2896],{"class":109}," /etc/apparmor.d/docker\n",[23,2898,2899],{},"Или для конкретного контейнера:",[84,2901,2903],{"className":86,"code":2902,"language":88,"meta":89,"style":89},"docker run --security-opt apparmor=unconfined ...\n",[52,2904,2905],{"__ignoreMap":89},[93,2906,2907,2909,2911,2914,2917],{"class":95,"line":96},[93,2908,775],{"class":106},[93,2910,778],{"class":109},[93,2912,2913],{"class":257}," --security-opt",[93,2915,2916],{"class":109}," apparmor=unconfined",[93,2918,2919],{"class":109}," ...\n",[799,2921,2922],{"start":131},[37,2923,2924],{},"Для постоянного решения переустановите Docker (профиль пересоздастся):",[84,2926,2928],{"className":86,"code":2927,"language":88,"meta":89,"style":89},"sudo apt-get install --reinstall docker-ce\n",[52,2929,2930],{"__ignoreMap":89},[93,2931,2932,2934,2936,2938,2941],{"class":95,"line":96},[93,2933,43],{"class":106},[93,2935,110],{"class":109},[93,2937,227],{"class":109},[93,2939,2940],{"class":257}," --reinstall",[93,2942,2943],{"class":109}," docker-ce\n",[1017,2945],{},[18,2947,2949],{"id":2948},"профилактика","Профилактика",[34,2951,2952,2963,2971,2977,2987,2993],{},[37,2953,2954,2957,2958,2960,2961,368],{},[41,2955,2956],{},"Никогда не работайте от root без необходимости."," Добавляйте пользователей в группу ",[52,2959,775],{}," вместо использования ",[52,2962,43],{},[37,2964,2965,2970],{},[41,2966,2967,2968],{},"Регулярно проверяйте права на ",[52,2969,2200],{}," после обновлений системы или Docker.",[37,2972,2973,2976],{},[41,2974,2975],{},"В продакшн-среде используйте rootless Docker"," (если поддерживается дистрибутивом) — это изолирует демон от root.",[37,2978,2979,2982,2983,2986],{},[41,2980,2981],{},"Для монтирования хостовых директорий"," убедитесь, что у пользователя есть права на них (например, ",[52,2984,2985],{},"chmod o+rx /host/path"," для чтения).",[37,2988,2989,2992],{},[41,2990,2991],{},"В дистрибутивах с SELinux/AppArmor"," не отключайте их полностью — настраивайте политики под Docker.",[37,2994,2995,2998],{},[41,2996,2997],{},"После Changes в группах"," напоминайте пользователям о необходимости перелогина.",[18,3000,3002],{"id":3001},"faq","FAQ",[23,3004,3005,3011,3013,3014,3017,3018,3020],{},[41,3006,3007,3008,3010],{},"Q: Почему после добавления в группу ",[52,3009,775],{}," ошибка всё ещё есть?",[2355,3012],{},"\nA: Скорее всего, вы не вышли и не зашли заново в систему. Группы загружаются при логине. Проверьте ",[52,3015,3016],{},"id -nG"," — если ",[52,3019,775],{}," нет, нужно новый сеанс.",[23,3022,3023,3032,3034,3035,3038,3039,3041],{},[41,3024,3025,3026,3028,3029,3031],{},"Q: Можно ли изменить группу сокета на ",[52,3027,43],{}," вместо ",[52,3030,775],{},"?",[2355,3033],{},"\nA: Технически ",[52,3036,3037],{},"sudo chown root:sudo /var/run/docker.sock"," сработает, но это нарушает принцип наименьших привилегий. Группа ",[52,3040,775],{}," создана специально для этого.",[23,3043,3044,3050,3052,3053,3056],{},[41,3045,3046,3047,3049],{},"Q: Как добавить группу ",[52,3048,775],{},", если её нет?",[2355,3051],{},"\nA: Группа создаётся автоматически при установке Docker. Если её нет, переустановите Docker или создайте вручную: ",[52,3054,3055],{},"sudo groupadd docker"," (обычно не требуется).",[23,3058,3059,3068,3070,3071,3073,3074,368],{},[41,3060,3061,3062,1377,3064,3067],{},"Q: В чём разница между ",[52,3063,775],{},[52,3065,3066],{},"docker-root"," группами?",[2355,3069],{},"\nA: В некоторых дистрибутивах (например, older RHEL) может быть группа ",[52,3072,3066],{},". Она используется для rootless mode. Для обычного Docker нужна ",[52,3075,775],{},[23,3077,3078,3085,3087,3088,3091,3092,3095],{},[41,3079,3080,3081,3084],{},"Q: Почему ",[52,3082,3083],{},"chmod 666 /var/run/docker.sock"," — плохая идея?",[2355,3086],{},"\nA: Это даёт ",[41,3089,3090],{},"всем"," пользователям полный доступ к Docker-демону. Любой локальный пользователь сможет управлять контейнерами, включая запуск с привилегиями ",[52,3093,3094],{},"--privileged",", что эквивалентно root-доступу.",[23,3097,3098,3101,3103,3104,3107],{},[41,3099,3100],{},"Q: Как проверить, какой пользователь запущен в контейнере?",[2355,3102],{},"\nA: ",[52,3105,3106],{},"docker exec \u003Ccontainer> id",". Если uid/gid не совпадают с хостовыми, могут быть проблемы с правами на смонтированные volumes.",[1135,3109,3110],{},"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 .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}",{"title":89,"searchDepth":103,"depth":103,"links":3112},[3113,3115,3116,3118,3120,3121,3122,3123,3124],{"id":2182,"depth":103,"text":3114},"Что означает ошибка permission denied в Docker",{"id":2343,"depth":103,"text":2344},{"id":2441,"depth":103,"text":3117},"Способ 1: Добавить пользователя в группу docker (рекомендуемый)",{"id":2537,"depth":103,"text":3119},"Способ 2: Временный запуск через sudo (не для продакшена)",{"id":2583,"depth":103,"text":2584},{"id":2696,"depth":103,"text":2697},{"id":2845,"depth":103,"text":2846},{"id":2948,"depth":103,"text":2949},{"id":3001,"depth":103,"text":3002},"2026-02-16 09:44:59","Ошибка 'permission denied' при запуске Docker? Узнайте, как исправить за 5-15 минут. Пошаговая инструкция для Ubuntu, Debian, CentOS. Добавьте пользователя в группу docker или настройте права.","medium",[3129,3132,3135,3138],{"answer":3130,"question":3131},"По умолчанию сокет Docker (`/var/run/docker.sock`) принадлежит группе `docker`. Если ваш пользователь не в этой группе, нужны права root (sudo). Добавление в группу решает проблему.","Почему Docker требует sudo, а другие команды нет?",{"answer":3133,"question":3134},"Можно, но это небезопасно. Запуск Docker от root дает контейнерам полный доступ к хосту. Лучше добавить пользователя в группу `docker`.","Можно ли игнорировать ошибку permission denied и работать с sudo?",{"answer":3136,"question":3137},"`usermod` добавляет пользователя в группу `docker` (рекомендуемый, безопасный способ). `chmod 666` даёт всем полный доступ к сокету — это небезопасно и сбрасывается после перезагрузки.","Чем отличается способ с `usermod` от изменения прав на сокет (`chmod`)?",{"answer":3139,"question":3140},"Да, нужно выйти из системы и заново войти (или перезагрузить), чтобы обновить группу. Проверьте `groups` в новом терминале.","Ошибка остаётся после добавления в группу docker?",[3142,3145,3148,3151],{"name":3143,"text":3144},"Добавить текущего пользователя в группу docker","Выполните команду `sudo usermod -aG docker $USER`. Это основной и безопасный способ granting доступа.",{"name":3146,"text":3147},"Применить изменения групп","Выйдите из системы и войдите заново ИЛИ перезагрузите компьютер. Без этого группа не активируется в текущей сессии.",{"name":3149,"text":3150},"Проверить членство в группе","Запустите `groups` в терминале. В выводе должна быть группа `docker`. Также проверьте `docker run hello-world` без sudo.",{"name":3152,"text":3153},"Проверить права на сокет (альтернатива)","Если группа не помогает, проверьте права: `ls -l /var/run/docker.sock`. Должно быть `srw-rw",[3155,3156,3157,3158,3159,3160,3161,1210,3162,3163],"docker permission denied","ошибка доступа docker linux","docker не запускается ошибка","как исправить docker permission denied","docker got permission denied","docker sock permission denied","ошибка eacces docker","группа docker linux","docker.sock права",{},[3166,2141,3167],"/errors/linux/docker-cannot-connect-to-daemon","/errors/linux/selinux-permission-denied","Ошибки Docker",{"title":2153,"description":3126},"high","errors/linux/docker-permission-denied","Статья объясняет, почему возникает ошибка доступа Docker в Linux, и предлагает 5 практических способов её устранения — от добавления пользователя в группу до настройки SELinux/AppArmor.",[3168,3174,3175,775,3176,1230],"permissions","Linux","sysadmin","error","uyX0PdQBhZ3p0O9G_-nxKxMLEh_R_InrSXRp04TngkA",{"id":3180,"title":3181,"appliesTo":3182,"author":13,"body":3186,"canonical":1165,"code":1165,"createdAt":3774,"description":3775,"difficulty":1168,"draft":1169,"estimatedTime":3776,"extension":1171,"faq":3777,"howToSteps":3790,"howToTotalTime":3805,"image":1165,"keywords":3806,"locale":1213,"meta":3814,"navigation":134,"path":1220,"platform":1216,"related":3815,"section":1221,"seo":3817,"severity":1165,"stem":3818,"summary":3819,"tags":3820,"twitterCreator":1165,"twitterSite":1165,"type":1232,"updatedAt":3774,"__hash__":3822},"content_ru/guides/linux/docker-compose-install.md","Установка Docker Compose на Linux: пошаговая инструкция",[7,8,3183,3184,3185],"CentOS 7/8 Stream","Fedora 38/39","Any Linux system with Docker installed",{"type":15,"value":3187,"toc":3761},[3188,3190,3197,3199,3202,3240,3242,3246,3249,3278,3290,3294,3297,3450,3455,3482,3484,3488,3491,3516,3529,3533,3536,3551,3554,3560,3564,3569,3631,3634,3648,3654,3656,3669,3685,3690,3692,3702,3713,3720,3734,3739,3758],[18,3189,21],{"id":20},[23,3191,3192,3193,3196],{},"Docker Compose — это инструмент для определения и запуска многоконтейнерных Docker-приложений. С его помощью вы описываете все сервисы (база данных, веб-сервер, бэкенд) в одном YAML-файле (",[52,3194,3195],{},"docker-compose.yml",") и управляете ими одной командой. Этот гайд поможет вам установить Docker Compose на сервер или рабочую станцию под Linux, что является первым шагом к локальной разработке, тестированию или развёртыванию комплексных приложений.",[18,3198,29],{"id":28},[23,3200,3201],{},"Перед началом убедитесь, что у вас:",[799,3203,3204,3228,3234],{},[37,3205,3206,3209,3210,3222,3223,368],{},[41,3207,3208],{},"Установлен Docker Engine",". Docker Compose работает поверх Docker. Проверьте наличие Docker командой:\n",[84,3211,3213],{"className":86,"code":3212,"language":88,"meta":89,"style":89},"docker --version\n",[52,3214,3215],{"__ignoreMap":89},[93,3216,3217,3219],{"class":95,"line":96},[93,3218,775],{"class":106},[93,3220,3221],{"class":257}," --version\n","\nЕсли Docker не установлен, сначала следуйте нашему ",[3224,3225,3227],"a",{"href":3226},"/guides/linux/docker-install","руководству по установке Docker на Linux",[37,3229,3230,3233],{},[41,3231,3232],{},"Права администратора (sudo)",". Установка пакетов требует прав суперпользователя.",[37,3235,3236,3239],{},[41,3237,3238],{},"Подключение к интернету"," для загрузки пакетов и репозиториев.",[18,3241,178],{"id":177},[72,3243,3245],{"id":3244},"шаг-1-обновите-индекс-пакетов-и-установите-зависимости","Шаг 1: Обновите индекс пакетов и установите зависимости",[23,3247,3248],{},"Откройте терминал и выполните команды для обновления списка доступных пакетов и установки утилит, которые понадобятся для работы с репозиториями.",[84,3250,3252],{"className":86,"code":3251,"language":88,"meta":89,"style":89},"sudo apt-get update\nsudo apt-get install -y ca-certificates curl gnupg\n",[52,3253,3254,3262],{"__ignoreMap":89},[93,3255,3256,3258,3260],{"class":95,"line":96},[93,3257,43],{"class":106},[93,3259,110],{"class":109},[93,3261,209],{"class":109},[93,3263,3264,3266,3268,3270,3272,3274,3276],{"class":95,"line":103},[93,3265,43],{"class":106},[93,3267,110],{"class":109},[93,3269,227],{"class":109},[93,3271,491],{"class":257},[93,3273,230],{"class":109},[93,3275,233],{"class":109},[93,3277,236],{"class":109},[23,3279,3280],{},[3281,3282,3283,3284,1377,3287,368],"em",{},"Для систем на базе RPM (CentOS, Fedora) используйте ",[52,3285,3286],{},"sudo yum update",[52,3288,3289],{},"sudo yum install -y ca-certificates curl gnupg",[72,3291,3293],{"id":3292},"шаг-2-добавьте-официальный-репозиторий-docker","Шаг 2: Добавьте официальный репозиторий Docker",[23,3295,3296],{},"Создайте директорию для ключей GPG и импортируйте официальный ключ Docker. Затем добавьте стабильный репозиторий в sources.list.",[84,3298,3300],{"className":86,"code":3299,"language":88,"meta":89,"style":89},"# Создание директории для ключей (если её нет)\nsudo install -m 0755 -d /etc/apt/keyrings\n\n# Импорт GPG-ключа Docker\ncurl -fsSL https://download.docker.com/linux/$(. /etc/os-release; echo \"$ID\")/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg\n\n# Добавление репозитория\necho \\\n  \"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/$(. /etc/os-release; echo \"$ID\") \\\n  $(. /etc/os-release; echo \"$VERSION_CODENAME\") stable\" | \\\n  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null\n",[52,3301,3302,3306,3320,3324,3329,3376,3380,3385,3391,3418,3438],{"__ignoreMap":89},[93,3303,3304],{"class":95,"line":96},[93,3305,247],{"class":99},[93,3307,3308,3310,3312,3314,3316,3318],{"class":95,"line":103},[93,3309,43],{"class":106},[93,3311,227],{"class":109},[93,3313,258],{"class":257},[93,3315,261],{"class":257},[93,3317,264],{"class":257},[93,3319,267],{"class":109},[93,3321,3322],{"class":95,"line":131},[93,3323,135],{"emptyLinePlaceholder":134},[93,3325,3326],{"class":95,"line":138},[93,3327,3328],{"class":99},"# Импорт GPG-ключа Docker\n",[93,3330,3331,3333,3335,3338,3341,3343,3346,3349,3351,3353,3356,3359,3361,3364,3366,3368,3370,3372,3374],{"class":95,"line":144},[93,3332,61],{"class":106},[93,3334,286],{"class":257},[93,3336,3337],{"class":109}," https://download.docker.com/linux/",[93,3339,3340],{"class":379},"$(",[93,3342,368],{"class":257},[93,3344,3345],{"class":109}," /etc/os-release",[93,3347,3348],{"class":379},"; ",[93,3350,338],{"class":257},[93,3352,376],{"class":109},[93,3354,3355],{"class":379},"$ID",[93,3357,3358],{"class":109},"\"",[93,3360,1992],{"class":379},[93,3362,3363],{"class":109},"/gpg",[93,3365,293],{"class":292},[93,3367,296],{"class":106},[93,3369,299],{"class":109},[93,3371,302],{"class":257},[93,3373,305],{"class":257},[93,3375,308],{"class":109},[93,3377,3378],{"class":95,"line":239},[93,3379,135],{"emptyLinePlaceholder":134},[93,3381,3382],{"class":95,"line":244},[93,3383,3384],{"class":99},"# Добавление репозитория\n",[93,3386,3387,3389],{"class":95,"line":250},[93,3388,338],{"class":257},[93,3390,341],{"class":257},[93,3392,3393,3395,3397,3399,3402,3404,3407,3409,3411,3413,3416],{"class":95,"line":270},[93,3394,347],{"class":109},[93,3396,350],{"class":106},[93,3398,353],{"class":257},[93,3400,3401],{"class":109},") signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/$(",[93,3403,368],{"class":257},[93,3405,3406],{"class":109}," /etc/os-release; ",[93,3408,338],{"class":257},[93,3410,376],{"class":109},[93,3412,3355],{"class":379},[93,3414,3415],{"class":109},"\") ",[93,3417,359],{"class":257},[93,3419,3420,3422,3424,3426,3428,3430,3432,3434,3436],{"class":95,"line":275},[93,3421,365],{"class":109},[93,3423,368],{"class":257},[93,3425,3406],{"class":109},[93,3427,338],{"class":257},[93,3429,376],{"class":109},[93,3431,380],{"class":379},[93,3433,383],{"class":109},[93,3435,293],{"class":292},[93,3437,341],{"class":257},[93,3439,3440,3442,3444,3446,3448],{"class":95,"line":281},[93,3441,393],{"class":106},[93,3443,396],{"class":109},[93,3445,399],{"class":109},[93,3447,402],{"class":292},[93,3449,405],{"class":109},[23,3451,3452],{},[3281,3453,3454],{},"Для RPM-систем команды добавления репозитория отличаются. Например, для CentOS:",[84,3456,3458],{"className":86,"code":3457,"language":88,"meta":89,"style":89},"sudo yum install -y yum-utils\nsudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo\n",[52,3459,3460,3472],{"__ignoreMap":89},[93,3461,3462,3464,3466,3468,3470],{"class":95,"line":96},[93,3463,43],{"class":106},[93,3465,149],{"class":109},[93,3467,227],{"class":109},[93,3469,491],{"class":257},[93,3471,494],{"class":109},[93,3473,3474,3476,3478,3480],{"class":95,"line":103},[93,3475,43],{"class":106},[93,3477,533],{"class":109},[93,3479,536],{"class":257},[93,3481,539],{"class":109},[1017,3483],{},[72,3485,3487],{"id":3486},"шаг-3-установите-docker-compose","Шаг 3: Установите Docker Compose",[23,3489,3490],{},"Теперь установите сам плагин Docker Compose из только что добавленного репозитория.",[84,3492,3494],{"className":86,"code":3493,"language":88,"meta":89,"style":89},"sudo apt-get update\nsudo apt-get install -y docker-compose-plugin\n",[52,3495,3496,3504],{"__ignoreMap":89},[93,3497,3498,3500,3502],{"class":95,"line":96},[93,3499,43],{"class":106},[93,3501,110],{"class":109},[93,3503,209],{"class":109},[93,3505,3506,3508,3510,3512,3514],{"class":95,"line":103},[93,3507,43],{"class":106},[93,3509,110],{"class":109},[93,3511,227],{"class":109},[93,3513,491],{"class":257},[93,3515,459],{"class":109},[23,3517,3518],{},[3281,3519,3520,3521,3524,3525,3528],{},"После установки команда для работы с Compose v2 будет ",[52,3522,3523],{},"docker compose"," (с пробелом). Старая версия v1 (",[52,3526,3527],{},"docker-compose",") больше не поддерживается.",[72,3530,3532],{"id":3531},"шаг-4-проверьте-установку","Шаг 4: Проверьте установку",[23,3534,3535],{},"Убедитесь, что Docker Compose установлен корректно и доступен из командной строки.",[84,3537,3539],{"className":86,"code":3538,"language":88,"meta":89,"style":89},"docker compose version\n",[52,3540,3541],{"__ignoreMap":89},[93,3542,3543,3545,3548],{"class":95,"line":96},[93,3544,775],{"class":106},[93,3546,3547],{"class":109}," compose",[93,3549,3550],{"class":109}," version\n",[23,3552,3553],{},"Вы должны увидеть вывод, похожий на:",[84,3555,3558],{"className":3556,"code":3557,"language":1244},[2618],"Docker Compose version v2.24.5\n",[52,3559,3557],{"__ignoreMap":89},[72,3561,3563],{"id":3562},"шаг-5-запустите-тестовый-контейнер-для-проверки","Шаг 5: Запустите тестовый контейнер для проверки",[23,3565,3566,3567,1033],{},"Создайте в домашней директории простой файл ",[52,3568,3195],{},[84,3570,3572],{"className":86,"code":3571,"language":88,"meta":89,"style":89},"mkdir ~/test-compose && cd ~/test-compose\ncat > docker-compose.yml \u003C\u003CEOF\nversion: '3.8'\nservices:\n  hello-world:\n    image: hello-world\nEOF\n",[52,3573,3574,3591,3607,3612,3617,3622,3627],{"__ignoreMap":89},[93,3575,3576,3579,3582,3585,3588],{"class":95,"line":96},[93,3577,3578],{"class":106},"mkdir",[93,3580,3581],{"class":109}," ~/test-compose",[93,3583,3584],{"class":379}," && ",[93,3586,3587],{"class":257},"cd",[93,3589,3590],{"class":109}," ~/test-compose\n",[93,3592,3593,3596,3598,3601,3604],{"class":95,"line":103},[93,3594,3595],{"class":106},"cat",[93,3597,402],{"class":292},[93,3599,3600],{"class":109}," docker-compose.yml",[93,3602,3603],{"class":292}," \u003C\u003C",[93,3605,3606],{"class":109},"EOF\n",[93,3608,3609],{"class":95,"line":131},[93,3610,3611],{"class":109},"version: '3.8'\n",[93,3613,3614],{"class":95,"line":138},[93,3615,3616],{"class":109},"services:\n",[93,3618,3619],{"class":95,"line":144},[93,3620,3621],{"class":109},"  hello-world:\n",[93,3623,3624],{"class":95,"line":239},[93,3625,3626],{"class":109},"    image: hello-world\n",[93,3628,3629],{"class":95,"line":244},[93,3630,3606],{"class":109},[23,3632,3633],{},"Запустите сервис:",[84,3635,3637],{"className":86,"code":3636,"language":88,"meta":89,"style":89},"docker compose up\n",[52,3638,3639],{"__ignoreMap":89},[93,3640,3641,3643,3645],{"class":95,"line":96},[93,3642,775],{"class":106},[93,3644,3547],{"class":109},[93,3646,3647],{"class":109}," up\n",[23,3649,3650,3651,3653],{},"Если вы видите вывод от контейнера ",[52,3652,813],{}," и сообщение о завершении работы — установка прошла успешно.",[18,3655,794],{"id":793},[23,3657,3658,3659,3662,3663,3665,3666,3668],{},"Главный indicator успеха — это возможность выполнить команду ",[52,3660,3661],{},"docker compose version"," без ошибок и успешно запустить тестовый сервис из шага 5. Также убедитесь, что ваш пользователь добавлен в группу ",[52,3664,775],{}," (если вы хотите использовать Docker без ",[52,3667,43],{},"):",[84,3670,3671],{"className":86,"code":2457,"language":88,"meta":89,"style":89},[52,3672,3673],{"__ignoreMap":89},[93,3674,3675,3677,3679,3681,3683],{"class":95,"line":96},[93,3676,43],{"class":106},[93,3678,683],{"class":109},[93,3680,686],{"class":257},[93,3682,116],{"class":109},[93,3684,691],{"class":379},[23,3686,3687],{},[3281,3688,3689],{},"Изменения вступят в силу после выхода и повторного входа в систему.",[18,3691,837],{"id":836},[23,3693,3694],{},[41,3695,971,3696,1275,3699],{},[52,3697,3698],{},"docker: command not found",[52,3700,3701],{},"docker compose: command not found",[34,3703,3704,3707],{},[37,3705,3706],{},"Причина: Docker не установлен или не добавлен в PATH.",[37,3708,3709,3710,3712],{},"Решение: Установите Docker Engine, как описано в требованиях. Перезапустите терминал или выполните ",[52,3711,756],{}," после добавления пользователя в группу.",[23,3714,3715],{},[41,3716,971,3717],{},[52,3718,3719],{},"permission denied while trying to connect to the Docker daemon socket",[34,3721,3722,3725],{},[37,3723,3724],{},"Причина: Текущий пользователь не имеет прав на управление Docker.",[37,3726,3727,3728,3730,3731,3733],{},"Решение: Добавьте пользователя в группу ",[52,3729,775],{}," (см. выше) и перелогиньтесь. Либо используйте ",[52,3732,43],{}," перед командами.",[23,3735,3736],{},[41,3737,3738],{},"Ошибка при добавлении репозитория (GPG key)",[34,3740,3741,3746],{},[37,3742,3743,3744,368],{},"Причина: Проблемы с сетью или устаревшие пакеты ",[52,3745,65],{},[37,3747,3748,3749,1377,3752,3754,3755,3757],{},"Решение: Убедитесь, что установлены ",[52,3750,3751],{},"ca-certificates",[52,3753,65],{},". Повторите шаг 2. Для старых систем может потребоваться использовать утилиту ",[52,3756,1288],{}," (устарела, но иногда работает).",[1135,3759,3760],{},"html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}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);}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}",{"title":89,"searchDepth":103,"depth":103,"links":3762},[3763,3764,3765,3772,3773],{"id":20,"depth":103,"text":21},{"id":28,"depth":103,"text":29},{"id":177,"depth":103,"text":178,"children":3766},[3767,3768,3769,3770,3771],{"id":3244,"depth":131,"text":3245},{"id":3292,"depth":131,"text":3293},{"id":3486,"depth":131,"text":3487},{"id":3531,"depth":131,"text":3532},{"id":3562,"depth":131,"text":3563},{"id":793,"depth":103,"text":794},{"id":836,"depth":103,"text":837},"2026-04-08 18:45:19","Установите Docker Compose на Ubuntu, Debian, CentOS или других Linux-дистрибутивах. Полное руководство с командами и проверкой работы за 5 минут.","5-10 мин",[3778,3781,3784,3787],{"question":3779,"answer":3780},"Какая версия Docker Compose устанавливается по умолчанию?","Скрипт установки из официального репозитория Docker устанавливает последнюю стабильную версию Docker Compose v2 (плагин).",{"question":3782,"answer":3783},"Что делать, если команда 'docker-compose' не найдена после установки?","Вероятно, вы установили Docker Compose v2, где команда называется `docker compose` (с пробелом). Проверьте наличие плагина командой `docker compose version`.",{"question":3785,"answer":3786},"Можно ли установить Docker Compose без Docker?","Нет, Docker Compose является надстройкой над Docker Engine и требует его предварительной установки и запуска.",{"question":3788,"answer":3789},"Как обновить Docker Compose до новой версии?","Для v2 (плагина) обновите пакет `docker-compose-plugin` через менеджер пакетов. Для устаревшей v1 загрузите новый бинарник и замените старый.",[3791,3794,3796,3799,3802],{"name":3792,"text":3793},"Обновите индекс пакетов и установите зависимости","Обновите локальный индекс пакетов и установите пакеты, необходимые для добавления репозитория Docker.",{"name":1190,"text":3795},"Импортируйте GPG-ключ Docker и добавьте стабильный репозиторий в систему.",{"name":3797,"text":3798},"Установите Docker Compose","Установите пакет `docker-compose-plugin` из репозитория Docker. Это установит Docker Compose v2 как плагин к Docker CLI.",{"name":3800,"text":3801},"Проверьте установку","Выполните команду для проверки версии Docker Compose, чтобы убедиться в успешной установке.",{"name":3803,"text":3804},"Запустите тестовый контейнер для проверки","Создайте простой `docker-compose.yml` и запустите сервис, чтобы убедиться, что всё работает end-to-end.","PT10M",[3807,3808,3809,3810,3811,3812,3813],"установка docker compose","docker compose linux установка","как поставить docker compose","docker-compose ubuntu","установить docker compose centos","docker compose команда не найдена","инструкция по docker compose",{},[3226,1219,3816],"/guides/linux/docker-get-started",{"title":3181,"description":3775},"guides/linux/docker-compose-install","Это руководство поможет вам установить Docker Compose на Linux-систему. Вы получите работающий инструмент для управления многоконтейнерными приложениями Docker.",[3821,3527,1216,1226,1229],"гайды docker","Ea56umhFEoTamzW_4qXyp280iitCtviDnrye9RnRqSs"]