本文记录一下如何使用非root用户进行docker操作,并将数据目录从其他机器进行nfs mount。
场景说明
安装docker所在机器由于磁盘空间不足,将数据目录/var/lib/docker进行mount,使用别的机器的空间。在一些企业中由于标准虚机的大小可能已经规范,会产生类似的问题。
环境模拟
host | ip | 用途 | 软件安装 | 进程启动 |
---|---|---|---|---|
host118 | 192.168.163.118 | 安装了docker的机器 | docker与nfs-utils | systemctl start docker |
host131 | 192.168.163.131 | NFS服务器,提供docker的数据目录的空间 | nfs-utils与rpcbind | systemctl start rpcbind 与systemctl start nfs |
-
docker非root用户的安装设定方式可参看
https://liumiaocn.blog.csdn.net/article/details/88651955 -
nfs mount操作具体可参看
https://blog.csdn.net/liumiaocn/article/details/71157568
事前准备
NFS服务器
事前准备
使用非root用户appman进行操作,事先准备该用户与sudo权限
[root@host131 ~]# useradd appman
[root@host131 ~]# passwd appman
Changing password for user appman.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
[root@host131 ~]# vi /etc/sudoers
[root@host131 ~]# grep appman /etc/sudoers
appman ALL=(ALL) ALL
[root@host131 ~]#
创建用于mount的目录
创建/opt/lib/docker目录用于mount,可以看到此目录所在卷仍有一些使用空间。
[appman@host131 ~]$ id
uid=1000(appman) gid=1000(appman) groups=1000(appman) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
[appman@host131 ~]$ sudo mkdir -p /opt/lib/docker
[sudo] password for appman:
[appman@host131 ~]$ sudo ls -l /opt/lib/docker
total 0
[appman@host131 ~]$ sudo