일부 필터링을 사용하여 도커 소켓을 http 나머지와 공유
이 도구는 http 요청을 수신하고 일부 메서드 필터링을 사용하여 소켓으로 전달합니다.
이제 docker에서 다운로드하거나 실행할 수 있습니다.
다운로드하려면 release page을 방문하십시오.
# scratch version
docker pull ghcr.io/worldline-go/forward:v0.1.2
# alpine version
docker pull ghcr.io/worldline-go/forward:v0.1.2-alpine
이 도구는 소켓 파일의 위치와 리디렉션 경로 및 일부 필터링 방법을 표시하기 위해 명령 매개 변수를 요청합니다.
여기서는 모든
/docker/* 요청을 docker.sock 파일로 리디렉션합니다. 그리고 일부 방법을 비활성화하므로 필터링 방법 없이 모든 방법이 작동합니다.메서드 이름에서 시작하는
-를 사용하면 비활성화됩니다.-s /docker.sock:/docker/:-POST,-PUT,-DELETE,-PATCH
export socket to HTTP
version: 0.1.2 commit: b8e86c7 buildDate:2022-06-29T10:46:25Z
Usage:
  forward [flags]
Flags:
  -h, --help                 help for forward
  -H, --host string          Host to listen on, default: 0.0.0.0:8080 (default "0.0.0.0:8080")
  -s, --socket stringArray   Socket to export: /var/run/docker.sock:/docker/:*,-POST,-PUT,-DELETE
  -v, --version              version for forward
뛰자
docker run --rm -p 8080:8080 -v /var/run/docker.sock:/docker.sock ghcr.io/worldline-go/forward:v0.1.2 -s /docker.sock:/docker/:-POST,-PUT,-DELETE,-PATCH
이제 http 서비스를 호출합니다(자세한 내용은 this document 확인).
curl http://localhost:8080/docker/containers/json
나는
/docker 경로에 공유했기 때문에 /docker 접두사로 호출했지만 이것은 경로를 설정할 필요가 없는 데모용입니다.이제 이 도구를 traefik에서 사용할 수 있습니다.
Traefik은 프록시 도구이며 스웜 모드에서 서비스 정보를 찾으려면
docker.sock 통신이 필요합니다.우리는 Traefik에 docker.sock을 마운트하고 통신을 해결할 수 있지만 한 가지 점이 있습니다. swarm의 작업자 노드
docker.sock는 swarm-api(기본값)에 도달할 수 없습니다. 이 통신을 수정하여 앞으로 도구를 서비스로 실행하고 Traefik을 서비스로 설정하여 도커 소켓과 통신할 수 있습니다.전달 서비스
forward-docker:
  image: ghcr.io/worldline-go/forward:v0.1.2
  command: "-s /var/run/docker.sock::-POST,-PUT,-PATCH,-DELETE"
  deploy:
    mode: global
    # Just works in manager nodes for swarm API
    placement:
      constraints:
        - "node.role==manager"
  volumes:
    - /var/run/docker.sock:/var/run/docker.sock
  networks:
    - proxy
traefik의 정적 구성 변경 enpoint에서
providers:
  docker:
    # endpoint: "unix///var/run/docker.sock"
    endpoint: "tcp://forward-docker:8080"
이제 Swarm의 모든 노드에서 Traefik을 복제할 수 있습니다.
Reference
이 문제에 관하여(일부 필터링을 사용하여 도커 소켓을 http 나머지와 공유), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/rytsh/share-docker-socket-to-http-rest-with-some-filtering-38m5텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
                                
                                
                                
                                
                                
                                우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)