Скрипт позволяет устанавливать docker, docker-compose и выставлять дефолтный пул адресов для подсетей - вновь созданных контейнеров
Начиная с версии 18.09.1, появилась возможность использовать выдачу подсетей по дефолту для вновь созданных контейнеров.
Выглядит это вот так:
"default-address-pools" : [
{
"base" : "172.200.0.0/16",
"size" : 24
}
]
Т.е. для каждого нового композа, при условии что сеть в нём не указана (дефолтная), сеть будет создаваться вида 172.200.*.0/24. Запущенные же контейнеры командой docker run будут попадать в нулевую сеть 172.200.0.0/24.
После запуска скрипт:
- Уставнливает docker и docker-compose
- проверяет наличие файла конфигурации докера, создаёт если отсутствует. Если файл уже есть, делает копию в /etc/docker/;
- применяет настройки докера путём перезапуска сокета;
- тестирует, получил ли контейнер редиса, запущенный через docker-compose правильный адрес. (edited)
- склонировать репозиторий;
- сделать sudo chmod +x docker.sh;
- запустить скрипт;
- при необходимости, возможно открыть socket TCP port 2375
- Change
daemon.json
file in/etc/docker
:
{"hosts": ["tcp://0.0.0.0:2375", "unix:///var/run/docker.sock"],
"default-address-pools" : [
{
"base" : "172.200.0.0/16",
"size" : 24
}
],
"data-root": "/mnt/docker" # Change mount
}
- Add
/etc/systemd/system/docker.service.d/override.conf
[Service]
ExecStart=
ExecStart=/usr/bin/dockerd
- Reload the systemd daemon:
systemctl daemon-reload
- Restart docker:
systemctl restart docker.service
- Check on another host
docker -H tcp://xxx.xxx.x.xx:2375 ps
P.s if you have a node on Ubuntu 22.04 and you want to use docker with volumes forwarding. Then see below.
systemctl stop kubelet
mkdir -p /etc/systemd/system/docker.service.d/
tee /etc/systemd/system/docker.service.d/docker.conf <<"EOF"
[Service]
ExecStart=
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --default-cgroupns-mode=host
EOF
or without daemon.json
tee /etc/systemd/system/docker.service.d/docker.conf <<"EOF"
[Service]
ExecStart=
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --default-cgroupns-mode=host --exec-opt native.cgroupdriver=cgroupfs
EOF
sudo systemctl daemon-reload && systemctl restart docker && systemctl restart kubelet
@izobretatel9