Docker + Consul. Начало

Современные технологии развиваются стремительно, каждый год, а то и реже мы узнаем об очередном прорыве в мире IT и вот, уже н е молодой, но подающий большие надежды проект Docker ворвался в нашу жизнь.

По сложившейся традиции, я перейду сразу к делу и расскажу о лучших практиках работы с Docker. так как проект активно развивается, уследить за новыми версиями непросто, а с новыми версиями меняется и функционал, в том числе и ключи запуска и системным администраторам бывает довольно сложно уследить за этой гонкой мысли разработчиков.

Для начала работы нам потребуется дистрибутив Centos7-minimal.
Далее переходим к установке и настройке Docker. Внимание, инструкция работает только для Docker версии 1.12 и выше (это на будущее :)!

Обычно мы устанавливаем Docker командой:

yum install docker

Однако, с развитием Docker изменился не только синтаксит его ключей, но и процесс установки. Установка docker-engine подробно описана на сайте: https://docs.docker.com/engine/installation/linux/centos/, я ее также опишу.

tee /etc/yum.repos.d/docker.repo <<-'EOF'
[dockerrepo]
name=Docker Repository
baseurl=https://yum.dockerproject.org/repo/main/centos/7/
enabled=1
gpgcheck=1
gpgkey=https://yum.dockerproject.org/gpg
EOF
yum clean all
yum install docker-engine -y

Для storadge мы будем использовать драйвер overlay2: https://docs.docker.com/engine/userguide/storagedriver/selectadriver/. Для этого потребуется поставить довольно новое ядро и включить режим хранения в докере overlay2:

rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
yum --enablerepo=elrepo-kernel install kernel-ml

В файле /boot/grub2/grubenv меняем на установленное ядро. Правильную строчку можно посмотреть в /boot/grub2/grub.cfg

saved_entry=CentOS Linux (4.8.1-1.el7.elrepo.x86_64) 7 (Core)

Далее добавим файл автозапуска Docker в systemd:

mkdir -p /etc/systemd/system/docker.service.d
vi /etc/systemd/system/docker.service.d/docker.conf

[Service]
ExecStart=
ExecStart=/usr/bin/dockerd --config-file=/etc/docker/daemon.json

Создаем конфиг докера в json формате. Устанавливаем dns сервера, суффикс для имен, тип хранилища данных, адрес на дефолтом бридже docker0:

mkdir /etc/docker
vi /etc/docker/daemon.json
{
        "dns": ["172.18.0.1","77.88.8.8","77.88.8.1","8.8.8.8","8.8.4.4"],
        "dns-search": ["service.consul"],
        "storage-driver": "overlay2",
        "bip": "172.18.0.1/24"
}

Обращаю ваше внимание, что в данном случае IP: 172.18.0.1 был назначен из-за того что в Docker создан bridge-интерфейс. Если у вас не используется bridge-интерфейс, вам следует указать IP интерфейса docker0 (обычно это 172.17.0.1/24).
Применяем изменения и смотрим что они добавились:

systemctl daemon-reload
systemctl cat docker

Как правило, хватает service docker reload для изменения конфигов

systemctl reload docker

В следующих статьях мы рассмотрим процесс создания Docker контейнеров и в этом нам сильно поможем docker-compose, поэтому сразу поставим его на сервер:

curl -L https://github.com/docker/compose/releases/download/1.8.0/docker-compose-`uname -s`-`uname -m` > /usr/bin/docker-compose
chmod +x /usr/bin/docker-compose

Related posts:

  1. Fixed: «warning: mail_queue_enter: create file maildrop Permission denied» You mask stop postfix, check if it is still running,...
  2. Сайт на CMS WordPress. Начало работы Wordpress...
  3. Exim + DKIM на примере CentOS Exim поддерживает DKIM, начиная с версии 4.71. В данный момент...
  4. Применение патчей для ускорения Ruby Чтобы ускорить производительность Ruby в целом и фреймворка Ruby on...
  5. Установка Netams-3.4.5 под Centos. Настройка и тюнинг Бесплатное программное обеспечение NETAMS 4.0 (релиз 489 от 4 марта)...
You can leave a response, or trackback from your own site.

Оставить комментарий

*