docker镜像新增加用户+sudo权限,无dockerfile
1. 启动临时容器并进入
以root
用户启动容器(假设原镜像为ubuntu:22.04
):
docker run -it --name temp_container ubuntu:22.04 /bin/bash
2. 安装sudo(若镜像未预装)
在容器内执行以下命令安装sudo(适用于Debian/Ubuntu系镜像):
apt-get update && apt-get install -y sudo
- 注意:若镜像基于CentOS/Alpine,需改用
yum install sudo
或apk add sudo
。
3. 创建用户并设置密码
添加work
用户并分配密码(此处密码设为work123
):
useradd -m -s /bin/bash work && echo "work:work123" | chpasswd
-m
:创建用户家目录(如/home/work
) 。
4. 赋予sudo权限
将用户加入sudo
组并配置免密sudo(可选):
# 加入sudo组
usermod -aG sudo work
# 配置免密sudo(可选)
echo "work ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers
- 若不配置免密,用户需输入密码才能使用sudo 。
5. 验证权限
切换到work
用户并测试sudo:
su - work
sudo apt-get update
6. 提交镜像
退出容器后,提交修改生成新镜像:
docker commit temp_container my_image_with_work_user:latest