Dockerfile 和entrypoint:

Dockerfile是容器启动前执行的命令,entrypoint是容器系统启动后执行的命令

entrypint.sh示例:

#!/bin/sh

set -e

groupadd docker -g "$GROUP_ID"
useradd docker --shell /bin/bash -u "$USER_ID" -g "$GROUP_ID"

export HOME=/home/docker

exec gosu "$USER_ID:$GROUP_ID" "$@"

:wq

注:
该脚本内容是为容器创建1各本地账号,uid和gid均为变量,方便用户创建容器时调整(以和宿主机账号一致)

Dockerfile要新加(名字必须为Dockerfile)

apt-get install gosu

COPY entrypoint.sh /usr/local/bin/entrypoint.sh
ENTRYPOINT ["/usr/local/bin/entrypoint.sh"]
RUN chmod +x /usr/local/bin/entrypoint.sh

Dockerfile和entrypoint.sh放到同1目录下,生成image命令:docker built -t image:1.0 ./