You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Dockerfile中获取宿主用户名并创建对应容器家目录

实现方案

你可以通过Docker的构建参数(ARG) 功能实现需求,操作步骤如下:

  • 第一步:修改你的Dockerfile,声明构建参数并替换你原来的目录创建命令
    # 声明构建参数USERNAME,默认值可设为你的常用用户名josecz
    ARG USERNAME=josecz
    # 用变量创建对应家目录
    RUN mkdir /home/${USERNAME}
    
    # 可选补充:如果需要同步创建容器内的同名用户、并给家目录设置对应权限,可以追加以下命令
    RUN useradd -m ${USERNAME} && chown -R ${USERNAME}:${USERNAME} /home/${USERNAME}
    # 如果需要容器运行时也能读取到这个用户名变量,可追加环境变量声明
    ENV DEFAULT_USER=${USERNAME}
    
  • 第二步:执行镜像构建命令,传入宿主当前用户名作为参数值
    docker build --build-arg USERNAME=$(whoami) -t 你的镜像名 .
    
    其中$(whoami)会自动获取当前Linux宿主的登录用户名,也就是你示例中的josecz,构建完成后容器内就会自动生成/home/josecz目录。
  • 简化方案:如果你固定使用josecz作为用户名,不需要动态适配其他用户,也可以直接在Dockerfile里把ARG的默认值设为josecz,构建时不需要加--build-arg参数,直接执行普通docker build命令即可。

内容的提问来源于stack exchange,提问作者Jose Cabrera Zuniga

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 13:57:00