请帮助我在Docker镜像中添加凭据。因此,如果有人尝试输入图像,则要求提供证书。
场景-
假设我从官方网站下载了ubuntu镜像,做了一些更改并创建了新镜像ubuntu-myapp。
现在没有人可以输入ubuntu复制或更改我的代码。没有提供的凭证
最佳答案
通过向 super 用户添加凭证来创建Dockerfile,然后将其更改为其他用户,如下所示。
$ cat Dockerfile
FROM ubuntu:16.04
COPY raghu/varibale.py /root
#create password for the root user. echo "USERNAME:NEWPASSWORD" | chpasswd
RUN echo "root:raghu" | chpasswd
#create a different user for public access.
RUN useradd -ms /bin/bash raghu
#change to the new user
USER raghu
从Dockerfile构建Docker镜像。该 Docker镜像可以由任何人运行,但脚本只能由root用户执行。
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
auth 2.0 0c15c8ef5594 7 seconds ago 112MB
让我们执行Docker镜像并检查用户是否可以在没有root密码的情况下访问文件:
$ docker run -it auth:2.0 /bin/bash
raghu@17b003083ff7:/$ ls
bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
raghu@17b003083ff7:/$ cd root
bash: cd: root: Permission denied
raghu@17b003083ff7:/$ su -
Password:
root@17b003083ff7:~# ls
varibale.py
root@17b003083ff7:~# pwd
/root
root@17b003083ff7:~# exit
logout
raghu@17b003083ff7:/$ exit
exit
除非提供root密码,否则即使使用特权选项也无法执行文件:
$ docker run -it --privileged auth:2.0 /bin/bash
raghu@3886fb3950f8:/$ ls
bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
raghu@3886fb3950f8:/$ cd root
bash: cd: root: Permission denied
raghu@3886fb3950f8:/$ su -
Password:
root@3886fb3950f8:~# ls
varibale.py
root@3886fb3950f8:~# exit
logout
raghu@3886fb3950f8:/$ exit
exit
希望这可以帮助。
关于image - 需要docker镜像运行身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48382516/