본문으로 건너뛰기

© 2026 Molayo

GitHub릴리즈2026. 05. 04. 21:24

Docker Moby 프로젝트 소개 및 Go 모듈 변경 안내

요약

Moby는 Docker가 소프트웨어 컨테이너화를 가능하게 하기 위해 만든 오픈소스 프로젝트로, 모듈식이고 유연하며 개발자 중심의 컴포넌트 툴킷을 제공합니다. 이 프로젝트는 컨테이너 빌드, 레지스트리, 오케스트레이션 등 다양한 기능을 구성할 수 있도록 설계되었으며, 커뮤니티 기여와 학습에 중점을 둡니다. 특히 중요한 변경 사항으로, Docker v29부터 Go 모듈 `github.com/docker/docker`가 사용 중단(deprecated)되므로, 개발자들은 대신 `github.com/moby/moby/client` 및 `github.com/moby/moby/api`와 같은 새로운 Moby 네임스페이스의 공중 Go 모듈을 사용해야 합니다.

핵심 포인트

  • Moby는 컨테이너 시스템 구축을 위한 모듈식, 개발자 중심의 오픈소스 툴킷입니다.
  • Moby 아키텍처는 컴포넌트가 교체 가능하도록 설계되어 유연성을 극대화합니다 (Batteries included but swappable).
  • Docker v29부터 기존 Go 모듈 `github.com/docker/docker` 사용이 중단되므로, 새로운 공중 API를 사용해야 합니다.
  • 개발자는 이제 `github.com/moby/moby/client` 및 `github.com/moby/moby/api`와 같은 Moby 네임스페이스의 모듈을 사용하여 Docker Engine API에 접근해야 합니다.

Moby 는 Docker 가 소프트웨어 컨테이너화 (containerization) 를 가능하게 하고 가속화하기 위해 만든 오픈소스 프로젝트입니다.

이 프로젝트는 커스텀 기반 컨테이너 시스템을 구성할 수 있는 툴킷 컴포넌트, 이를 조립하는 프레임워크, 그리고 모든 컨테이너 애호가와 전문가가 실험하고 아이디어를 교환할 수 있는 장소를 제공합니다. 컴포넌트는 컨테이너 빌드 도구, 컨테이너 레지스트리, 오케스트레이션 도구, 런타임 (runtime) 등이며, 다른 도구 및 프로젝트와 함께 사용 가능한 구성 요소로 활용됩니다.

Moby 는 강력한 원칙에 의해 안내되는 오픈 프로젝트로, 모듈러 (modular), 유연하며 사용자 경험에 대한 강렬한 의견이 없도록 설계되었습니다. 방향을 설정하는 데 커뮤니티의 도움을 받습니다.

  • Modular: 프로젝트는 잘 정의된 기능과 API 를 가진 많은 컴포넌트를 포함하며, 이 컴포넌트들은 서로 협력합니다.
  • Batteries included but swappable: Moby 는 완전히 기능적인 컨테이너 시스템을 구축할 수 있는 충분한 컴포넌트를 포함하지만, 모듈러 아키텍처는 대부분의 컴포넌트가 다른 구현으로 교체될 수 있도록 보장합니다.
  • Usable security: Moby 는 사용성을 해치지 않으면서 안전한 기본값을 제공합니다.
  • Developer focused: API 는 강력한 도구를 구축하기 위해 기능적이고 유용하도록 의도되었습니다. 이는 반드시 최종 사용자 도구로 의도된 것이 아니라 개발자를 위한 컴포넌트입니다. 문서화 및 UX 는 최종 사용자가 아닌 개발자를 대상으로 합니다.

Moby 프로젝트는 컨테이너를 기반으로 시스템을 수정, 해킹 (hack), 고치기, 실험, 발명 및 구축하려는 엔지니어, 통합자 및 애호가를 위해 설계되었습니다. 상업적으로 지원받는 시스템을 찾는 사람들을 위한 것이 아니라 오픈소스 코드로 작업하고 배우려는 사람들을 위한 것입니다.

Moby 프로젝트의 컴포넌트 및 도구는 Docker 와 커뮤니티가 Docker 프로젝트 (Docker Project) 를 위해 구축한 오픈소스 컴포넌트입니다. 새로운 프로젝트는 커뮤니티 목표와 일치하는 경우 추가될 수 있습니다. Docker 는 Docker 제품 (Docker Product) 의 업스트림 (upstream) 으로 Moby 를 사용하는 데 전념하고 있습니다. 그러나 다른 프로젝트도 Moby 를 업스트림으로 사용하고 다양한 방식으로 컴포넌트를 재사용할 것을 권장하며, 이러한 모든 사용법은 동일하게 처리됩니다. 외부 유지보수자 및 기여자는 환영합니다.

Moby 프로젝트는 Docker 제품의 지원 또는 기능 요청을 위한 장소가 아니라 기여자가 오픈소스 코드를 작업하고 버그를 고치고 코드를 더 유용하게 만드는 장소입니다. 릴리스는 유지보수자, 커뮤니티 및 사용자가 최선을 다하는 (best efforts) 기반으로만 지원합니다. 기업 또는 상업적 지원을 원하는 고객에게는 Docker Desktop 과 Mirantis Container Runtime 이 이러한 사용 사례에 적합한 제품입니다.

중요
Docker v29 (2025 년 11 월 출시) 를 시작하여 Go 모듈 github.com/docker/dockerdeprecated되었으며 업데이트되지 않습니다.

지원되는 공중 Go 모듈은 다음과 같습니다:

ModuleDescription
github.com/moby/moby/client
Docker Engine API 의 Go 클라이언트
github.com/moby/moby/api
클라이언트 및 서버 간 공유 API 타입

루트 모듈 github.com/moby/moby/v2는 Moby 를 기반으로 컨테이너 엔진을 구축하는 코드베이스입니다 (예: Docker Engine). 이 모듈은 바이너리만 생성하며 Go 라이브러리로 가져오기 위해 의도되지 않았습니다 (API 안정성 보장이 없습니다).

Docker Engine 릴리스는 docker- 접두사 (** docker-** prefix) 로 태그됩니다 (예: Docker Engine 29.0.0 을 위한 docker-v29.0.0). 이 태그들은 루트 모듈에서 Docker Engine 바이너리를 구축하는 데만 사용되며, go get 를 통해 소비해서는 안 됩니다.

clientapi 모듈은 고유한 태그와 함께 독립적으로 버전 관리됩니다 (예: client/v1.x.x, api/v1.x.x).

오래된 import 경로를 교체하세요:

- import "github.com/docker/docker/client"
+ import "github.com/moby/moby/client"
- import "github.com/docker/docker/api/types"
...

v29 는 많은 API 변경 사항 (option structs, renamed methods, moved types) 을 포함합니다. Go SDK 변경 사항을 위한 전체 목록은 v29.0.0 릴리스 노트를 참조하세요.

*당사 법률 자문사의 도움을 받아 제공되었습니다. 더 많은 컨텍스트를 위해, plea

AI 자동 생성 콘텐츠

본 콘텐츠는 GitHub Trending Go (weekly)의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
1

댓글

0