Docker-06-普通用户操作

30 阅读1分钟

1.概述

Dockerfile默认是以root用户进行操作的,该用户操作权限过大,基于安全考虑,一般是在镜像中创建一个普通的用户进行操作。这个要求跟在虚拟机或物理机上运行的linux系统要求其实是一样的,只是操作方式不一样。

2.操作

2.1 创建用户和用户组

RUN groupadd appgroup && useradd appuser -g appgroup
RUN groupadd appgroup [--gid 1000] && useradd appuser -g appgroup [--uid 2000] 

2.2 镜像时区修改

# centos7.0 设置上海时区,即北京时间
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
RUN echo 'Asia/Shanghai' >/etc/timezone
# ubuntu:21.10
ENV TZ=Asia/Shanghai
RUN ln -fs /usr/share/zoneinfo/${TZ} /etc/localtime

2.3 拷贝应用到镜像

默认是以root用户操作,所以拷贝文件的时候需要指定用户(这里可以不用指定用户组)。

COPY --chown=appuser:appgroup <源目录/文件> <目标目录>
COPY --chown=appuser <源目录/文件> <目标目录>

2.4 切换用户启动应用

USER appuser
ENTRYPOINT["你的启动命令"]