我有一个小的Dockerfile示例:

FROM ubuntu:22.04

RUN groupadd -f -g 1000 docker && useradd -ms /bin/bash docker -u 1000 -g 1000 && ls -la /home
RUN chown docker:docker -R /home/docker && ls -la /home
RUN ls -la /home

它给出了输出:

$ docker build -t tmp .
Sending build context to Docker daemon  2.048kB
Step 1/4 : FROM ubuntu:22.04
 ---> 6b7dfa7e8fdb
Step 2/4 : RUN groupadd -f -g 1000 docker && useradd -ms /bin/bash docker -u 1000 -g 1000 && ls -la /home
 ---> Running in 58bee8aa4dfd
total 12
drwxr-xr-x 1 root   root   4096 Aug 11 15:55 .
drwxr-xr-x 1 root   root   4096 Aug 11 15:55 ..
drwxr-x--- 2 docker docker 4096 Aug 11 15:55 docker
Removing intermediate container 58bee8aa4dfd
 ---> dbd5d16e92d5
Step 3/4 : RUN chown docker:docker -R /home/docker && ls -la /home
 ---> Running in d76701c0765d
total 20
drwxr-xr-x 1 root   root   4096 Aug 11 15:55 .
drwxr-xr-x 1 root   root   4096 Aug 11 15:55 ..
drwxr-x--- 1 docker docker 4096 Aug 11 15:55 docker
Removing intermediate container d76701c0765d
 ---> 14ba02eee117
Step 4/4 : RUN ls -la /home
 ---> Running in c3373d418be8
total 12
drwxr-xr-x 1 root root 4096 Aug 11 15:55 .
drwxr-xr-x 1 root root 4096 Aug 11 15:55 ..
drwxr-x--- 1 root root 4096 Aug 11 15:55 docker
Removing intermediate container c3373d418be8
 ---> 0a6de3939320
Successfully built 0a6de3939320
Successfully tagged tmp:latest

请注意,构建容器后,/home/docker由根拥有.go 掉chown线没有任何影响.这就像是在层完成时不保留文件权限.

我正在使用:

$ docker --version
Docker version 20.10.25, build 20.10.25-0ubuntu1~22.04.1

我还能够使用相同版本的Docker在新的虚拟机映像上进行复制.

推荐答案

这是特定版本docker中的错误 请看这里的错误:https://bugs.launchpad.net/ubuntu/+source/docker.io-app/+bug/2029523

Linux相关问答推荐

如何根据具体情况打印两行输出?

AWK+向AWK导出值未传递

Perl/cpan: 找不到 JSON/Parse.pm @INC

如何在具有多种可能性的linux shell中获取最大值和最小值?

需要获取文件名、行号、模式在文件中的匹配位置

替换前 3 个字符范围内的所有整数

如何使用 Golang 清除终端中的最后一行

获取S3路径的linux命令

树莓派拒绝连接到瓶子服务器

根据其他列的值创建一个新列

如何用 Sed 替换 Match 后的 2 个连续行

函数在 shell 脚本中抛出错误语法错误:} unexpected

在 SLURM 作业(job)脚本中设置和传递字符串变量

在 Bash 中从最后到第一个输出文件行

使用 rc.local 运行脚本:脚本有效,但在启动时无效

C hello world 的汇编输出的每一行是什么意思?

在 Ubuntu 中重启 Nginx

让 Tk 看起来像一个原生 Linux 应用程序

如何以另一个用户的身份使用 sudo 在 bash 子shell 中执行一系列命令?

在 Linux 中的特定行向文件添加文本