首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >apt-get更新无根Docker

apt-get更新无根Docker
EN

Stack Overflow用户
提问于 2021-02-24 00:45:43
回答 2查看 230关注 0票数 0

在我的Raspberry Pi上安装Rootful Docker可以更新源代码,并且可以通过查看sudo apt-cache policy来配置unattended-upgrades自动更新Docker。

然而,Rootless Docker不需要。那么有没有办法升级Rootless Docker呢?

换句话说:

使用Rootful Docker,主机上的sudo apt-get update && sudo apt-get -y upgrade可以升级Docker安装。我希望能够用无根Docker做一些类似的事情。有可能吗?

澄清一下:我不是在尝试更新容器,而是在更新Docker本身。

提前感谢您所能提供的任何帮助:)

EN

回答 2

Stack Overflow用户

发布于 2021-02-24 01:05:30

据我所知,Debian没有专门的无根包,所以你不能用包管理器来做这件事。一些无根二进制文件略有不同,missing SETUID bits和其他一些文件功能。

但是,您可以尝试再次运行rootless installation script,如果这会更新您的二进制文件。

代码语言:javascript
复制
curl -fsSL https://get.docker.com/rootless | sh

这些也可以在这里以rootless-extras的形式提供,但需要手动提取:

票数 0
EN

Stack Overflow用户

发布于 2021-04-13 00:25:05

我也没有找到官方的方法来更新docker-rootless安装。

下面是我更新docker-rootless的方法。这有点实验性,但对我来说很有效。也许它需要更多的测试来使它更健壮,并准备好在脚本或crontab中使用:

代码语言:javascript
复制
# UPDATE DOCKER-ROOTLESS (as user which docker-rootless runs with):
# stop your docker daemon ... (takes long time for me and doesn't finish problerly)
systemctl --user stop docker.service

# maybe you have to kill it because it hangs up and doesn't finish proberly
CTRL+C

# check that docker.service isn't running (important !!!)
systemctl --user status docker.service
# Active: inactive (dead)
# OR:
# Active: failed (Result: exit-code)

# download docker-rootless installation script
wget https://get.docker.com/rootless -O rootless.sh

# set environment variables (used by rootless.sh script)
SKIP_IPTABLES=1
FORCE_ROOTLESS_INSTALL=1

# remove "Already installed verification" check from script
sed -i s#\-x\ \"\$BIN/\$DAEMON\"#\!\ \-x\ \"\$BIN/\$DAEMON\"#g rootless.sh

# make rootles.sh executable
chmod +x rootless.sh

# run rootless.sh
./rootless.sh

# kill installation script, because it starts docker.service and keeps running
CTRL+C

# finally setcap cap_net_bind_service (to bind ports less than 1024)
# replace 'docker' with the username you are logged in with
sudo setcap cap_net_bind_service=ep /home/docker/bin/rootlesskit

# DONE (docker should now be updated)
docker --version
# Docker version 20.10.6, build 370c289


# UPDATE DOCKER-COMPOSE (with sudo or root):
# get and save latest docker-compose version
DOCKER_COMPOSE_VERSION=$(curl -L "https://docs.docker.com/compose/install/" | grep -o -P '(?<=https://github.com/docker/compose/releases/download/).*(?=/docker-compose)' | head -n1)

# download docker-compose
sudo curl -L "https://github.com/docker/compose/releases/download/$DOCKER_COMPOSE_VERSION/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

# make it executable
sudo chmod +x /usr/local/bin/docker-compose

# link it to /usr/bin
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

# DONE (docker-compose should now be updated)
docker-compose --version
# docker-compose version 1.29.1, build c34c88b2


# remove docker-rootless script
rm rootless.sh

# maybe you should reboot your host once!
sudo reboot
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66337404

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档