개요
Docker 데몬은 TCP가 아닌 Unix Domain Socket에 바인딩되어 통신을 수행
이 때 Unix Domain Socket이 무엇인지 탐색
Unix Domain Socket (UDS)
image from https://miintto.github.io/docs/unix-socket
좌측 그림은 TCP/IP, 우측 그림은 UDS에서의 통신 흐름
TCP/IP는 Local 및 Remote 간의 통신을 지원하는 용도
UDS는 Local 내에서의 IPC 기법 중 하나
Local에서 UDS 통신 시, Application → Transport 2개 계층만을 거침
Local에서 TCP/IP 통신 시, Application → Transport → IP → Data 4개 계층을 거침
즉, UDS에서는 Loopback Address까지의 패킷 헤더를 구성하고 해석하는 오버헤드가 없기 때문에 통신 속도 성능이 더 뛰어나고 메모리 소모가 더 적음
대표적으로 MySQL 혹은 Docker에서 사용하는 UDS가 있고, UDS는 파일 유형이 s로 표기
UDS 조회
# 시스템 전체 UDS 목록 확인
lsof -U
# Docker UDS 확인
lsof -U | grep docker.sock
Shell
복사
Reference
Unix Domain Socket 개요
Unix Domain Socket과 TCP Socket의 차이