Comments 11
Спасибо за статью, Docker SDK мощная штука, хотелось бы упомянуть что для тестовых сценариев отлично подойдёт https://testcontainers.com/, существует много портов и минимальный эффорт по работе с контейнера (есть нюансы со сложными сетапами)
Еще есть https://github.com/ory/dockertest для тех же целей.
Важно: при запуске программы напиши sudo
А лучше добавь себя в группу docker
Не лучше - таким образом этот пользователь можно сказать становится рутом. И через монтирование можно будет поменять любой файл на хостовой системе без sudo. Для sudo хотя бы требуется пароль.
Лучше уж rootless mode
Для debian based набросал себе скриптов и конфигов. Проще чем в официальной доке.
sudo apt install rootlesskit
#!/bin/bash
# Запускать НЕ от рута и НЕ через sudo. systemctl спросит пароль.
# Системные сервисы важно задизаблить, иначе они не дадут запуститься безрутовым.
set -e
systemctl disable docker.service docker.socket containerd.service
docker --context=default context create rootless --docker "host=unix://${XDG_RUNTIME_DIR}/docker.sock" --description "Rootless mode"
docker --context=default context use rootless
# ~/.config/systemd/user/docker.service
[Unit]
Description=Docker Application Container Engine (Rootless)
Documentation=https://docs.docker.com/go/rootless/
[Service]
ExecStart=/usr/bin/rootlesskit --disable-host-loopback --net=slirp4netns --port-driver=builtin --copy-up=/etc --copy-up=/run --propagation=rslave /usr/bin/dockerd
ExecReload=/bin/kill -s HUP $MAINPID
TimeoutSec=0
RestartSec=2
Restart=always
StartLimitBurst=3
StartLimitInterval=60s
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
TasksMax=infinity
Delegate=yes
Type=notify
NotifyAccess=all
KillMode=mixed
[Install]
WantedBy=default.target
systemctl --user enable docker
reboot
По вкусу (чтобы запускался если даже не залогинился)
sudo loginctl enable-linger $(whoami)
У Goland маскот и так отталкивающий, а его гибрид с докером на КДПВ выглядит просто отвратительно!
у докера и так нет нормального контроля прав, а вы хотите еще и через дополнительный шлюз с админкой пустить команды?
Самое главное преимущество Докера — это упаковывать все нужное для твоей программы(например: зависимости) в один модуль. И ресурсов эта вещь тратит намного меньше, чем та же виртуальная машина.
Так наоборот надо читать. Самое главное преимущество докера это то, что он тратит меньше ресурсов, чем виртуальная машина.
Спасибо за статью, Docker SDK мощная штука, хотелось бы упомянуть что для тестовых сценариев отлично подойдёт https://testcontainers.com/, существует много портов и минимальный эффорт по работе с контейнера (есть нюансы со сложными сетапами)
Еще есть https://github.com/ory/dockertest для тех же целей.
Docker это наше все, тоже перевел все на него, быстрое разворачивание и перенос данных... удобно! а вот с правами пока не разобрался. По умолчанию ставится от рута... от рута и работаю, благо пока что только в разработке.
Пользуемся Docker, не выходя из Go