Установка PeerTube из локальных Docker-образов
docker commit peertube-peertube-1 local_peertube_image
docker commit peertube-postgres-1 local_postgres_image
docker commit peertube-redis-1 local_redis_image
docker commit peertube-webserver-1 local_webserver_image
docker commit certbot local_certbot_image
docker commit peertube-postfix-1 local_postfix_image
docker save -o peertube_image.tar local_peertube_image
docker save -o postgres_image.tar local_postgres_image
docker save -o redis_image.tar local_redis_image
docker save -o webserver_image.tar local_webserver_image
docker save -o certbot_image.tar local_certbot_image
docker save -o postfix_image.tar local_postfix_image
REPOSITORY TAG IMAGE ID CREATED SIZE
local_postfix_image latest 899434ea7b61 32 minutes ago 123MB
local_certbot_image latest 4f419d7034e6 32 minutes ago 118MB
local_webserver_image latest 4acfa925aec0 32 minutes ago 58.5MB
local_redis_image latest dc04a92381ab 33 minutes ago 30MB
local_postgres_image latest 47370c7abbaf 33 minutes ago 238MB
local_peertube_image latest a0a494e752be 33 minutes ago 1.71GB
==================================================
mkdir peertube (если нет)
cd peertube
docker load -i peertube_image.tar
docker load -i postgres_image.tar
docker load -i redis_image.tar
docker load -i webserver_image.tar
docker load -i certbot_image.tar
docker load -i postfix_image.tar
mkdir -p docker-volume/nginx
Перемещаем конфиг с названием peertube в каталог docker-volume/nginx
mkdir -p docker-volume/certbot
docker run -it --rm --name certbot -p 80:80 -v "$(pwd)/docker-volume/certbot/conf:/etc/letsencrypt" local_certbot_image certonly --standalone
Если не получилось, стираем всё из каталога conf
rm -rf docker-volume/certbot/conf/*
Даём другой вариант команды (в конце инструкции см. дополнение)
docker run -it --rm --name certbot -p 80:80 -v "$(pwd)/docker-volume/certbot/conf:/etc/letsencrypt" certbot/certbot certonly --standalone
Запускаем
docker compose up -d
--------------------------------------------
--------------------------------------------
Сброс пароля Peertube
----------------------------
1. Вход в sh оболочку контейнера
docker exec -it peertube-peertube-1 /bin/sh
2. Внутри контейнера обновляем пакеты и устанавливаем программу mc
apt update
apt install mc
3. Через mc заходим в каталог config и меняем название файла production.yaml.example на production.yaml
4. Внутри контейнера выходим из mc и переходим в каталог config через терминал
cd config
5. Внутри контейнера запускаем команду сброса пароля (и задания нового пароля)
npm run reset-password -- -u root
6. Выходим из контейнера
exit
-----------------------------
Либо, не заходя в контейнер, использовать такую команду:
docker exec -it peertube-peertube-1 /bin/sh -c "cd config && cp production.yaml.example production.yaml && npm run reset-password -- -u root"
================================================
ДОПОЛНЕНИЕ для контейнера certbot
-------------------------------------
Чтобы Docker не проверял наличие обновлений для образа на Docker Hub и использовал только локальный образ, можно добавить флаг --offline или использовать флаг --pull с другим значением.
Однако, важно отметить, что в Docker нет встроенного флага для полной отмены проверки наличия обновлений образа. Но можно избежать загрузки новых версий образа с помощью следующих подходов:
1. Использовать флаг --pull=never
Вы можете использовать флаг --pull=never, чтобы Docker не пытался загрузить образ из интернета и использовал только локальный образ, если он уже существует.
Пример:
docker run --pull=never -it --rm --name certbot -p 80:80 -v "$(pwd)/docker-volume/certbot/conf:/etc/letsencrypt" certbot/certbot certonly --standalone
Этот флаг указывает Docker не загружать образ, даже если его нет локально. В таком случае, если образ отсутствует локально, Docker выдаст ошибку.
2. Использовать локальный образ с конкретной версией
Если вам нужно зафиксировать конкретную версию образа и избежать его обновления, можно явно указать тег версии, вместо использования latest, который всегда будет проверять на обновления:
docker run -it --rm --name certbot -p 80:80 -v "$(pwd)/docker-volume/certbot/conf:/etc/letsencrypt" certbot/certbot:1.22.0 certonly --standalone
Где 1.22.0 — это версия образа certbot. Указывая точную версию, вы гарантируете, что Docker будет использовать только эту версию без проверки обновлений.