我有一个小示例 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
Run Code Online (Sandbox Code Playgroud)
给出输出:
$ 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
Run Code Online (Sandbox Code Playgroud)
请注意,一旦容器构建完成,/home/docker 就归 root 所有。拔掉chown线没有影响。就像图层完成后不会保留文件权限一样。
我在用:
$ docker --version
Docker version 20.10.25, build 20.10.25-0ubuntu1~22.04.1
Run Code Online (Sandbox Code Playgroud)
我还能够使用相同版本的 Docker 在新的 VM 映像上进行重现。
| 归档时间: |
|
| 查看次数: |
334 次 |
| 最近记录: |