Docker: USER 指定当前用户

2023-05-16

Docker: USER 指定当前用户

格式:USER <用户名>

USER 指令和 WORKDIR 相似,都是改变环境状态并影响以后的层。WORKDIR 是改变工作目录,USER 则是改变之后层的执行 RUN, CMD 以及 ENTRYPOINT 这类命令的身份。

一、Docker 用户设置

当然,和 WORKDIR 一样,USER 只是帮助你切换到指定用户而已,这个用户必须是事先建立好的,否则无法切换。

RUN groupadd -r redis && useradd -r -g redis redis
USER redis
RUN [ "redis-server" ]

二、su权限: gosu

如果以 root 执行的脚本,在执行期间希望改变身份,比如希望以某个已经建立好的用户来运行某个服务进程,不要使用 su 或者 sudo,这些都需要比较麻烦的配置,而且在 TTY 缺失的环境下经常出错。建议使用 gosu。

#建立 redis 用户,并使用 gosu 换另一个用户执行命令
RUN groupadd -r redis && useradd -r -g redis redis
#下载 gosu
RUN wget -O /usr/local/bin/gosu "https://github.com/tianon/gosu/releases/download/1.7/gosu-amd64" \
    && chmod +x /usr/local/bin/gosu \
    && gosu nobody true
#设置 CMD,并以另外的用户执行
CMD [ "exec", "gosu", "redis", "redis-server" ]

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Docker: USER 指定当前用户 的相关文章

