- 구조는 위 이미지처럼 크게는 Client, Server로 나누어져 있다고 보면 된다
- Client는 명령어를 입력할 수 있는 CLI가 있는 클라이언트, docker 명령어를 입력 받으면 서버로 전달한다
- Server는 위엔 Docker Host라고 되어 있지만 Daemon이라고 얘기도 한다, Client에서 받은 명령어를 파싱하고 해당 명령어에 해당하는 작업을 수행한다
- 여기서 Client에게 받을땐 /var/run/docker.sock 유닉스 소켓을 사용해 전달받는다고 한다
- 그리고 수행 후 완료된 결과를 Client에게 전달하여 출력하는 것
- Registry는 이미지를 저장하고 관리하는 서비스 정도로만 생각해두자
- Daemon에 대한 설정을 변경하고 싶다면 Daemon을 정지시킨 후 명령어 옵션을 통해 변경하여 재실행 시킬수도 있지만, 왠만하면 설정 파일을 변경한다고 한다
- Linux엔 /etc/docker/daemon.json 이렇게, 다른 환경에선 어딘가에.. config/daemon.json이 있다는데.. 어딘가에 있겠지...
- 그리고 SDK 같이 코드로 Daemon을 실행하고 설정하고, 컨테이너를 만들수도 있다고 한다, Java, Python 라이브러리가 별도로 있는 듯