使用SECOS在FCOS中访问docker.socket

问题描述 投票:1回答:1

简介

问候,

自一周以来,我一直在尝试设置FCOS(Fedora CoreOS)并与SELinux一起运行Docker Swarm(这是我第一次使用SELinux)

容器运行良好,但是当我尝试使用/var/run/docker.socket时,我总是得到permission denied

portainer_agent.0.k9c6uqifwohk@localhost    | 2020/03/14 13:24:11 [ERROR] [main,docker] [message: Unable to retrieve information from Docker] [error: Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.24/info: dial unix /var/run/docker.sock: connect: permission denied]

我已经尝试禁用SELinux(setenforce 0)以确保问题来自SELinux,

信息

docker.socket

srw-rw----. 1 root docker system_u:object_r:container_var_run_t:s0 0 Mar 14 13:14 /var/run/docker.sock

这里是我用于测试的docker-compose.yaml

version: '3.2'

services:
  agent:
    image: portainer/agent
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:z      
      - /var/lib/docker/volumes:/var/lib/docker/volumes:z
    networks:
      - agent_network
    deploy:
      mode: global
      placement:
        constraints: [node.platform.os == linux]


networks:
  agent_network:
    driver: overlay
    attachable: true

感谢您的帮助!

coreos selinux
1个回答
0
投票
与CL(容器Linux)不同,FCOS(Fedora CoreOS)附带将SELinux的“目标”策略设置为“强制”。如果希望获得与CL相同的行为,则应在/ etc / selinux / config中设置“ SELINUX = permissive”。
© www.soinside.com 2019 - 2024. All rights reserved.