Найти тему
Владимир Родин

Установка и начальная настройка Docker

Всем привет!

Давно меня с Вами не было, был погружен в работу с головой и вот сейчас появилась минутка, так что вот небольшой ман по установке и первоначальной настройки Docker’a в CentOS 7…))

Для начала надо удалить все старое что есть от Docker’a:

sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine

После удаления, подключим репозиторий:

sudo yum install -y yum-utils
sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo

Теперь установим сам Docker:

sudo yum install docker-ce docker-ce-cli containerd.io

Теперь запустим его и добавим в автозапуск:

sudo systemctl enable docker
sudo systemctl start docker

Добавим пользователя в группу docker:

sudo usermod -aG docker ${USER}

А теперь давайте для удобства установим docker-compose:

sudo curl -L "https://github.com/docker/compose/releases/download/1.25.5/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

Вроде бы все, но нет. Все выше сказанное можно спокойно посмотреть на https://docs.docker.com и по этому сейчас переходим к более интересным вещам!

Для начала давайте изменим сеть по умолчанию для Docker.

Отредактируем любимом редактором файл (если файла нет, то создайте его) etc/docker/daemon.json

Вставим в него:

{
"default-address-pools":
[
{"base":"10.10.0.0/16","size":24}
]
}

Сохраним изменения и перезапустим докер:

sudo systemctl restart docker

И еще один мой любимы трюк, давайте изменим директорию для докера. К примере у нас есть отдельностям диск или директория специально для докера и мы хотим что бы все что с ним связно было там.

Для начала установим rsync:

sudo yum install rsync

Создадим файл к примеру docker.sh и добавим в него:

#!/bin/bash
#sysinfo.io
dockerdir_new=‘указываем новую директорию для докера’
dockerdir_old='/var/lib/docker/'
set -e
dockerdir_new2=$(echo "$dockerdir_new" | sed 's/\//\\\//g')
systemctl stop docker
mkdir -p $dockerdir_new
rsync -a $dockerdir_old* $dockerdir_new
sed -i.bak "/ExecStart=\/usr\/bin\/dockerd \-H fd:\/\//c ExecStart=\/usr\/bin\/dockerd \-H fd:\/\/ -g ${dockerdir_new2}" /lib/systemd/system/docker.service
mv $dockerdir_old /var/lib/docker.bak/
ln -s $dockerdir_new /var/lib/docker
systemctl daemon-reload
systemctl start docker.service
printf '\n* The Docker systemd config has been backed up to /lib/systemd/system/docker.service.bak\n* A backup of the old Docker Root has been copied to /var/lib/docker.bak/\n\n'
docker info | grep 'Root Dir'

Дадим права на исполнение созданному нами файлу docker.sh:

chmod +x docker.sh

Ну и запустим его:

./docker.sh

На этом мы закончим первое знакомство с Docker.

Всем удачного дня. Не болейте, не скучайте, пока, пока!