Docker в Unprivileged LXC контейнере
обновим списки контейнеров и покажем доступные template
1
pveam update && pveam available
Я выберу этот
1
system debian-13-standard_13.1-2_amd64.tar.zst
Скачаем в local
1
pveam download local debian-13-standard_13.1-2_amd64.tar.zst
Найдем полное название
1
pveam list local
1
local:vztmpl/debian-13-standard_13.1-2_amd64.tar.zst
Создадим lxc контейнер
1
pct create 112 local:vztmpl/debian-13-standard_13.1-2_amd64.tar.zst --cmode shell --cores 2 --hostname docker-test --memory 512 --unprivileged 1 --ostype debian --net0 name=eth0,bridge=vmbr0,gw=10.0.10.1,ip=10.0.10.11/24,firewall=1,tag=20 --ssh-public-keys /root/.ssh/authorized_keys --storage Samsung_SSD --features fuse=1,keyctl=1,nesting=1 --rootfs Samsung_SSD:10 --onboot 1
Запустим контейнер и зайдем в консоль
1
pct start 112 && pct console 112
Я добавлю свой кэш
1
2
3
echo 'Acquire::HTTP::Proxy "[http://10.0.10.6:3142";'](http://10.0.10.6:3142";'/) >> /etc/apt/apt.conf.d/01proxy && echo 'Acquire::HTTPS::Proxy "false";' >> /etc/apt/apt.conf.d/01proxy
apt update && apt upgrade
Начнем настраивать docker репозиторий
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
apt update
apt install ca-certificates curl
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
chmod a+r /etc/apt/keyrings/docker.asc
# Add the repository to Apt sources:
tee /etc/apt/sources.list.d/docker.sources <<EOF
Types: deb
URIs: http://download.docker.com/linux/debian
Suites: $(. /etc/os-release && echo "$VERSION_CODENAME")
Components: stable
Signed-By: /etc/apt/keyrings/docker.asc
EOF
apt update
Установим docker
1
apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin fuse-overlayfs
Поставим другой storage драйвер
1
2
3
4
5
6
cat <<EOF >/etc/docker/daemon.json
{
"storage-driver": "fuse-overlayfs"
}
EOF
systemctl restart docker.service
Проверим работу
1
docker run helloworld
Создадим другого пользователя
1
2
3
4
5
6
7
8
9
useradd -m -d /home/docker-user -U -s /bin/bash docker-user
usermod -aG docker docker-user
mkdir /docker
mkdir /home/docker-user/.ssh
cp ~/.ssh/authorized_keys /home/docker-user/.ssh/authorized_keys
chown -R docker-user:docker-user /home/docker-user/.ssh/
chown -R docker-user:docker /docker/
chmod 700 /home/docker-user/.ssh/
chmod 600 /home/docker-user/.ssh/authorized_keys
Готово
This post is licensed under CC BY 4.0 by the author.