Pull to refresh

Comments 11

PinnedPinned comments

Спасибо за статью, Docker SDK мощная штука, хотелось бы упомянуть что для тестовых сценариев отлично подойдёт https://testcontainers.com/, существует много портов и минимальный эффорт по работе с контейнера (есть нюансы со сложными сетапами)

Важно: при запуске программы напиши sudo

А лучше добавь себя в группу docker

Не лучше - таким образом этот пользователь можно сказать становится рутом. И через монтирование можно будет поменять любой файл на хостовой системе без sudo. Для sudo хотя бы требуется пароль.

Лучше уж rootless mode

https://docs.docker.com/engine/security/rootless/

Для 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)

у докера и так нет нормального контроля прав, а вы хотите еще и через дополнительный шлюз с админкой пустить команды?

Самое главное преимущество Докера — это упаковывать все нужное для твоей программы(например: зависимости) в один модуль. И ресурсов эта вещь тратит намного меньше, чем та же виртуальная машина.


Так наоборот надо читать. Самое главное преимущество докера это то, что он тратит меньше ресурсов, чем виртуальная машина.

Спасибо за статью, Docker SDK мощная штука, хотелось бы упомянуть что для тестовых сценариев отлично подойдёт https://testcontainers.com/, существует много портов и минимальный эффорт по работе с контейнера (есть нюансы со сложными сетапами)

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

Sign up to leave a comment.

Articles