如何解决使用非 root 用户运行容器时在主机上安装卷时出现问题
我正在使用 docker 开发 zookeeper 和 kafka。我的主机是 CENTOS7,上面安装了 docker。我有一个 docker compose 文件如下:-
---
version: '3'
services:
zookeeper:
image: confluentinc/cp-zookeeper:6.1.1
ports:
- 2181:2181
environment:
ZOOKEEPER_CLIENT_PORT: 2181
ZOOKEEPER_TICK_TIME: 2000
volumes:
- /data/zk/zk-data:/var/lib/zookeeper/data
- /data/zk/zk-txn-logs:/var/lib/zookeeper/log
在我的主机上,我有一个名为 teg 的用户,详细信息如下
[root@vmdev0090 teg]# id teg
[root@vmdev0090 teg]# uid=1000(teg) gid=1000(teg) groups=1000(teg),10(wheel)
镜像 confluentinc/cp-zookeeper:6.1.1 的容器也在以非 root 用户 appuser 运行,详细信息如下:-
[root@vmdev0090 teg]# docker exec -it teg_zookeeper_1 bash
[appuser@bf1edbe1a1e8 ~]$ id appuser
uid=1000(appuser) gid=1000(appuser) groups=1000(appuser)
这意味着在我的容器内,我有一个 uid 1000、gid 1000 和组 1000 的用户,与我的主机上的用户相同。只有用户名不同,但我认为这没有任何区别。 在我的主机上,我有以下目录结构:-
/data/zk/zk-data
/data/zk/zk-txn-logs
chown -R teg:teg /data
但是当我运行我的容器时,它仍然无法安装卷,并且日志中会打印以下几行
[root@vmdev0090 home]# docker logs home_zookeeper_1
===> User
uid=1000(appuser) gid=1000(appuser) groups=1000(appuser)
===> Configuring ...
===> Running preflight checks ...
===> Check if /var/lib/zookeeper/data is writable ...
Command [/usr/local/bin/dub path /var/lib/zookeeper/data writable] FAILED !
不知道我做错了什么。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。