hurtom/toloka

Як встановити docker + обговорення проблем

Opened this issue · 17 comments

Windows

  1. встановіть https://git-scm.com/downloads
  2. встановіть https://www.docker.com/products/docker-toolbox
  3. перезавантажте
  4. відкрийте Docker Quickstart Terminal

Ubuntu 14.04 / 16.04

  1. додайте репозиторій
sudo apt-get -y install apt-transport-https ca-certificates curl git
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
  1. встановіть docker
sudo apt-get update
sudo apt-get -y install docker-ce
  1. завантажте docker-compose
sudo curl -o /usr/local/bin/docker-compose -L "https://github.com/docker/compose/releases/download/1.13.0/docker-compose-$(uname -s)-$(uname -m)"
sudo chmod +x /usr/local/bin/docker-compose

Перевірка версії

docker -v
docker-compose -v

має бути мінімально:

Docker version 17.03.0-ce
docker-compose version 1.11.2

Mac OS X

  1. встановити brew (якщо встановлений перейти до 2 кроку)
  2. brew update && brew upgrade
  3. brew install docker docker-compose
  4. docker -v && docker-compose -v

Docker version 17.05.0-ce, build 89658be
docker-compose version 1.13.0, build unknown

Проблема на Windows:

Running pre-create checks...
Error with pre-create check: "This computer is running Hyper-V. VirtualBox won't boot a 64bits VM when Hyper-V is activated. Either use Hyper-V as a driver, or disable the Hyper-V hypervisor. (To skip this check, use --virtualbox-no-vtx-check)"
Looks like something went wrong in step ´Checking if machine default exists´... Press any key to continue...

Рішення:

а) відключити hyper-v:

bcdedit /set hypervisorlaunchtype off

після цього треба перезавантажити комп'ютер

... або ...

б) встановити native версію docker'а: https://store.docker.com/editions/community/docker-ce-desktop-windows

в мене обривається на етапі додавання ключа

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

curl: (7) Failed to connect to 192.168.2.1 port 3128: Connection timed out
gpg: no valid OpenPGP data found.

@karmeljuk судячи з 192.168.2.1 port 3128, ви за якимось проксі. Cкоріш за все, це squid там, де ви вчитеся або працюєте. Спробуйте повторити з домашнього або мобільного інтернету.

@karmeljuk Для лінукс є також brew (як для мак ос), можете через нього спробувати.

@konfuciusu - встановив на іншому комп'ютері, Ubuntu 14.04
Виконую команди по існтрукції звідси https://github.com/hurtom/toloka

Після команди docker-compose up -d сипляться помилки

Starting toloka_phpmyadmin_1 ... error

ERROR: for toloka_phpmyadmin_1  Cannot start service phpmyadmin: driver failed programming external connectivity on endpoint toloka_phpmyadmin_1 (2dbe074d48a89a474baae00c543b62406bb1e2dRecreating toloka_toloka_1 ... error

ERROR: for toloka_toloka_1  Cannot start service toloka: driver failed programming external connectivity on endpoint toloka_toloka_1 (9f606d636f6cea7f01ca3028013bd702a7f471b21fb80baf120Recreating toloka_mysql_1 ... done

ERROR: for phpmyadmin  Cannot start service phpmyadmin: driver failed programming external connectivity on endpoint toloka_phpmyadmin_1 (2dbe074d48a89a474baae00c543b62406bb1e2d0c636ccfd31e8c6d3f3685416): Bind for 0.0.0.0:8082 failed: port is already allocated

ERROR: for toloka  Cannot start service toloka: driver failed programming external connectivity on endpoint toloka_toloka_1 (9f606d636f6cea7f01ca3028013bd702a7f471b21fb80baf12071ea83f64e925): Bind for 0.0.0.0:8081 failed: port is already allocated
ERROR: Encountered errors while bringing up the project.
[karmeljuk@:~/Work/toloka]$ docker-compose exec toloka composer update
ERROR: No container found for toloka_1

@karmeljuk спробуйте service docker restart

Якщо не допоможе, подивіться docker/compose#3277

@konfuciusu Може всі ці ґайди на вікі винести (його увімкнути треба буде в налаштуваннях)? Може й з README щось повиносити, а замість того, що винесено додати відповідні посилання - бо ці "Як ..." будуть відкритими висіти до скону ;)

Як вимкнути авто старт при старті системи? (linux)

Панове, ставте питання констуктивніше 😉 Автостарт чого? Загалом (під рутом)

systemctl disable <сервіс>

І ще є https://stackoverflow.com та https://unix.stackexchange.com

UP: Виправив команду, бо одрук вийшов - замість systemctl я systemd вписав

Вибачаюся. Як завжди, у голові автора все здається зрозумілим)
docker автоматично запускається при старті сиситеми. Його у автозапуску системи я не знайшов, напевно він інде знаходиться. Вдалося вимкнути запуск апачі перейменуванням папки (_toloka), але інше (все крім apache (phpmyadmin), запускається і працює у фоні, у менеджері завдань я не можу знайти його). Я колгозно написав скріпт для його зупинки після запуску, але має бути нормальний варіант.
Шукав у ґуґлі, але там сухо. Є пропозиції редагувати docker-compose.yml але це не допомагає, після редагування його зупинити вже не можна

Я так розумію, це через те, що контейнери створювались з restart: always у docker-compose.yml

docker update --restart=no <ім'я або id контейнера>

Відповідно, щоб подивитись список контейнерів

docker ps

Ок, ґуґл: "docker disable autostart container on boot" - у мене ось перший результат

Коли я ставлю "no", я жодну команду для контейнера не можу виконати. Цей варіант мені не допоміг

У Авто запуску нічого подібного немає

sudo systemctl disable docker

або забрати restart: always з docker-compose.yml і виконати

docker-compose stop
docker-compose up -d

Загалом, можна було би забрати restart: always для всіх.

Зрозуміло, що тоді для початку роботи з Толокою, треба буде кожного разу

cd ~/toloka
docker-compose up -d

@konfuciusu Я не кожного дня працюю над проектом, і, судячи з активності, інші також далеко не кожного дня щось роблять. Грубо кажучи, два дні на тиждень щось пишу. Всі інші дні docker запускається самостійно. Гадаю, простіше буде його запустити вручну два рази, ніж п'ять разів зупиняти