在Linux容器中如何添加或挂载目录
时间:2019-04-29 03:17:16 来源:igfitidea点击:
如何在两个linux容器之间共享数据。其中一个跑Nginx,另一个用于处理数据。如何在两个目录之间添加或挂载共享目录?
创建一个名为c1的新容器
lxc launch images:centos/8/amd64 c1 lxc list c1
在容器中创建一个名为/dest/的新目录,
lxc exec c1 -- "mkdir -pv /var/www/html/" lxc exec c1 -- "ls -ld /var/www/html/"
挂载目录
挂载目录到容器中的语法为:
lxc config device add {container-name} {name} disk source={/path/to/source/dir/} path={/path/to/dest/onto/container/}
例如 要将主机的 **/wwwdata/**目录挂载到容器c1 中的目录 /var/www/html/,执行下面的命令
lxc config device add c1 sharedwww disk source=/wwwdata/ path=/var/www/html/ lxc config show c1
修改容器目录读写权限
注意,挂载以后是只读的。重新映射用户ID,以便对挂载的文件夹可以进行读写。
如何允许容器在主机上重新映射用户ID
修改从属用户id文件和从属组id文件 /etc/subuid和 /etc/subgid
echo "root:1000:1" | sudo tee -a /etc/subuid /etc/subgid
如何在容器内重新映射用户ID
登录到容器,查看用户的id
lxc exec c1 bash grep ^ykbj /etc/passwd
将主机的用户uid和容器的用户uid 进行映射
lxc config set c1 raw.idmap "both 1000 1000"
重启容器使设置生效:
lxc restart c1
查看容器上的设备,确认磁盘(目录)是否已经加上
lxc config device show c1
重启容器,使用新增目录
lxc restart c1
登录到容器
lxc exec c1 bash cd /var/www/html/ ls -l mkdir foo
如何从容器中删除/卸载目录
如果要删除容器的目录(磁盘)可以执行下面的命令
lxc config device show c1 lxc config device remove c1 sharedwww