如果没有sudo,则apt-get在容器内失败

kuhbmx9i  于 2022-09-19  发布在  Docker
关注(0)|答案(2)|浏览(266)

我观察到一个问题,其中apt-get安装将在容器中失败,其中:

1.程序包已安装,并且,
1.未使用sudo。

这可以通过创建一个简单的容器来重新创建,例如

docker run -it ubuntu:latest /bin/bash

在容器中,运行以下命令:

apt-get install software-properties-common
apt-get install software-properties-common

第二次,此操作将失败,并显示一条“已终止”消息。如果随后在语句前面加上sudo,它将成功完成:

sudo apt-get install software-properties-common

如果容器内的用户是根用户,为什么需要sudo来重新安装现有的包?我不认为这与AUFS文件系统有关,因为使用sudo前缀将会完成。

这是使用docker 1.10和一个Ubuntu镜像。

but5z9lq

but5z9lq1#

重点是使用sudo

它在Debian 11上不会失败:


# docker run -it ubuntu:latest /bin/bash

Unable to find image 'ubuntu:latest' locally
latest: Pulling from library/ubuntu
00f50047d606: Pull complete
Digest: sha256:20fa2d7bb4de7723f542be5923b06c4d704370f0390e4ae9e1c833c8785644c1
Status: Downloaded newer image for ubuntu:latest

# apt-get update

Hit:1 http://ports.ubuntu.com/ubuntu-ports jammy InRelease
Hit:2 http://ports.ubuntu.com/ubuntu-ports jammy-updates InRelease
Hit:3 http://ports.ubuntu.com/ubuntu-ports jammy-backports InRelease
Hit:4 http://ports.ubuntu.com/ubuntu-ports jammy-security InRelease
Reading package lists... Done

# apt-get install software-properties-common

Reading package lists... Done
...
0 added, 0 removed; done.
Running hooks in /etc/ca-certificates/update.d...
done.
Processing triggers for dbus (1.12.20-2ubuntu4) ...

# apt-get install software-properties-common

Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
software-properties-common is already the newest version (0.99.22.3).
0 upgraded, 0 newly installed, 0 to remove and 4 not upgraded.

您的系统上可能有损坏的东西。如果运行这些程序无济于事,您可能需要重新安装:

apt-get update
apt-get upgrade
l5tcr1uw

l5tcr1uw2#

您需要通过以下命令安装sudo包。

APT更新和APT升级APT安装sudo

相关问题