报错信息
在制作Docker镜像的过程中,完成软件安装等操作后,一般会切换为普通用户启动相应的服务,就需要用到USER
指令。但有时候这个指令会报错:
解决方案
如果遇到这个问题,可以在使用USER
指令之前,先创建用户。
网上有很多其他的方案,其中一个是使用USER ID代替用户名,的确可以成功,但是进入容器后,会是普通用户权限,很多操作都执行不了,如果容器是用来开发和调试的,就不太方便了。
相关知识
Docker官方文档中关于USER
指令的说明。
USER <user>[:<group>]
或者
USER <UID>[:<GID>]
The USER
instruction sets the user name (or UID) and optionally the user group (or GID) to use when running the image and for any RUN
, CMD
and ENTRYPOINT
instructions that follow it in the Dockerfile
.
“USER”指令设置运行映像时要使用的用户名(或UID)和可选的用户组(或GID),“Dockerfile”中紧随其后的任何“RUN”、“CMD”和“ENTRYPOINT”指令都将用该用户执行。
需要注意
在容器中创建Windows用户的方法
RUN net user /add Patrick