请帮我在docker image中添加凭证。因此,如果有人试图输入图像,则要求提供凭证。
情景 - 假设我从官方网站下载了一个ubuntu图像,我做了一些更改并创建了一个新图像ubuntu-myapp。
现在没有人可以进入ubuntu来复制或更改我的代码。没有提供凭证
答案 0 :(得分:0)
在您的泊坞窗文件中,您需要设置root用户密码。
回声' newpassword' | passwd root --stdin
并确保所有文件夹都具有root权限以修改任何内容。
答案 1 :(得分:0)
通过向root用户添加凭据并更改为其他用户来创建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
希望这有帮助。