Пример настройки Ubuntu 16.04 и запуск майнинг zcash в docker контейнере с самого начала.
В качестве начала имеем голую ubuntu 16.04
1 |
apt-get update && apt-get upgrade |
Шаг 1 — установка Docker
Docker доступный в официальном репозитории Ubuntu 16.04 может быть не последней версии. Для получения последней и лучшей версии установим Docker из родного официального Docker репозитория.
Сначало добавим GPG ключ для официального репозитория Docker в нашу систему:
1 |
apt-get install curl && curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - |
Добавляем репозиторий Docker в APT:
1 |
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable<code langs=""></code>sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" |
Далее обновляем список пакетов, тут подтянуться пакет Docker из нового, добавленного репозитория:
1 |
sudo apt-get update |
Убедимся, что будем устанавливать из Docker репозитория, а не из репозитрием Ubuntu 16.04:
1 |
apt-cache policy docker-ce |
Вывод команды должен быть примерно следующий:
1 2 3 4 5 6 7 8 9 10 11 12 |
docker-ce: Installed: (none) Candidate: 17.06.0~ce-0~ubuntu Version table: 17.06.0~ce-0~ubuntu 500 500 https://download.docker.com/linux/ubuntu xenial/stable amd64 Packages 17.03.2~ce-0~ubuntu-xenial 500 500 https://download.docker.com/linux/ubuntu xenial/stable amd64 Packages 17.03.1~ce-0~ubuntu-xenial 500 500 https://download.docker.com/linux/ubuntu xenial/stable amd64 Packages 17.03.0~ce-0~ubuntu-xenial 500 500 https://download.docker.com/linux/ubuntu xenial/stable amd64 PackagesNotice that <code style="text-align: justify; font-size: 14px;">docker-ce</code><span style="text-align: justify; background-color: #ffffff; font-family: Verdana, Geneva, sans-serif; font-size: 14px;"> is not installed, but the candidate for installation is from the Docker repository for Ubuntu 16.04. The </span><code style="text-align: justify; font-size: 14px;">docker-ce</code><span style="text-align: justify; background-color: #ffffff; font-family: Verdana, Geneva, sans-serif; font-size: 14px;"> version number might be different.</span> |
Мы близки к финишу — установим Docker:
1 |
sudo apt-get install -y docker-ce |
Docker установлен, демон запушен и сервис включен в автозагрузку. Проверяем командой:
1 |
sudo systemctl status docker |
Вывод должен быть примерно следующий:
1 2 3 4 5 |
● docker.service - Docker Application Container Engine Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled) Active: active (running) since Sun 2016-05-01 06:53:52 CDT; 1 weeks 3 days ago Docs: https://docs.docker.com Main PID: 749 (docker) |
Шаг 2 — установка драйвера Nvidia
Далее устанавливаем драйвера Nvidia
Будем устанавливать официальные драйвера Nvidia, для этого выполним следующие команды:
1 2 3 |
sudo apt-key adv --fetch-keys http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/7fa2af80.pub sudo sh -c 'echo "deb http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64 /" > /etc/apt/sources.list.d/cuda.list' sudo apt-get update && sudo apt-get install -y --no-install-recommends linux-headers-generic dkms cuda-drivers |
Теперь необходимо установить nvidia-docker и nvidia-docker-plugin, для успешного взаимодействия nvidia с docker.
1 2 |
wget -P /tmp https://github.com/NVIDIA/nvidia-docker/releases/download/v1.0.1/nvidia-docker_1.0.1-1_amd64.deb sudo dpkg -i /tmp/nvidia-docker*.deb && rm /tmp/nvidia-docker*.deb |
Для завершения установки рекомендуеться перезагрузить систему:
1 |
reboot |
Проверяем работает ли у нас связка nvidia + docker, выполним команду:
1 |
nvidia-docker run --rm nvidia/cuda nvidia-smi |
Вывод должен быть следующего вида:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
Wed Aug 9 21:40:24 2017 +-----------------------------------------------------------------------------+ | NVIDIA-SMI 375.66 Driver Version: 375.66 | |-------------------------------+----------------------+----------------------+ | GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. | |===============================+======================+======================| | 0 GeForce GTX 106... Off | 0000:01:00.0 Off | N/A | | 38% 30C P8 4W / 120W | 0MiB / 3012MiB | 0% Default | +-------------------------------+----------------------+----------------------+ | 1 GeForce GTX 106... Off | 0000:04:00.0 Off | N/A | | 0% 44C P8 4W / 120W | 0MiB / 6072MiB | 0% Default | +-------------------------------+----------------------+----------------------+ | 2 GeForce GTX 106... Off | 0000:05:00.0 Off | N/A | | 0% 45C P8 4W / 120W | 0MiB / 3013MiB | 0% Default | +-------------------------------+----------------------+----------------------+ | 3 GeForce GTX 106... Off | 0000:06:00.0 Off | N/A | | 0% 40C P8 3W / 120W | 0MiB / 3013MiB | 0% Default | +-------------------------------+----------------------+----------------------+ +-----------------------------------------------------------------------------+ | Processes: GPU Memory | | GPU PID Type Process name Usage | |=============================================================================| | No running processes found | +-----------------------------------------------------------------------------+ |
Исходя из данного вида можно сделать несколько важных выводов:
- взаимодействие docker и nvidia успешно работает
- в системе видны все 4-ре видеокарты
Шаг 3 — майнинг zcash в консоле.
Проверим как работает связка nvidia + docker. Для этого запускаем майнинг zcash в консоле:
1 |
nvidia-docker run --restart=always -itd -e username=t1UhzyyvMuCu12JRq2sNEx9P52HC3b3KWgA servethehome/zec_flypool_ewbf:cuda |
- вместо username подставить свой ZEC кошелек
- используется пул zcash.flypool.org, статистику доступна по адресу https://zcash.flypool.org/miners/<ваш кошелек>
p.s.
Полезные команды для диагностики:
1 |
lspci -k| grep -EA2 'VGA|3D' |