我使用的是全新的 Fedora CoreOS,它附带了 Docker 版本 19.03.11。
我的core用户在docker组中:
[core@localhost ~]$ groups
core adm wheel sudo systemd-journal docker
Run Code Online (Sandbox Code Playgroud)
按照portainer 的部署说明,我创建了一个新的 Portainer 容器,如下所示(如core或root,这根本不重要):
$ docker volume create portainer_data
$ docker run -d -p 9000:9000 -p 8000:8000 --name portainer --restart always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer
Run Code Online (Sandbox Code Playgroud)
当我尝试连接到本地守护进程时:
权限/var/run/docker.sock:
[core@localhost ~]$ ll /var/run/docker.sock
srw-rw----. 1 root docker 0 Aug 2 10:02 /var/run/docker.sock
Run Code Online (Sandbox Code Playgroud)
即使我也chmod o+rw /var/run/docker.sock行不通。这表明问题可能出在容器本身,因此我尝试访问它,但无法访问:
[core@localhost ~]$ docker exec -it portainer sh
OCI runtime exec failed: exec failed: container_linux.go:349: starting container process caused "exec: \"sh\": executable file not found in $PATH": unknown
Run Code Online (Sandbox Code Playgroud)
到目前为止我发现的所有资源都建议将用户添加到组中docker(我这样做了),重新启动计算机(我这样做了),或者设置 666 on /var/run/docker.sock(我这样做了但不喜欢这样做)。没有任何帮助。
知道出了什么问题以及如何解决吗?
如果是 SELinux 问题,请先尝试关注portainer/portainer问题 849
正确的方法是将 :z 添加到卷映射中,这样就不会违背 docker 的目的。
就像这样:
Run Code Online (Sandbox Code Playgroud)docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock:z portainer/portainer此外,我们还需要一种方法在 Portainer 中为新容器添加 z 或 Z 标志。这是 Docker 1.7(例如 2015 年)以来的一个功能。
那,或者使用dpw/selinux-dockersock
| 归档时间: |
|
| 查看次数: |
12209 次 |
| 最近记录: |