일부 필터링을 사용하여 도커 소켓을 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.)