Skip to content

Create karbo node in docker

KarboDuck edited this page May 6, 2022 · 9 revisions

image

Инструкция как на чистом (только что установленном) Linux одной командой поднять ноду Карбо, работающую фоновой службой.

При запуске всегда проверяется и в случае наличия автоматически устанавливается последняя версия Карбо.

sudo apt -y update && sudo apt -y install docker.io && docker run -it --restart always --pull always --name karbo-node -v krbn:/krb -p 32347:32347 karboduck/karbo-node

Конец.

Объяснение команды.

Выше три разные команды объединены с помощью &&. Разобьем её на 3 части для упрощения.

sudo apt -y update
sudo apt -y install docker.io
docker run -it --restart always --pull always --name karbo-node -v krbn:/krb -p 32347:32347 karboduck/karbo-node
  1. sudo apt -y update

Смотрит какие программы доступны в репозитории. Необходимо выполнить на чистом Linux, иначе он не сможет установить docker, так как не будет знать о его наличии в репозитории.

  1. sudo apt -y install docker.io

Самый простой способ поставить docker на Linux. Опция -y используется для того, чтобы Linux не переспрашивал "Вы точно хотите установить эту программу?", а делал все автоматом.

  1. docker run -it --restart always --pull always --name karbo-node -v krbn:/krb -p 32347:32347 karboduck/karbo-node

Эту команду тоже разобьем на части:

docker run Команда для запуска контейнера.

-it Сокращение команд --interactive и --tty. "Подключает" контейнер к терминалу и позволяет вводить в нем команды.

--restart always Фактически превращает запущенную программу в системный процесс. Если контейнер "упадет", docker автоматически его перезапустит. Если система перезагрузится, docker автоматически запустит контейнер.

--pull always При запуске всегда проверяет обновление для контейнера и загружает его, если оно появилось.

--name karbo-node Присваивает имя контейнеру. Иначе у него будет рандомное имя. Со статическим именем легче управлять контейнером, например останавливать его, или переподлючаться к нему.

-v krbn:/krb Создает Volume "krbn" и подключает его по пути "/krb" внутри файловой системы контейнера. Нужно для того, чтобы загруженный блокчейн сохранялся при выключении контейнера на внешнем "жестком диске" krbn.

-p 32347:32347 По умолчанию доступ внутрь контейнера через порты закрыт. Эта команда передает все запросы на порт 32347 системы внутрь контейнера также на порт 32347. Таким образом нода Карбо может раздавать блокчейн другим нодам, потому что теперь их запросы будут проходить внутрь контейнера.

При запуске на домашнем ПК это не будет работать по умолчанию, так как домашние роутеры блокируют внешние подключения. Чтобы заработало понадобится открыть (пробросить) порт 32347 на роутере. На vps должно работать по умолчанию, там внешние подключения не блокируются.

karboduck/karbo-node Путь к контейнеру. Он хранится на hub.docker.com

Управление контейнером.

  1. Остановка контейнера.

По умолчанию контейнер всегда автоматически перезапускается, и если вы захотите его остановить полностью, вам понадобится использовать команду:

docker rm -f karbo-node

Это более удобная замена, по сравнению с запуском двух команд: docker stop karbo-node и docker rm karbo-node.

  1. Переподключение к контейнеру.

Если вы закрыли терминал, или отключились от ssh, то контейнер продолжит работать в фоне. Чтобы подключиться к нему заново надо использовать команду:

docker attach karbo-node

Clone this wiki locally