Установка Docker и Parteiner на Debian 12
Эта статья часть инструкции, по настройке локального сервера, без статического белого IP адреса, с доступом из интернет по имени домена, на сервере устанавливаем Docker и Parteiner.
Переходите по ссылке в оглавление чтоб увидить все части этой инструкции.
Подключитесь к серверу по SSH как пользователь root
Посмотрим, что есть в системе из репозиториев.
# apt-get update
# cd /etc/apt/ && ls -la
# cd /etc/apt/sources.list.d && ls -la
Видим, что присутствует стандартный репозиторий Debian, откроем его и посмотрим содержимое.
# nano /etc/apt/sources.list
Присутствует запись о репозитории «bookworm-backports», это означает что мы сможем устанавливать из него пакеты на наш сервер. Репозиторий «bookworm-backports», у вас должен быть если вы при установке не запрещали его инсталляцию. Посмотрим, что находиться в каталоге дополнительных репозиториев
# cd /etc/apt/sources.list.d && ls -la
Видим что там пусто.
Для установки Docker на сервер рекомендую использовать стандартный способ, описанный разработчиком.
Пропишем на сервере ключи GPG репозитория Docker и установим необходимые для этого утилиты.
# apt-get update
# apt-get install ca-certificates curl
# install -m 0755 -d /etc/apt/keyrings
# curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
# chmod a+r /etc/apt/keyrings/docker.asc
Создадим репозиторий Doker одной командой
# echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \
$(. /etc/os-release && echo "bookworm") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Обратите внимание на то что явно указан релиз Debian - "bookworm", в случае необходимости укажите ваш используемый релиз Debian. Теперь обновите список репозиториев в системе.
# apt-get update
В системе появился репозиторий Doсker, теперь всё готово для установки Docker и Portainer CE
# apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-compose --fix-missing
Добавьте вашего обычного пользователя в группу DOCKER
# usermod -a -G docker ВАШ ПОЛЬЗОВАТЕЛЬ
Проверим что все нужные пакеты и утилиты установленны.
# apt-cache show docker | grep -i version
# apt-cache show docker-compose | grep -i version
# apt-cache show docker compose | grep -i version
Чтоб Docker запускался при загрузке, используйте следующую команду:
# systemctl enable docker
# systemctl start docker
# systemctl status docker
Перезапустите сервер
# shutdown -r now
На этом этапе необходимо настроить статический IP вашего сервера, рассмотрим вариант настроек, подразумевающий что ваш роутер раздаёт в сеть динамические IP, чтоб серверу работающему в виртуальной машине VmWare получить статический адрес, перейдите в настройки вашего роутера набрав в адрес который обычно написан на этикетке роутера. Например для роутеров TP-Link нужные настройки делайте в DHCP- Address Reservation , добавьте вашу виртуальную машину прописав её IP и MAC Address. Выглядит это вот так
Адреса поставьте ваши. Узнать IP и MAC можно командой
# ip a
Обязательно перезагрузите роутер.
В любом браузере откройте IP адрес вашего виртуального сервера, перейдите по адресу, вы получите сообщение «Не удаётся получить доступ к сайту» - так и должно быть.
Перейдите в консоль вашего SSH подключения как root, установите portainer-ce
# docker volume create portainer_data
# docker run -d -p 8000:8000 -p 9443:9443 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce:lts
Как только отработает установщик перейдите в браузер и к IP адресу вашего сервера добавьте адрес порта «:9443»
Используйте явное указание HTTPS при наборе адреса «https://192.168.0.11:9443/»
По умолчанию время для первого входа и указания пароля и логина пользователя 5 минут. Если вы не уложитесь в это время у вас появиться сообщение о ошибке соединения.
Чтоб перезапустить веб интерфейс portainer, выполните в консоле сервера эти команды
# docker stop portainer
# docker start Portainer
После ввода команд проверьте статус запущенного portainer
# docker ps
В случае если вывод в консоле пустой или указывает на ошибки запуска, перезагрузите сервер
# shutdown -r now
После перезагрузки перейдите по адресу сервера, Используйте явное указание HTTPS при наборе адреса
«https://192.168.0.11:9443/»
Заполните вашими значениями поля авторизации.
Можно снять не отмечать чекбокс
«Allow collection of anonymous statistics. You can find more information about this in our privacy policy».
Для установки portainer-ce приготовьте заранее парольную фразу, так же замените имя пользователя при входе на любое рандомное, не оставляйте стандартное имя «Admin».
Рекомендую пароль из 32 символов имя пользователя из минимум 12 символов, не делайте имя пользователя осмысленным, примените рандомное сочетание букв.
Нажимайте на «Get Started» ваш сервис portainer успешно установлен.
Откройте доступ к вашему серверу из интернета. Но, прежде чем это сделать, создадим резервную копию виртуальной машины. Вам нужно остановить виртуальную машину, закрыть VmWare и сделать архиватором Win RaR резервную копию.
Учитывайте в качестве текстового редактора используется «vi». Вам нужно прочитать внимательно инструкцию к командам, там описана последовательность нажатия клавиатурных комбинаций, для работы в этом редакторе. Не меняйте редактор «vi» на какой-либо другой, это важно.
Именно по причине некорректного редактирования файлов конфигураций, редактором «vi», ломается работа сервиса.
Прочтите в интернете инструкцию как пользоваться редактором «vi».
Авторизуйтесь под обычным пользователем в системе, перейдите в каталог tmp
# cd /tmp
Потренируйтесь создавать файлы при помощи редактора «vi», внесите в ваш файл какой-либо текст, сохраняете значения. Только после четкого понимания что и как делать, под пользователем «root» сконфигурируйте сервис.
Как только будет готова резервная копия, запустите VmWare и авторизуйтесь на сервере как root.
Перейдите на сайт Duck DNS и авторизуйтесь. Посмотрите в правый угол сайта, убедитесь, что там указана именно ваша электронная почта. Сайт спустя не продолжительное время сбрасывает авторизацию и токен для вашего сервера будет иметь не корректное значение. Как вариант скопируйте команды в текстовый файл и оттуда вводите значения в консоли SSH подключения. В меню сайта выбирайте пункт меню «install»
Станут доступны разделы «Operating Systems» и «first step - choose a domain.»
В разделе «Operating Systems» выбирайте вкладку «linux cron»
В секции «first step - choose a domain.» выбирайте ваш домен.
Будут сформированы команды, выполните их поочередно.
Убедитесь, что вы находитесь в директории пользователя «root», выполнив следующую команду
# cd ~/
После ввода последней команды, вам в консоль может не быть показано значение «ОК» - это не ошибка. Так как в GNU Linux отсутствие сообщения означает – отсутствие ошибок. Вы можете самостоятельно посмотреть содержимое файла duck.log.
# cat ~/duckdns/duck.log
Перейдите в настройки вашего роутера. Меню «Forwarding» - «DMZ» пропишите IP адрес вашей виртуальной машины и сохраните настройки. Перезагрузите роутер и перезагрузите виртуальную машину с вашим сервером.
Первые несколько минут ваш домен может казаться не работоспособным, браузер не сможет его открыть. Переходите по имени домена без HTTPS заголовка, это отправит в сеть DNS запрос на подключение к вашему серверу.
Так это будет выглядеть
Обновите страницу, обновите адрес, следующее сообщение которое вы получите будет выглядеть вот так.
Нажимайте на чек бокс «Подробнее», откроется следующие меню.
Браузер сообщает что сертификат SSL заверен локально. То есть создан на вашем сервере вами.
Нажимайте на надпись: «Перейти на сайт ВАШ САЙТ.duckdns.org (небезопасно)».
Откроется страница авторизации portainer установленным на сервере, который вы развернули локально без внешнего IP адреса, теперь ваш сервер доступен из интернета по имени домена.
Продолжение в следующей части.
Помните!
Сейчас вам нужно остановить виртуальную машину, закрыть VmWare и сделать архиватором Win RaR резервную копию.