随机推荐

  • 渗透测试及一些网络安全类的讨论社区类的整理

    渗透测试 比较知名的渗透测试的民间讨论社区及其网址网络安全有哪些民间交流组织及网址 xff08 待更新 xff09 渗透测试通常包括以下步骤漏洞扫描自动化工具有哪些渗透测试为什么要进行漏洞利用渗透测试为什么要权限维持 渗透测试 比较知名的渗
  • 智能家居HomeAssistant(三)MQTT配置

    目录 1 连接局域网内MQTT服务器的参数配置 1 1 MQTT参数配置 1 2 MQTT传感器配置 1 3 MQTT客户端配置 1 4 测试验证 1 5 扩展测试 2 连接阿里云物联网平台的参数配置 2 1 mqtt参数配置 2 2 阿里
  • 智能家居HomeAssistant(二)Docker安装homeassistant

    目录 1 查找镜像 2 拉取镜像 3 查看镜像 4 启动镜像 5 查看容器运行状态 6 开机自动启动配置 7 自动重新启动配置 扩展 xff1a 下一篇MQTT配置 xff1a 智能家居HomeAssistant xff08 三 xff09
  • defined but not used [-Wunused-function] 使用 __attribute__((unused)) 告诉编译器忽略此告警

    在C程序中 xff0c 如果定义了一个静态函数或变量 xff0c 而没有去使用 xff0c 编译时会有一个警告 xff1a 39 at wait send finish 39 defined but not used Wunused fun
  • 【QT】串口调试助手(串口编程代码详解)

    目录 1 串口助手最终成品效果 1 1 串口功能描述 1 2 串口接收数据显示图 1 3 串口发送数据显示图 2 项目编程代码详解 2 1 项目框架 2 2 工程配置 serial pro 2 3 设计布局 serial ui 2 4 串口
  • 【Linux-ARM】安装海思himix200交叉编译openssl-arm静态库与动态库

    目录 一 安装海思himix200交叉编译工具链 1 编译环境 编辑 编辑 2 安装说明 3 配置参数 4 编译 5 查看环境变量 6 查看安装后版本 二 arm himix200 linux 交叉编译openssl arm静态库与动态库
  • 【Linux-ARM】电脑 WiFi 上网,开发板与电脑直连

    目录 1 准备工作 2 VMware 设置 3 Ubuntu 设置 4 Windows 设置 5 开发板设置 6 ping 测试 7 小结 1 准备工作 使用场景 xff1a 路由器离电脑比较远 xff0c 只有一条网线 设备 xff1a
  • 【Linux-ARM】arm-sgmstar-gnueabihf-9.1.0-202007-gcc交叉编译openssl、curl静态库.a与动态库.so

    编译环境 xff1a ubuntu 18 04 一 安装交叉编译器arm sgmstar gnueabihf 9 1 0 202007 gcc 1 下载交叉编译包 ARM交叉编译器的免安装解压包链接 xff1a ARM交叉编译器 xff1a
  • Python安装第三方库PIL时失败的解决办法

    Python中 xff0c 安装第三方模块 xff0c 是通过setuptools这个工具完成的 Python有两个封装了setuptools的包管理工具 xff1a easy install和pip 目前官方推荐使用pip 安装一个第三方
  • 小程序游戏开发一般多少钱?游戏小程序开发制作

    小程序游戏开发一般多少钱 xff1f 游戏小程序开发制作 有网友咨询我们小程序游戏开发一般多少钱 xff1f 关于游戏小程序开发制作 xff0c 我们公司涉及的开发案例比较少 xff0c 开发游戏小程序的成本要比商城小程序 xff0c 或者
  • MySQL学习笔记_9_MySQL高级操作(上)

    MySQL 高级操作 xff08 上 xff09 一 MySQL 表复制 create table t2 like t1 复制表结构 xff0c t2 可以学习到 t1 所有的表结构 insert into t2 select from t
  • MySQL学习笔记_10_MySQL高级操作(下)

    MySQL 高级操作 xff08 下 xff09 五 MySQL 预处理语句 1 设置预处理 stmt xff0c 传递一个数据作为 where 的判断条件 prepare stmt from select from table name
  • Linux下的tree命令 --Linux下目录树查看

    Linux下的tree命令 Linux下目录树查看 有时我们需要生成目录树结构 可以使用的有ls R 但是实际效果并不好 这时需要用到tree命令 但是大部分Linux系统是默认不安装该命令的 需要自己安装一下 tree的常见用法 tree
  • gcc学习(一)[第二版]

    gcc简介 1 gcc是GNU Compiler Collection的缩写 最初是作为C语言的编译器 xff08 GNU C Compiler xff09 作者为Richard Stallman xff0c 是GNU项目的奠基者 现在已经
  • Socket编程实践(9) --套接字IO超时设置方法

    引 超时设置3种方案 1 alarm超时设置方法 代码实现 这种方式较少用 void sigHandlerForSigAlrm int signo return signal SIGALRM sigHandlerForSigAlrm ala
  • 岁月划过生命线(从0到阿里)

    从来没有想到自己的求职之路会这么顺利 第一次投阿里就拿到了offer 以前一直都是做好被刷的准备的 3月31号晚上收到了来自阿里的正式offer 签下录取意向书 粗略算了一下 从2012年9月份正式入学进入计算机系到2015年3月签下阿里o
  • MyBatis 实践 -Mapper与DAO

    MyBatis 实践 标签 xff1a Java与存储 MyBatis简介 MyBatis前身是iBatis 是一个基于Java的数据持久层 对象关系映射 ORM 框架 MyBatis是对JDBC的封装 使开发人员只需关注SQL本身 而不需
  • Maven 核心原理

    Maven 核心原理 标签 xff1a Java基础 Maven 是每一位Java工程师每天都会接触的工具 但据我所知其实很多人对Maven理解的并不深 只把它当做一个依赖管理工具 下载依赖 打包 Maven很多核心的功能反而没用上 最近重
  • JVM初探 -JVM内存模型

    JVM初探 JVM内存模型 标签 xff1a JVM JVM是每个Java开发每天都会接触到的东西 其相关知识也应该是每个人都要深入了解的 但接触了很多人发现 或了解片面或知识体系陈旧 因此最近抽时间研读了几本评价较高的JVM入门书籍 算是
  • Docker: USER 指定当前用户

    Docker USER 指定当前用户 格式 xff1a USER lt 用户名 gt USER 指令和 WORKDIR 相似 xff0c 都是改变环境状态并影响以后的层 WORKDIR 是改变工作目录 xff0c USER 则是改变之后层的