Docker容器内用户与宿主机用户同名不同ID的问题

问题:

使用宿主机的同名用户登陆Docker容器,执行文件修改操作,提示:Permission denied.

  1. 宿主机中,用户ubuntu的uid和gid信息如下:
[ubuntu@ubuntu ~]$ id
uid=1001(ubuntu) gid=1001(ubuntu) groups=1001(ubuntu),10(wheel)
  1. Docker容器中,用户ubuntu的uid和gid信息如下:
[ubuntu@3f556dcf398b ~]$ id
uid=1000(ubuntu) gid=1000(ubuntu) groups=1000(ubuntu),10(wheel)

影响:会导致使用ubuntu的同名用户进入Docker容器后,修改文件和创建目录等操作没有权限。

解决办法:

(1)在Docker容器中,使用root账户,修改ubuntu用户的uid和gid

[ubuntu@3f556dcf398b ~]$ su
[root@3f556dcf398b ubuntu]$ usermod -u 1001 ubuntu
[root@3f556dcf398b ubuntu]$ groupmod -g 1001 ubuntu
[root@3f556dcf398b ubuntu]$ id ubuntu
uid=1001(ubuntu) gid=1001(ubuntu) groups=1001(ubuntu),10(wheel)
[root@3f556dcf398b ubuntu]$ su ubuntu
[ubuntu@3f556dcf398b ~]$

(2)在docker修改成功后,在docker镜像退出前,使用docker commit保存镜像的修改:

[ubuntu@ubuntu ~]$ docker commit -m 'set uid and gid for ubuntu' -a 'test' 3f556dcf398b docker_image:latest

注:在Docker容器中,ubuntu用户登陆,不要使用sudo去修改ubuntu的uid和gid,会提示:“sudo: unknown uid 1000: who are you?”,发生骑驴找驴的问题。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值