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