Engine API 버전 기록
Engine API 버전 기록
Docker Engine API의 버전별 변경 사항을 정리한 문서예요. 각 API 버전(v1.56부터 v1.0까지)에서 추가되거나 폐기된 필드, 엔드포인트, 동작 변화를 다뤄요.
출처: 문서
본문
v1.56 API 변경 사항
GET /containers/json은 이제annotation필터를 지원해요. 기존label필터와 비슷하게, 키(annotation=key) 또는 키와 값(annotation="key=value")으로 컨테이너를 필터링해요.POST /containers/create는 이제 Unix 컨테이너의 초기 umask를 설정하는HostConfig.Umask를 지원해요. 설정하면 데몬이 컨테이너의 엔트포인트, exec 프로세스, 헬스체크에 대한 OCI 프로세스 구성에 그 값을 포함해요. 생략하면 런타임의 기본 동작이 적용돼요.
v1.55 API 변경 사항
GET /images/{name}/attestations는 이미지에 첨부된 in-toto 어테스테이션 문(statements)을 반환하는 새 엔드포인트예요.platform쿼리 파라미터는 이미지 변형을 선택해요(기본값은 데몬의 호스트 플랫폼). 이는 향후 호환성을 위해 반복 가능한 파라미터로 선언됐지만, 현재는 값 하나만 허용해요.type쿼리 파라미터는 반복해 in-toto 프레디킷 타입 URI로 반환되는 문을 필터링할 수 있어요. 생략하면 모든 문이 반환돼요.statement쿼리 파라미터(기본값false)는 그대로의 문 본문 포함 여부를 제어해요. 생략하거나false면 각 항목은 디스크립터와 프레디킷 타입만 포함하고 문 블롭은 읽지 않아요. 응답은AttestationStatement객체의 JSON 배열이에요.POST /containers/{id}/update는 이제BlkioWeightDevice,BlkioDeviceReadBps,BlkioDeviceWriteBps,BlkioDeviceReadIOps,BlkioDeviceWriteIOps필드를 통해 디바이스별 blkio 리소스 설정을 지원해요. 이 필드들은 이전에 요청 스키마에 있었지만 데몬이 무시했어요. 필드를 생략하거나null로 설정하면 현재 디바이스별 규칙을 그대로 두고, 빈 배열로 설정하면 해당 리소스 유형의 현재 디바이스별 규칙을 지워요.
v1.54 API 변경 사항
GET /images/json은 이제identity쿼리 파라미터를 지원해요. 설정하면 응답에 매니페스트 요약이 포함되고, 각 매니페스트에 신뢰할 수 있는 신원과 출처 정보가 담긴Identity필드가 포함될 수 있어요.POST /networks/{id}/connect는 이제EndpointSettings의MacAddress필드를 올바르게 적용해요. 이 필드는 API v1.44에서 추가됐지만 이전에는 무시됐어요.
v1.53 API 변경 사항
GET /info는 이제NRI필드를 포함해요. Node Resource Interface(NRI)가 활성화되면 이 필드가 이를 설명하는 정보를 담아요.GET /events는 콘텐츠 타입 협상 시application/jsonl도 지원해요.GET /images/{name}/json은 이제 이미지의 신뢰할 수 있는 신원과 출처 정보가 담긴Identity필드를 포함해요.- 폐기 예정:
POST /grpc와POST /session엔드포인트는 폐기 예정이며 향후 버전에서 제거될 거예요.
v1.52 API 변경 사항
GET /images/{name}/get은 이제 여러platform쿼리 인자를 받아 멀티 플랫폼 이미지의 어떤 플랫폼을 저장할지 선택할 수 있게 해 줘요.POST /images/load는 이제 여러platform쿼리 인자를 받아 멀티 플랫폼 이미지의 어떤 플랫폼을 로드할지 선택할 수 있게 해 줘요.GET /events는 더 이상 폐기 예정인status,id,from필드를 포함하지 않아요. 이 필드들은 API v1.22에서 제거됐지만 응답에는 여전히 포함돼 있었어요.GET /networks/{id}는 이제 네트워크에 할당된 서브넷의 IPAM 할당에 대한 통계를 제공하는Status필드를 포함해요.- 폐기 예정: Engine은
POST /containers/{id}/start호출 시 빈PortBindings목록에 빈 HostIP와 HostPort의 PortBinding을 자동으로 백필(backfill)하고 있었어요. 이 동작은 이제 폐기 예정이며POST /containers/create가 경고를 반환해요. 향후 API 버전에서 빈PortBindings목록은 완전히 제거될 거예요. GET /images/{name}/json은 이제 설정되지 않은 다음Config필드를 생략해요:Cmd,Entrypoint,Env,Labels,OnBuild,User,Volumes,WorkingDir. OCI Image Specification 구현과 더 가깝게 정렬하기 위해서예요.GET /images/{name}/json은 값이 비어 있으면Parent,Comment,DockerVersion,Author필드를 생략해요.Parent와DockerVersion필드는 레거시 빌더가 설정했으며 BuildKit 사용 시에는 더 이상 설정되지 않아요.Author필드는 폐기 예정인MAINTAINERDockerfile 지시문을 통해 설정되고,Comment필드는 선택 사항으로 이미지 생성 방식에 따라 설정되지 않을 수 있어요.GET /container/{id}/json은 값이 비어 있으면Config.OnBuild를 생략해요.GET /containers/{id}/json:NetworkSettings는 더 이상 폐기 예정인Bridge,HairpinMode,LinkLocalIPv6Address,LinkLocalIPv6PrefixLen,SecondaryIPAddresses,SecondaryIPv6Addresses,EndpointID,Gateway,GlobalIPv6Address,GlobalIPv6PrefixLen,IPAddress,IPPrefixLen,IPv6Gateway,MacAddress필드를 반환하지 않아요. 이 필드들은 API v1.21(docker v1.9.0)에서 폐기 예정이었지만 하위 호환성 때문에 유지돼 있었어요.POST /containers/{id}/update와GET /containers/{id}/json엔드포인트에서KernelMemoryTCP필드를 제거했어요. API 버전v1.52이상에서는 설정된 값이 무시돼요. 이전 API 버전은 이 필드를 계속 받아들이지만, 사용 중인 커널 버전과 OCI 런타임에 따라 효과가 없을 수 있어요.GET /info엔드포인트에서KernelMemoryTCP필드를 제거했어요.GET /events는 콘텐츠 타입 협상을 지원하며application/x-ndjson(새 줄로 구분된 JSON 객체 스트림) 또는application/json-seq(RFC7464)을 생성할 수 있어요.POST /containers/create는 더 이상 컨테이너 전체 MAC 주소를 컨테이너의Config.MacAddress필드로 구성하는 것을 지원하지 않아요. 컨테이너의 MAC 주소는 이제 네트워크에 연결할 때 엔드포인트 설정으로만 구성할 수 있어요.GET /services는 이제Resource요구 사항의 일부로SwapBytes와MemorySwappiness필드를 반환해요.GET /services/{id}도 이제Resource요구 사항의 일부로SwapBytes와MemorySwappiness필드를 반환해요.POST /services/create는 이제Resource요구 사항의 일부로SwapBytes와MemorySwappiness필드를 받아요.POST /services/{id}/update도 이제Resource요구 사항의 일부로SwapBytes와MemorySwappiness필드를 받아요.GET /tasks는 이제Resource요구 사항의 일부로SwapBytes와MemorySwappiness필드를 반환해요.GET /tasks/{id}도 이제Resource요구 사항의 일부로SwapBytes와MemorySwappiness필드를 반환해요.GET /containers/{id}/stats는 이제 플랫폼별 stats 처리를 허용하는os_type필드를 반환해요.GET /system/df는 각 시스템 객체 유형에 대한 간략한 시스템 디스크 사용 데이터를 담은ImagesUsage,ContainersUsage,VolumesUsage,BuildCacheUsage필드를 반환해요. 이 엔드포인트는 상세 시스템 디스크 사용 정보를 반환하는?verbose=1쿼리를 지원해요.- 폐기 예정:
GET /system/df응답 필드LayersSize,Images,Containers,Volumes,BuildCache는 유형별 사용 필드로 대체되어 제거됐어요. API v1.52는 기존 통합이 새 응답으로 전환할 수 있게 레거시 필드와 현재 필드를 모두 반환해요.verbose쿼리 파라미터를 사용하면 레거시 필드는 채워지지 않아요. API v1.53부터 레거시 필드는 더 이상 반환되지 않을 거예요.
v1.51 API 변경 사항
GET /images/json은 이제 모든 이미지의Containers필드 값을 이미지를 사용하는 컨테이너 수로 설정해요. 이 필드는 이전에 항상 -1이었어요.- 폐기 예정:
GET /containers/{id}/json이 반환하는NetworkSettings.Bridge필드는 폐기 예정이며 다음 API 버전에서 제거될 거예요. - 폐기 예정:
POST /containers/{id}/update의 일부인KernelMemoryTCP필드와GET /containers/{id}/json이 반환하는 이 필드는 폐기 예정이며 다음 API 버전에서 제거될 거예요. - 폐기 예정:
GET /info의 일부인KernelMemoryTCP필드는 폐기 예정이며 다음 API 버전에서 제거될 거예요. - 폐기 예정:
GET /images/{name}/json엔드포인트가 반환하는Parent와DockerVersion필드는 폐기 예정이에요. 이 필드들은 레거시 빌더가 설정하며 BuildKit 사용 시 더 이상 설정되지 않아요. API는 정보 제공 목적으로 설정 시 이 필드들을 계속 반환하지만, 레거시 빌더가 제거되면 생략될 것이므로 의존해서는 안 돼요. - 폐기 예정:
GET /plugins와GET /images/{name}/json엔드포인트가 반환하는Config.DockerVersion필드는 폐기 예정이에요. 이 필드는 더 이상 설정되지 않으며 비어 있으면 생략돼요.
v1.50 API 변경 사항
GET /info는 이제DiscoveredDevices필드를 포함해요. 이는 디바이스 드라이버가 발견한 각 디바이스에 대한 세부 정보를 제공하는DeviceInfo객체의 배열이에요. 현재 CDI 디바이스 드라이버만 지원돼요.DELETE /images/{name}은 이제platforms쿼리 파라미터를 지원해요. JSON으로 인코딩된 OCI Platform 객체 배열을 받아 삭제할 특정 플랫폼을 선택할 수 있어요.- 폐기 예정:
GET /info응답의BridgeNfIptables와BridgeNfIp6tables필드는 API v1.48에서 폐기 예정이었고, API v1.50에서 생략됐어요. - 폐기 예정:
GET /images/{name}/json은 더 이상 다음Config필드를 반환하지 않아요:Hostname,Domainname,AttachStdin,AttachStdout,AttachStderr,Tty,OpenStdin,StdinOnce,Image,NetworkDisabled(설정된 경우 외에는 이미 생략),MacAddress(설정된 경우 외에는 이미 생략),StopTimeout(설정된 경우 외에는 이미 생략). 이 추가 필드들은 구현 세부 사항 때문에 응답에 포함됐지만 이미지의 구성의 일부는 아니었어요. 이 필드들은 API v1.46에서 폐기 예정으로 표시됐고 이제 생략돼요. 이전 버전의 API는 이 필드를 계속 반환하지만 항상 비어 있어요.
v1.49 API 변경 사항
GET /images/{name}/json은 이제 검사할 멀티 플랫폼 이미지의 플랫폼을 지정할 수 있게 해 주는platform파라미터(JSON 인코딩 OCI Platform 타입)를 지원해요. 이 옵션은manifests옵션과 상호 배타적이에요.GET /info는 이제 데몬의 방화벽 구성에 대한 정보를 담은FirewallBackend를 반환해요.- 폐기 예정:
GET /info응답의RegistryConfig구조체에 있는AllowNondistributableArtifactsCIDRs와AllowNondistributableArtifactsHostnames필드는 API v1.49에서 생략돼요. - 폐기 예정:
GET /info엔드포인트의ContainerdCommit.Expected,RuncCommit.Expected,InitCommit.Expected필드는 API v1.48에서 폐기 예정이었고, API v1.49에서 생략돼요.
v1.48 API 변경 사항
- 폐기 예정:
POST /images/create,POST /images/{name}/push,POST /build처럼 JSON 진행 응답을 반환하는 엔드포인트의 스트리밍 응답에 있는 "error"와 "progress" 필드는 폐기 예정이에요. 이 필드들은 각각 API v1.4(docker v0.6.0)와 API v1.8(docker v0.7.1)에서 폐기 예정으로 표시됐지만 여전히 반환되고 있어요. 향후 API 버전에서 비워지거나 생략될 거예요. 사용자는errorDetail과progressDetail필드의 정보를 대신 사용해야 해요. - 폐기 예정: "allow-nondistributable-artifacts" 데몬 구성은 폐기 예정이며 기본으로 활성화돼요.
GET /info응답의RegistryConfig구조체에 있는AllowNondistributableArtifactsCIDRs와AllowNondistributableArtifactsHostnames필드는 이제 항상null이 되고 API v1.49에서 생략될 거예요. - 폐기 예정:
GET /info응답의BridgeNfIptables와BridgeNfIp6tables필드는 이제 항상false가 되고 API v1.49에서 생략될 거예요. netfilter 모듈은 이제 데몬 시작 시가 아니라 온디맨드로 로드되므로 이 필드들은 더 이상 필요 없어요. - 폐기 예정:
POST /build/prune의keep-storage쿼리 파라미터는reserved-space로 이름이 바뀌었어요.keep-storage지원은 API v1.52에서 제거될 거예요. GET /images/{name}/history는 이제 히스토리를 표시할 플랫폼을 지정할 수 있게 해 주는platform파라미터(JSON 인코딩 OCI Platform 타입)를 지원해요.POST /images/{name}/load와GET /images/{name}/get은 이제 로드/저장할 플랫폼을 지정할 수 있게 해 주는platform파라미터(JSON 인코딩 OCI Platform 타입)를 지원해요. 이 파라미터를 전달하지 않으면 전체 멀티 플랫폼 이미지가 로드/저장돼요.POST /containers/create는 이제Mounts를 통해 정의된 볼륨과 함께 컨테이너 전체Config.VolumeDriver옵션을 설정할 때 응답에 경고를 포함해요.VolumeDriver옵션은 해당 볼륨에 효과가 없기 때문이에요. 이 경고는 이전에 CLI가 생성했지만, 이제 데몬으로 옮겨져 다른 클라이언트도 이 경고를 받을 수 있어요.POST /containers/create는 이제 컨테이너 안에 이미지를 마운트하는image타입의Mount를 지원해요.- 폐기 예정:
GET /info엔드포인트의ContainerdCommit.Expected,RuncCommit.Expected,InitCommit.Expected필드는 폐기 예정이며 API v1.49에서 생략될 거예요. eth0에 대한HostConfig의Sysctls(최상위--sysctl설정)는 v1.46의 변경 사항에 설명된 것처럼 더 이상DriverOpts로 마이그레이션되지 않아요.GET /images/json과GET /images/{name}/json응답은 이제 이미지 타깃의 OCI 디스크립터를 담은Descriptor필드를 포함해요. 이 새 필드는 데몬이 멀티 플랫폼 이미지 저장소를 제공하는 경우에만 채워져요. 경고: 이는 실험적이며 하위 호환성 없이 언제든 변경될 수 있어요.GET /images/{name}/json응답은 이제 이미지 인덱스에 포함된 하위 매니페스트에 대한 정보를 담은Manifests필드를 반환할 거예요. 플랫폼별 매니페스트와 빌드 어테스테이션 같은 것이 포함돼요. 이 새 필드는 요청이manifests쿼리 파라미터를true로 설정한 경우에만 채워져요. 이는GET /images/json엔드포인트와 동일하게 동작해요. 경고: 이는 실험적이며 하위 호환성 없이 언제든 변경될 수 있어요.GET /containers/{name}/json은 이제 컨테이너를 만드는 데 사용된 이미지의 플랫폼별 이미지 매니페스트의 OCI 디스크립터를 담은ImageManifestDescriptor필드를 반환해요. 이 필드는 데몬이 멀티 플랫폼 이미지 저장소를 제공하는 경우에만 채워져요.POST /networks/create는 이제EnableIPv4필드를 가져요.false로 설정하면 네트워크의 IPv4 IPAM이 비활성화돼요. 데몬에 실험 기능이 활성화된 경우에만false로 설정할 수 있어요.GET /networks/{id}는 이제 네트워크에 IPv4 IPAM이 활성화됐는지 보여주는EnableIPv4필드를 반환해요.POST /networks/{id}/connect와POST /containers/create는 이제EndpointsConfig에GwPriority필드를 받아요. 이 값은 컨테이너의 기본 게이트웨이를 제공하는 네트워크 엔드포인트를 결정하는 데 사용돼요. 우선순위가 가장 높은 엔드포인트가 선택돼요. 여러 엔드포인트가 같은 우선순위면 네트워크 이름으로 사전순 정렬되어 가장 먼저 오는 것이 선택돼요.GET /containers/json은 이제 각 네트워크 엔드포인트에 대한NetworkSettings에GwPriority필드를 반환해요.- API 디버그 엔드포인트(
GET /debug/vars,GET /debug/pprof/,GET /debug/pprof/cmdline,GET /debug/pprof/profile,GET /debug/pprof/symbol,GET /debug/pprof/trace,GET /debug/pprof/{name})는 이제 버전이 붙은 API 경로(/v/)를 통해서도 접근할 수 있어요. POST /build/prune은keep-storage를reserved-space로 이름을 바꾸고 추가 프룬 파라미터max-used-space와min-free-space를 지원해요.GET /containers/json은 이제/containers/{name}/json의 같은 필드와 일치하는ImageManifestDescriptor필드를 반환해요. 이 필드는 데몬이 멀티 플랫폼 이미지 저장소를 제공하는 경우에만 채워져요.
v1.47 API 변경 사항
GET /images/json응답은 이제 이미지 인덱스에 포함된 하위 매니페스트에 대한 정보를 담은Manifests필드를 포함해요. 플랫폼별 매니페스트와 빌드 어테스테이션 같은 것이 포함돼요. 이 새 필드는 요청이manifests쿼리 파라미터를true로 설정한 경우에만 채워져요. 경고: 이는 실험적이며 하위 호환성 없이 언제든 변경될 수 있어요.GET /info는 데몬이 시작될 때bridge-nf-call-iptables또는bridge-nf-call-ip6tables가 비활성화된 경우 더 이상 경고를 포함하지 않아요.br_netfilter모듈은 이제 필요할 때 로드되도록 시도되어 그 경고가 부정확해졌어요. 이 변경은 버전이 붙지 않으며, 데몬에 이 패치가 있으면 모든 API 버전에 영향을 줘요.
v1.46 API 변경 사항
GET /info는 이제 데몬이 컨테이너와 플러그인을 실행하는 데 사용하는 containerd API 소켓 위치와 containerd 네임스페이스에 대한 정보를 담은Containerd필드를 포함해요.POST /containers/create의NetworkingConfig.EndpointsConfig.DriverOpts필드와POST /networks/{id}/connect의EndpointsConfig.DriverOpts필드는 이제 인터페이스별 sysctls를 설정하기 위한com.docker.network.endpoint.sysctls라벨을 지원해요. 값은 sysctl 할당의 쉼표로 구분된 목록이며, 인터페이스 이름은 "IFNAME"이어야 해요. 예를 들어net.ipv4.config.eth0.log_martians=1을 설정하려면net.ipv4.config.IFNAME.log_martians=1을 사용해요. API v1.46까지의 버전에서eth0에 대한 최상위--sysctl설정은 가능할 때DriverOpts로 마이그레이션돼요. 이 자동 마이그레이션은 향후 릴리스에서 제거될 거예요.GET /containers/json은 이제 컨테이너의 어노테이션을 반환해요.POST /images/{name}/push는 이제 멀티 플랫폼 이미지에서 특정 플랫폼 매니페스트를 선택할 수 있게 해 주는platform파라미터(JSON 인코딩 OCI Platform 타입)를 지원해요.POST /containers/create는 이제 tmpfs 마운트의 옵션을 설정하기 위해HostConfig.Mounts.TmpfsOptions의 일부로Options를 받아요.POST /services/create는 이제 tmpfs 마운트의 옵션을 설정하기 위해ContainerSpec.Mounts.TmpfsOptions의 일부로Options를 받아요.GET /events는 이제 태그됐든 안 됐든 새 이미지가 빌드될 때 발생하는 이미지create이벤트를 지원해요.
GET /images/{name}/json 응답에서 폐기 예정인 Config 필드
이 엔드포인트가 반환하는 Config 필드("이미지 검사"에 사용됨)는 이미지 구성의 일부가 아니고 Docker Image Spec과 OCI Image Spec에도 없는 추가 필드를 반환해요.
이 추가 필드들은 응답에 사용되는 api/types.ImageInspec 타입이 container.Config 타입을 사용하기 때문에 발생하는 구현 세부 사항으로 인해 응답에 포함돼요.
container.Config 타입은 이미지 구성의 상위 집합이며, 이미지의 Config는 이미지에서 만든 컨테이너의 템플릿으로 사용되지만 추가 필드는 런타임에(컨테이너 생성 시 전달된 옵션에서) 설정되고 이미지 Config에서 가져오지 않아요.
이 필드들은 설정되지 않으며(항상 타입의 기본값을 반환) 비어 있을 때 응답에서 생략되지 않아요. 이 필드들은 이미지 구성 응답의 일부로 의도되지 않았기 때문에 폐기 예정이며 API에서 제거될 거예요.
현재 API 응답에 포함되지만 기본 이미지의 Config의 일부가 아니며 폐기 예정인 필드는 다음과 같아요.
Hostname,Domainname,AttachStdin,AttachStdout,AttachStderr,Tty,OpenStdin,StdinOnce,Image,NetworkDisabled(설정된 경우 외에는 이미 생략),MacAddress(설정된 경우 외에는 이미 생략),StopTimeout(설정된 경우 외에는 이미 생략)POST /services/create와POST /services/{id}/update는 이제OomScoreAdj를 지원해요.
v1.45 API 변경 사항
POST /containers/create는 이제 명명된 볼륨의 하위 경로를 마운트할 수 있는VolumeOptions.Subpath를 지원해요.POST /images/search는is-automated필드에 항상false값을 가정할 거예요. 결과적으로is-automated=true검색은 결과가 없고,is-automated=false는 아무 동작도 하지 않아요.GET /images/{name}/json은 더 이상Container와ContainerConfig필드를 포함하지 않아요. 이미지 구성을 접근하려면Config필드를 대신 사용해요.GET /containers/{name:.*}/json호출에서 반환되는Aliases필드는 더 이상 짧은 컨테이너 ID를 포함하지 않고POST /containers/create엔드포인트에 원래 제출된 값을 정확히 반영해요. 짧은 컨테이너 ID가 필요할 때는 새로 도입된DNSNames를 대신 사용해야 해요.
v1.44 API 변경 사항
GET /images/json은 이제until필터를 받아요. 타임스탬프를 받아 그 이전에 만들어진 모든 이미지를 나열해요. ``은 Unix 타임스탬프, 날짜 형식 타임스탬프, 또는 데몬 머신 시간 기준으로 계산된 Go 기간 문자열(예:10m,1h30m)일 수 있어요. 이 변경은 버전이 붙지 않으며, 데몬에 이 패치가 있으면 모든 API 버전에 영향을 줘요.GET /images/{name}/json,GET /images/json,GET /system/df응답의VirtualSize필드는 이제 생략돼요. 같은 정보를 담고 있는Size필드를 대신 사용해요.- 폐기 예정:
GET /images/search응답의is_automated필드는 폐기 예정이며, Docker Hub가 검색 API에서is_automated필드를 폐기하고 있으므로 향후 항상 false로 설정될 거예요. 이 폐기는 버전이 붙지 않으며 모든 API 버전에 적용돼요. - 폐기 예정:
GET /images/search엔드포인트의is-automated필터.is_automated필드는 Docker Hub의 검색 API가 폐기했어요. 결과적으로is-automated=true검색은 결과가 없어요. 이 폐기는 버전이 붙지 않으며 모든 API 버전에 적용돼요. - 읽기 전용 바인드 마운트는 이제 기능을 지원하는 런타임과 함께 kernel >= 5.12에서 재귀적으로 읽기 전용으로 만들어져요.
POST /containers/create,GET /containers/{id}/json,GET /containers/json은 이제 동작을 커스터마이즈하는BindOptions.ReadOnlyNonRecursive와BindOptions.ReadOnlyForceRecursive를 지원해요. POST /containers/create는 이제 시작 기간 동안 헬스체크 간격을 설정하는HealthConfig.StartInterval을 받아요.GET /info는 이제 구성된 CDI 사양 디렉터리를 나타내는CDISpecDirs필드를 포함해요. 적용된 설정을 사용하려면 데몬에 실험이 활성화되어 있어야 하고, 실험적이지 않은 데몬에는 항상 빈 목록이 반환돼요.POST /networks/create는 이제IPAMConfig에 잘못된 값이 있으면 400을 반환해요. 이 변경은 버전이 붙지 않으며 v1.44를 지원하는 데몬의 모든 API 버전에 적용돼요.POST /networks/create는 중복된 이름으로 생성 시 체계적으로 실패해요. 따라서CheckDuplicate필드는 이제 폐기 예정이에요. 이 변경은 버전이 붙지 않으며 v1.44를 지원하는 데몬의 모든 API 버전에 적용돼요.POST /containers/create는 이제NetworkingConfig.EndpointSettings에 여러EndpointSettings를 받아요.POST /containers/create와POST /networks/{id}/connect는 이제POST /containers/{id}/start에서만 반환되던 검증 오류를 잡아내요. 이 엔드포인트들은 첫 번째 오류만 반환하는 대신 찾은 모든 검증 오류를 반환해요. 이 변경은 버전이 붙지 않으며 모든 API 버전에 적용돼요.POST /services/create와POST /services/{id}/update는 이제ContainerSpec.Privileges객체에서Seccomp와AppArmor필드를 받아요. 이로써 Swarm 서비스에서 Seccomp와 AppArmor를 일부 구성할 수 있어요.POST /containers/create의NetworkSettings.EndpointSettings와POST /networks/{id}/connect의EndpointConfig에 엔드포인트별 새MacAddress필드가 추가됐어요.POST /containers/create의Config에 있는 컨테이너 전체MacAddress필드는 이제 폐기 예정이에요.POST /services/create와POST /services/{id}/update요청의Networks필드는 이제 폐기 예정이에요.TaskTemplate.Networks필드를 대신 사용해야 해요.GET /images/{name}/json응답의Container와ContainerConfig필드는 폐기 예정이며 API v1.45에서 더 이상 포함되지 않을 거예요.GET /info는 이제Runtimes에status속성을 포함해요.GET /containers/{name:.*}/json에 특정 네트워크에서 컨테이너가 가지는 비-정규화된 DNS 이름 전부를 담은DNSNames라는 새 필드가 추가됐어요.- v1.44 이하 버전에서
GET /containers/{name:.*}/json호출이 반환하는Aliases필드는 짧은 컨테이너 ID를 포함해요. 이는 다음 API 버전 v1.45에서 변경될 거예요. 해당 버전부터 이 특정 값은Aliases필드에서 제거되어POST /containers/create엔드포인트에 원래 제출된 값을 정확히 반영할 거예요. 새로 도입된DNSNames를 대신 사용해야 해요. GET /containers/{id}/json호출 시NetworkSettings에서 사용할 수 있는HairpinMode,LinkLocalIPv6Address,LinkLocalIPv6PrefixLen,SecondaryIPAddresses,SecondaryIPv6Addresses필드는 폐기 예정이며 향후 릴리스에서 제거될 거예요.NetworkSettings.Networks의 기본 네트워크를 대신 찾아보세요.GET /images/{id}/json은 이미지 구성에Created필드가 없으면Created필드를 생략해요(이전에는0001-01-01T00:00:00Z였어요).
v1.43 API 변경 사항
POST /containers/create는 이제HostConfig의 일부로Annotations를 받아요. 컨테이너에 임의의 메타데이터를 첨부하는 데 사용할 수 있으며, 컨테이너 시작 시 런타임에도 전달돼요.GET /images/json은 더 이상 태그되지 않은 이미지의RepoTags와RepoDigests에 하드코딩된:과@를 포함하지 않아요. 이런 경우 빈 배열이 생성돼요.GET /images/{name}/json,GET /images/json,GET /system/df응답의VirtualSize필드는 폐기 예정이며 API v1.44에서 더 이상 포함되지 않을 거예요. 같은 정보를 담고 있는Size필드를 대신 사용해요.GET /info는 이 옵션이 전역으로 활성화되면SecurityOptions문자열 목록에no-new-privileges를 포함해요. 이 변경은 버전이 붙지 않으며 데몬에 이 패치가 있으면 모든 API 버전에 영향을 줘요.
v1.42 API 변경 사항
GET /system/df엔드포인트에서BuilderSize필드를 제거했어요. 이 필드는 실험 기능의 일부로 API 1.31에서 도입됐고 API 1.40부터 더 이상 사용되지 않았어요. 빌더 구성 요소가 사용하는 저장 공간을 추적하려면BuildCache필드를 사용해요.POST /containers/{id}/stop과POST /containers/{id}/restart는 이제 컨테이너의 기본 중지 신호를 재정의할 수 있는signal쿼리 파라미터를 받아요.GET /images/json은 이제shared-size쿼리 파라미터를 받아요.true로 설정하면 반환되는 이미지에 시스템의 다른 이미지와 공유하는 디스크 크기를 제공하는SharedSize가 포함돼요.GET /system/df는 이제type쿼리 파라미터를 받아요. 설정하면 지정된 객체 유형에 대한 데이터만 계산해 반환해요. 파라미터를 여러 번 지정해 여러 객체 유형을 선택할 수 있어요. 지원되는 값은container,image,volume,build-cache예요.GET /system/df는 이제 동시에 사용될 수 있어요. 이전 요청이 아직 처리되는 동안 요청하면 완료 시 이미 실행 중인 계산의 결과를 받아요. 이전에는 이런 상황에서 오류(a disk usage operation is already running)가 반환됐어요. 이 변경은 버전이 붙지 않으며 데몬에 이 패치가 있으면 모든 API 버전에 영향을 줘요.POST /images/create는fromSrc옵션으로 아카이브에서 이미지를 가져올 때platform쿼리 파라미터를 통해 전달되는 운영 체제와 아키텍처를 모두 지원해요. 이전에는 운영 체제만 사용됐고 아키텍처는 무시됐어요.platform옵션을 설정하지 않으면 호스트의 운영 체제와 아키텍처가 기본으로 사용돼요. 이 변경은 버전이 붙지 않으며 데몬에 이 패치가 있으면 모든 API 버전에 영향을 줘요.POST /containers/{id}/wait엔드포인트는 이제 잘못된condition이 제공되면(API 1.30 이상)400상태 코드를 반환해요.POST /containers/create와POST /containers/{id}/update엔드포인트에서KernelMemory필드를 제거했어요. API 버전v1.42이상에서는 설정된 값이 무시돼요. 이전 API 버전은 이 필드를 계속 받아들이지만 커널 버전과 OCI 런타임에 따라 효과가 없을 수 있어요.GET /containers/{id}/json은KernelMemory와KernelMemoryTCP가 설정되지 않았으면 생략해요.GET /info는 호스트나 호스트 구성(cgroups v2 사용 시)이 지원하지 않으면KernelMemory와KernelMemoryTCP를 생략해요.GET /_ping과HEAD /_ping은 이제 기본적으로Builder-Version을 반환해요. 이 헤더는 사용할 기본 빌더를 포함하며 데몬이 광고하는 권장 사항이에요. 어떤 빌더를 사용할지는 클라이언트가 결정해요. Linux에서 기본값은 버전 "2"(BuildKit)이지만 데몬을 버전 "1"(클래식 빌더)을 권장하도록 구성할 수 있어요. Windows는 아직 네이티브 Windows 이미지에 BuildKit을 지원하지 않으며 기본으로 "1"(클래식 빌더)을 사용해요. 이 변경은 버전이 붙지 않으며 데몬에 이 패치가 있으면 모든 API 버전에 영향을 줘요.GET /_ping과HEAD /_ping은 이제Swarm헤더를 반환해요. 추가 엔드포인트를 호출하지 않고도 데몬에 Swarm이 활성화되어 있는지 클라이언트가 감지할 수 있게 해 줘요. 이 변경은 버전이 붙지 않으며 데몬에 이 패치가 있으면 모든 API 버전에 영향을 줘요. 클라이언트는 이 헤더를 "선택 사항"으로 간주하고 헤더가 없으면 다른 엔드포인트를 사용해 이 정보를 얻어야 해요.Swarm헤더는 다음 값 중 하나를 담을 수 있어요: "inactive", "pending", "error", "locked", "active/worker", "active/manager".- Windows 컨테이너용
POST /containers/create는 이제HostConfig.Resources.Devices.PathOnHost에서 새 문법을 받아요. 기존class/문법 외에도://가 이제 인식돼요. 특정 `` 값에 대한 지원은 기본 구현과 Windows 버전에 따라 달라요. 이 변경은 버전이 붙지 않으며 데몬에 이 패치가 있으면 모든 API 버전에 영향을 줘요. GET /containers/{id}/attach,GET /exec/{id}/start,GET /containers/{id}/logs,GET /services/{id}/logs,GET /tasks/{id}/logs는 이제 멀티플렉싱된 stdout/stderr 스트림이 클라이언트로 보내지면application/vnd.docker.multiplexed-stream, 그렇지 않으면application/vnd.docker.raw-stream으로 Content-Type 헤더를 설정해요.POST /volumes/create는 이제 클러스터 볼륨(CNI)을 만들기 위한 새ClusterVolumeSpec을 받아요. 이 옵션은 데몬이 Swarm 매니저인 경우에만 사용할 수 있어요. 생성 시 볼륨 응답은 이제 생성된 볼륨에 대한 정보를 담은ClusterVolume필드도 가질 수 있어요.GET /system/df가 반환하는BuildCache.Parent필드는 폐기 예정이며 이제 생략돼요. v1.42 이전 API 버전은 이 필드를 계속 포함해요.GET /system/df는 이제 "build-cache" 레코드의 부모 ID 목록을 담은 새Parents필드를 포함해요.GET /volumes/{name},GET /volumes,GET /system/df가 반환하는 볼륨 정보는 이제 볼륨이 클러스터 볼륨이면ClusterVolume을 포함할 수 있어요(데몬이 Swarm 매니저여야 함).- 새
ClusterVolume필드가 추가됐어요. - 클러스터 볼륨(CNI) 업데이트를 위한 새
PUT /volumes/{name}엔드포인트가 추가됐어요. 클러스터 볼륨은 데몬이 Swarm 매니저인 경우에만 지원돼요. GET /containers/{name}/attach/ws엔드포인트는 이제 구성된 스트림에만 연결하도록stdin,stdout,stderr쿼리 파라미터를 받아요. 참고: 이 파라미터들은 더 이전 API 버전에서 문서화됐지만 실제로는 지원되지 않았어요. v1.42 이전 API 버전은 이 파라미터들을 계속 무시하고 모든 스트림에 연결하는 것을 기본으로 해요. pre-v1.42 동작을 유지하려면 세 쿼리 파라미터를 모두 설정하세요(?stdin=1,stdout=1,stderr=1).- Linux에서
POST /containers/create는 이제HostConfig.ConsoleSize속성을 존중해요. 컨테이너는 원하는 터미널 크기로 즉시 생성되며 클라이언트가 스스로 원하는 크기를 설정할 필요가 없어요. POST /containers/create는 호스트 경로가 없으면 생성되도록CreateMountpoint를 설정할 수 있게 해 줘요.Binds와 동등한 기능을 제공해요.POST /containers/create는 BindOptions/VolumeOptions/TmpfsOptions가 일치하지 않는 마운트 타입으로 설정되면 요청을 거부해요.POST /containers/{id}/exec는 이제 선택적ConsoleSize파라미터를 받아요. 실행된 프로세스가 생성될 때 콘솔 크기를 즉시 설정할 수 있게 해 줘요.POST /volumes/prune은 이제 기본적으로 "익명" 볼륨(이름이 부여되지 않은 볼륨)만 프룬해요. 새 필터 파라미터all을 truth-y 값(true,1)으로 설정하면 이전 동작을 얻을 수 있어요.
v1.41 API 변경 사항
GET /events는 이제 리소스 프룬 완료 후prune이벤트를 반환해요. 프룬 이벤트는container,network,volume,image,builder에 대해 반환되며 회수된 공간(바이트)을 나타내는reclaimed속성을 가져요.GET /info는 이제 cgroup 버전을 담은CgroupVersion필드를 반환해요.GET /info는 이제 로컬 네트워크용 커스텀 기본 주소 풀 목록을 담은DefaultAddressPools필드를 반환해요.daemon.json파일이나--default-address-pooldockerd 옵션으로 지정할 수 있어요.POST /services/create와POST /services/{id}/update는 이제BindOptions.NonRecursive를 지원해요.GET /info의ClusterStore와ClusterAdvertise필드는 폐기 예정이며 빈 값을 포함하면 이제 생략돼요. 이 변경은 버전이 붙지 않으며 데몬에 이 패치가 있으면 모든 API 버전에 영향을 줘요.- Docker 1.13에서
filters옵션으로 대체되며 폐기 예정이었던filter(단수) 쿼리 파라미터는GET /images/json엔드포인트에서 제거됐어요. 이 파라미터는 API 버전 1.40 이하를 사용할 때는 계속 사용할 수 있어요. GET /services는 이제ContainerSpec의 일부로CapAdd와CapDrop을 반환해요.GET /services/{id}도 이제ContainerSpec의 일부로CapAdd와CapDrop을 반환해요.POST /services/create는 이제ContainerSpec의 일부로CapAdd와CapDrop을 받아요.POST /services/{id}/update도 이제ContainerSpec의 일부로CapAdd와CapDrop을 받아요.GET /tasks는 이제ContainerSpec의 일부로CapAdd와CapDrop을 반환해요.GET /tasks/{id}도 이제ContainerSpec의 일부로CapAdd와CapDrop을 반환해요.GET /services는 이제TaskTemplate.Resources.Limits에Pids를 반환해요.GET /services/{id}도 이제TaskTemplate.Resources.Limits에Pids를 반환해요.POST /services/create는 이제TaskTemplate.Resources.Limits에Pids를 받아요.POST /services/{id}/update는 이제 최대 PID 수를 제한하기 위해TaskTemplate.Resources.Limits에Pids를 받아요.GET /tasks는 이제TaskTemplate.Resources.Limits에Pids를 반환해요.GET /tasks/{id}도 이제TaskTemplate.Resources.Limits에Pids를 반환해요.POST /containers/create는 이제os[/arch[/variant]]형식의platform쿼리 파라미터를 받아요. 설정하면 데몬이 요청된 이미지가 주어진 OS와 아키텍처로 로컬 이미지 캐시에 있는지 확인하고, 없으면404상태를 반환해요. 옵션이 설정되지 않으면 호스트의 네이티브 OS와 아키텍처가 이미지 캐시에서 이미지를 찾는 데 사용돼요. 플랫폼이 전달되지 않고 주어진 이미지가 로컬 이미지 캐시에 존재하지만 OS나 아키텍처가 일치하지 않으면 사용 가능한 이미지로 컨테이너가 생성되고 응답의Warnings필드에 경고가 추가돼요. 예:WARNING: The requested image's platform (linux/arm64/v8) does not match the detected host platform (linux/amd64) and no specific platform was requested- Linux에서
POST /containers/create는 이제HostConfig.CgroupnsMode속성을 받아요.host로 설정하면 데몬의 cgroup 네임스페이스에 컨테이너를 만들고,private로 설정하면 자체 비공개 cgroup 네임스페이스에 만듭니다. 데몬별 기본값은host이며CgroupNamespaceMode데몬 구성 파라미터로 변경할 수 있어요. GET /info는 이제 운영 체제 버전을 담은OSVersion필드를 반환해요. 이 변경은 버전이 붙지 않으며 데몬에 이 패치가 있으면 모든 API 버전에 영향을 줘요.GET /info는 값이 설정되지 않은SystemStatus필드를 더 이상 반환하지 않아요. 이 변경은 버전이 붙지 않으며 데몬에 이 패치가 있으면 모든 API 버전에 영향을 줘요.GET /services는 이제status쿼리 파라미터를 받아요.true로 설정하면 반환되는 서비스에 서비스의 Desired, Running, Completed 작업 수를 제공하는ServiceStatus가 포함돼요.GET /services는 이제ServiceSpec의Mode에ReplicatedJob또는GlobalJob을 포함할 수 있어요.GET /services/{id}도 이제ServiceSpec의Mode에ReplicatedJob또는GlobalJob을 포함할 수 있어요.POST /services/create는 이제ServiceSpec의Mode에ReplicatedJob또는GlobalJob을 받아요.POST /services/{id}/update는ServiceSpec.Mode의ReplicatedJob객체의 필드 업데이트를 받아요. 단, 서비스 모드는 여전히 변경할 수 없어요.GET /services는 이제ReplicatedJob또는GlobalJob모드의 서비스에JobStatus를 포함해요.GET /services/{id}도ReplicatedJob또는GlobalJob모드의 서비스에JobStatus를 포함해요.GET /tasks는 이제 작업 모드 서비스에서 생성된 작업에JobIteration을 포함해요.GET /tasks/{id}도 작업 모드 서비스에서 생성된 경우 작업에JobIteration을 포함해요.GET /containers/{id}/stats는 이제 쿼리 파라미터(one-shot)를 받아요.stream=false와 함께 사용하면 1초 동안 2개의 CPU 통계를 얻기 위해 두 번의 수집 주기를 기다리는 대신 단일 통계 세트를 가져와요.HostConfig.Resources의KernelMemory필드는 이제 폐기 예정이에요.Info의KernelMemory필드는 이제 폐기 예정이에요.GET /services는 이제ContainerSpec의 일부로Ulimits를 반환해요.GET /services/{id}도 이제ContainerSpec의 일부로Ulimits를 반환해요.POST /services/create는 이제ContainerSpec의 일부로Ulimits를 받아요.POST /services/{id}/update도 이제ContainerSpec의 일부로Ulimits를 받아요.
v1.40 API 변경 사항
/_ping엔드포인트는 이제GET또는HEAD요청으로 모두 접근할 수 있어요.HEAD요청으로 접근하면 모든 헤더가 반환되지만 본문은 비어 있어요(Content-Length: 0). 이 변경은 버전이 붙지 않으며 데몬에 이 패치가 있으면 모든 API 버전에 영향을 줘요. 클라이언트는HEAD를 시도하고HEAD요청이 실패하면GET으로 대체하는 것을 권장해요.GET /_ping과HEAD /_ping은 이제 결과가 캐시되지 않도록Cache-Control과Pragma헤더를 설정해요. 이 변경은 버전이 붙지 않으며 데몬에 이 패치가 있으면 모든 API 버전에 영향을 줘요.GET /services는 이제ContainerSpec의 일부로Sysctls를 반환해요.GET /services/{id}도 이제ContainerSpec의 일부로Sysctls를 반환해요.POST /services/create는 이제ContainerSpec의 일부로Sysctls를 받아요.POST /services/{id}/update도 이제ContainerSpec의 일부로Sysctls를 받아요.POST /services/create는 이제ContainerSpec.Privileges.CredentialSpec의 일부로Config를 받아요.POST /services/{id}/update도 이제ContainerSpec.Privileges.CredentialSpec의 일부로Config를 받아요.POST /services/create는 이제ContainerSpec.Configs의 옵션으로Runtime을 포함해요.POST /services/{id}/update도 이제ContainerSpec.Configs의 옵션으로Runtime을 포함해요.GET /tasks는 이제ContainerSpec의 일부로Sysctls를 반환해요.GET /tasks/{id}도 이제ContainerSpec의 일부로Sysctls를 반환해요.GET /networks는 이제dangling필터 유형을 지원해요.true(또는1)로 설정하면 컨테이너가 사용하지 않는 모든 네트워크를 반환하고,false(또는0)로 설정하면 하나 이상의 컨테이너가 사용하는 네트워크만 반환해요.GET /nodes는 이제node.label필터 유형을 지원해요. 라벨 필터 형식은node.label=/node.label==(지정된 라벨이 있는 것을 반환) 또는node.label!=/node.label!==(지정된 라벨이 없는 것을 반환)이에요.POST /containers/create는 이제 Fluentd 로깅 드라이버 사용 시HostConfig.LogConfig.Config에서fluentd-async옵션을 받아요. 이 옵션은 기능은 유지되지만 향후 릴리스에서 제거될fluentd-async-connect옵션을 대체해요. 사용자는 앞으로fluentd-async옵션을 사용하는 것이 좋아요. 이 변경은 버전이 붙지 않으며 데몬에 이 패치가 있으면 모든 API 버전에 영향을 줘요.POST /containers/create는 이제 Fluentd 로깅 드라이버 사용 시HostConfig.LogConfig.Config에서fluentd-request-ack옵션을 받아요. 활성화하면 Fluentd 로깅 드라이버가 고유 ID로 chunk 옵션을 보내요. 서버는 승인으로 응답해요. 이 옵션은 메시지 전송의 신뢰성을 개선해요. 이 변경은 버전이 붙지 않으며 데몬에 이 패치가 있으면 모든 API 버전에 영향을 줘요.POST /containers/create,GET /containers/{id}/json,GET /containers/json은 이제BindOptions.NonRecursive를 지원해요.POST /swarm/init은 이제 데이터 경로 포트 번호를 설정하는DataPathPort속성을 받아요.GET /info는 이제 swarm에서 현재 사용 중인DataPathPort에 대한 정보를 반환해요.GET /info는 이제 호스트 커널에 PID 제한 지원이 활성화되어 있는지 나타내는PidsLimit부울을 반환해요.GET /info는 데몬이 루트리스(rootless) 모드로 실행되면 이제SecurityOptions에name=rootless를 포함해요. 이 변경은 버전이 붙지 않으며 데몬에 이 패치가 있으면 모든 API 버전에 영향을 줘요.GET /info는 데몬이 루트리스 모드로 실행되면 이제CgroupDriver로none을 반환해요. 이 변경은 버전이 붙지 않으며 데몬에 이 패치가 있으면 모든 API 버전에 영향을 줘요.POST /containers/create는 이제HostConfig의 일부로DeviceRequests를 받아요. Nvidia GPU를 설정하는 데 사용할 수 있어요.GET /swarm엔드포인트는 이제 DataPathPort 정보를 반환해요.POST /containers/create는 이제 커널 TCP 버퍼 메모리의 하드 리밋을 설정하는KernelMemoryTCP필드를 받아요.GET /service는 이제Placement의 일부로MaxReplicas를 반환해요.GET /service/{id}도 이제Placement의 일부로MaxReplicas를 반환해요.POST /service/create와POST /services/(id or name)/update는 이제 서비스Placement의 일부로MaxReplicas필드를 받아 서비스의 노드별 최대 레플리카를 지정할 수 있게 해 줘요.- Linux에서
POST /containers/create는IpcMode가 명시적으로 지정되지 않으면 이제 기본적으로HostConfig.IpcMode=private로 컨테이너를 만들어요. 데몬별 기본값은DefaultIpcMode데몬 구성 파라미터로shareable로 다시 변경할 수 있어요. POST /containers/{id}/update는 이제 컨테이너의 PID 한도를 조정하는PidsLimit필드를 받아요. 무제한은0또는-1로 설정해요. 현재 값을 변경하지 않으려면null로 둬요.POST /build는 이제 BuildKit 모드 사용 시 빌드 출력을 구성하는outputs키를 받아요.
V1.39 API 변경 사항
GET /info는 데몬이 이 정보를 얻지 못하면KernelVersion과OperatingSystem에 `` 대신 빈 문자열을 반환해요.GET /info는 데몬에 라이선스가 적용된 경우 제품 라이선스 정보를 반환해요.GET /info는 이제 누락된 기능이나 데몬 구성 관련 문제에 대한 경고와 정보 메시지를 담은Warnings필드를 반환해요.POST /swarm/init은 이제 글로벌 스코프 기본 주소 풀을 설정하는DefaultAddrPool속성을 받아요.POST /swarm/init은 이제 각 네트워크의 서브넷 마스크 길이를 제공해 글로벌 스코프 네트워크를 설정하는SubnetSize속성을 받아요.POST /session(V1.31에서 추가됨)은 더 이상 실험적이지 않아요. 이 엔드포인트는 클라이언트와 데몬 사이에 대화형 장기 실행 프로토콜을 실행하는 데 사용할 수 있어요.
V1.38 API 변경 사항
GET /tasks와GET /tasks/{id}는 이제 "attachable" swarm 스코프 네트워크에 연결된 비서비스 컨테이너의ContainerID를 담은NetworkAttachmentSpec필드를 반환해요.
v1.37 API 변경 사항
POST /containers/create와POST /services/create는 이제 SCTP 포트 노출을 지원해요.POST /configs/create와POST /configs/{id}/create는 이제Templating드라이버를 받아요.GET /configs와GET /configs/{id}는 이제 config의Templating드라이버를 반환해요.POST /secrets/create와POST /secrets/{id}/create는 이제Templating드라이버를 받아요.GET /secrets와GET /secrets/{id}는 이제 secret의Templating드라이버를 반환해요.
v1.36 API 변경 사항
GET /events는 이제 exec 프로세스가 종료될 때exec_die이벤트를 반환해요.
v1.35 API 변경 사항
POST /services/create와POST /services/(id)/update는 이제 서비스를 실행하는 컨테이너의 격리 기술(default,process,hyperv)을 설정하는 컨테이너 스펙의Isolation필드를 받아요. 이 구성은 Windows 컨테이너에만 사용돼요.GET /containers/(name)/logs는 이제 추가 쿼리 파라미터until을 지원해요. 이는 지정된 타임스탬프 이전에 발생한 로그 줄을 반환해요.POST /containers/{id}/exec는 이제 컨테이너의 작업 디렉터리와 독립적으로 exec 프로세스의 작업 디렉터리를 설정하는WorkingDir속성을 받아요.GET /version은 이제 Moby를 기반으로 한 제품이 플랫폼에 대한 정보를 반환하는 데 사용할 수 있는Platform.Name필드를 반환해요.GET /version은 이제 사용된 구성 요소에 대한 정보를 반환하는 데 사용할 수 있는Components필드를 반환해요. Engine 자체에 대한 정보는 이제 "Component" 버전으로 포함되며, 최상위Version,GitCommit,APIVersion,MinAPIVersion,GoVersion,Os,Arch,BuildTime,KernelVersion,Experimental필드의 모든 정보를 담고 있어요. 앞으로Components섹션의 정보가 최상위 대응 항목보다 우선해요.
v1.34 API 변경 사항
POST /containers/(name)/wait?condition=removed는 이제 컨테이너 제거 실패 시에도 반환해요. 실패를 나타내기 위해 응답 JSON에Error라는 이름의 구조체 포인터가 추가됐어요.Error가null이면 컨테이너 제거가 성공했고, 그렇지 않으면Error.Message필드에서 컨테이너 제거가 실패한 이유를 나타내는 오류 메시지를 확인할 수 있어요.
v1.33 API 변경 사항
GET /events는 이제config,node,secret,service의 4가지 종류의 이벤트를 더 필터링할 수 있어요.
v1.32 API 변경 사항
POST /images/create는 이제os[/arch[/variant]]형식의platform파라미터를 받아요.POST /containers/create는 이제HostConfig.IpcMode속성에 대한 추가 값을 받아요. 새 값은private,shareable,none이에요.DELETE /networks/{id or name}은 다른 네트워크의name과 같은name이 그id를 가릴 수 있던 문제를 수정했어요. 이름이 같은 네트워크와 id가 같은 네트워크가 모두 존재하면 이제 id가 같은 네트워크가 삭제돼요. 이 변경은 버전이 붙지 않으며 데몬에 이 패치가 있으면 모든 API 버전에 영향을 줘요.
v1.31 API 변경 사항
DELETE /secrets/(name)은 secret이 존재하지 않으면 500 대신 404 상태 코드를 반환해요.POST /secrets/create는 이미 존재하는 secret을 만들 때 500 대신 409 상태 코드를 반환해요.POST /secrets/create는 이제 외부 secrets 저장소에 secrets를 저장하기 위한Name과 드라이버별Options를 전달할 수 있는Driver구조체를 받아요. 기본(내부) secrets 저장소를 사용하면Driver속성을 생략할 수 있어요.GET /secrets/(id)와GET /secrets는 이제 secret을 저장하는 데 사용되는 외부 secrets 저장소의Name과 드라이버별Options를 담은Driver구조체를 반환해요. 외부 저장소를 사용하지 않으면Driver속성은 생략돼요.POST /secrets/(name)/update는 라벨이 아닌 secret 내용을 업데이트할 때 500 대신 400 상태 코드를 반환해요.POST /nodes/(name)/update는 마지막 노드를 강등(demote)하는 데 실패하면 500 대신 400 상태 코드를 반환해요.GET /networks/(id or name)은 이제 스코프(local,swarm,global)로 네트워크를 필터링하는 선택적 쿼리 파라미터scope를 받아요.POST /session은 클라이언트와 데몬 사이에 대화형 장기 실행 프로토콜을 실행하는 데 사용할 수 있는 새 엔드포인트예요. 이 엔드포인트는 실험적이며 데몬이 실험 기능으로 시작된 경우에만 사용할 수 있어요.GET /images/(name)/get은 이제 엔진에 로컬이고 이미지 구성의 일부가 아닌 이미지 메타데이터를 담은ImageMetadata필드를 포함해요.POST /services/create는TaskTemplate.Runtime이plugin으로 설정된 경우PluginSpec을 받아요.GET /events는 이제 사용자가 config를 생성, 업데이트, 제거할 때 발생하는 config 이벤트create,update,remove를 지원해요.GET /volumes/와GET /volumes/{name}은 이제 볼륨이 생성된 날짜/시간을 담은CreatedAt필드를 반환해요. 볼륨의 생성 날짜/시간을 알 수 없으면 이 필드는 생략돼요. 스코프가 "global"인 볼륨의 경우 이 필드는 볼륨의 로컬 인스턴스 생성 날짜/시간을 나타내며, 다른 노드의 같은 볼륨 인스턴스와 다를 수 있어요.GET /system/df는 이제Volumes에 대한CreatedAt필드를 반환해요. 이 필드에 대한 설명은/volumes/엔드포인트를 참조하세요.
v1.30 API 변경 사항
GET /info는 이제 지원되는 로깅 드라이버(플러그인 포함) 목록을 반환해요.GET /info와GET /swarm은 이제 노드가 swarm에 있으면 클러스터 전체 swarm CA 정보(클러스터 루트 CA 인증서와 클러스터 TLS 리프 인증서 발급자의 subject와 공개 키)를 반환해요. 또한 spec의 일부로 제공된 원하는 CA 서명 인증서도 표시해요.POST /build/는 이제 (무음이 아닐 때) 생성된 각 이미지에 대해 페이로드types.BuildResult가 있는 JSON 출력 스트림에Aux메시지를 생성해요. 마지막 그런 메시지는 빌드에서 생성된 이미지를 참조해요.GET /nodes와GET /nodes/{id}는 이제 노드가 swarm의 일부이면 swarm TLS 정보(신뢰하는 루트 CA와 발급자의 subject 및 공개 키)에 대한 추가 정보를 반환해요.GET /distribution/(name)/json은 이미지 이름에 대해 페이로드types.DistributionInspect가 있는 JSON 출력 스트림을 반환하는 새 엔드포인트예요. 레지스트리에 직접 접속해 가져온 다이제스트와 지원 플랫폼이 있는 디스크립터를 포함해요.POST /swarm/update는 이제 swarm spec의 CA 구성의 일부로 3개의 추가 파라미터를 받아요. swarm의 원하는 CA 인증서, swarm의 원하는 CA 키(외부 인증서를 사용하지 않는 경우), 그리고 swarm이 새 CA 인증서/키 쌍을 생성하고 순환하도록 강제하는 선택적 파라미터예요.POST /service/create와POST /services/(id or name)/update는 이제 서비스Placement의 일부로Platforms필드를 받아 서비스가 지원하는 플랫폼을 지정할 수 있게 해 줘요.POST /containers/(name)/wait는 이제 기다릴 상태 변경 조건을 나타내는condition쿼리 파라미터를 받아요. 또한 서버가 클라이언트에 대한 wait 콜백을 등록했음을 알리기 위해 응답 헤더를 즉시 반환해요.POST /swarm/init은 이제 데이터 트래픽에 사용할 IP 주소 또는 네트워크 인터페이스를 설정하는DataPathAddr속성을 받아요.POST /swarm/join도 이제 데이터 트래픽에 사용할 IP 주소 또는 네트워크 인터페이스를 설정하는DataPathAddr속성을 받아요.GET /events는 이제 사용자가 service, node, secret을 생성, 업데이트, 제거할 때 발생하는 service, node, secret 이벤트를 지원해요.GET /events는 이제 사용자가 swarm 스코프 네트워크를 제거할 때 발생하는 네트워크 제거 이벤트를 지원해요.GET /events는 이제scope필터 유형을 지원하며 지원되는 값은 swarm과 local이에요.PUT /containers/(name)/archive는 이제 UID/GID 맵을 대상 파일이나 디렉터리에 복사하는copyUIDGID파라미터를 받아요.
v1.29 API 변경 사항
DELETE /networks/(name)은 이제 라우팅 메시(routing-mesh)를 제공하는 데 사용되는 ingress 네트워크를 제거할 수 있게 해 줘요.POST /networks/create는 이제Ingress부울 필드를 지정해 ingress 네트워크 생성을 지원해요. 현재는 오버레이 네트워크 드라이버를 사용할 때만 지원돼요.GET /networks/(name)은 이제 네트워크가 ingress인지 보여주는Ingress필드를 반환해요.GET /networks/는 이제 네트워크 모드(swarm,global,local)로 네트워크를 필터링하는scope필터를 지원해요.POST /containers/create,POST /service/create와POST /services/(id or name)/update는 이제HealthConfig의 일부로StartPeriod필드를 받아, 헬스체크가 통과하지 않아도 컨테이너가 비정상으로 간주되지 않아야 하는 기간을 지정할 수 있게 해 줘요.GET /services/(id)는 이제 서비스 검사 출력에 기본값을 병합하는insertDefaults쿼리 파라미터를 받아요.POST /containers/prune,POST /images/prune,POST /volumes/prune,POST /networks/prune은 이제 라벨 기반으로 컨테이너, 이미지, 볼륨, 네트워크를 필터링하는label필터를 지원해요. 라벨 필터 형식은label=/label==(지정된 라벨이 있는 것을 제거) 또는label!=/label!==(지정된 라벨이 없는 것을 제거)이에요.POST /services/create는 이제ContainerSpec의 일부로Privileges를 받아요. Privileges에는 현재CredentialSpec과SELinuxContext가 포함돼요.
v1.28 API 변경 사항
POST /containers/create는 이제 각Mount의 일관성 수준을 지정하는Consistency필드를 포함하며 가능한 값은default,consistent,cached,delegated예요.GET /containers/create는 이제 생성된 컨테이너에 커스텀 디바이스 cgroup 규칙을 설정하는HostConfig의DeviceCgroupRules필드를 받아요.GET /networks/(id or name)의 선택적 쿼리 파라미터verbose는 이제 지정된 네트워크에서 비로컬 작업을 포함한 모든 작업과 함께 모든 서비스를 나열해요.GET /containers/(id or name)/attach/ws는 이제 API 버전 >= v1.28이면 바이너리 프레임 형식의 WebSocket을 반환하고, 이전에는 텍스트 프레임 형식의 WebSocket을 반환해요.GET /containers/(id or name)/stats는 커널이 >= 4.3이고 pids cgroup이 지원되면pids_stats를 반환해요.POST /containers/create는 이제 usernamespaces 리매핑을 재정의하고 컨테이너에 privileged 옵션을 사용할 수 있게 해 줘요.POST /containers/create는 이제 명명된 볼륨에 대해 컨테이너 경로에서 볼륨으로의 자동 복사를 비활성화하는nocopy지정을 허용해요.POST /auth는 레지스트리가 지원하면 이제IdentityToken을 반환해요.Hostname과Domainname필드가 모두 지정된POST /containers/create는 컨테이너의 hostname이Hostname.Domainname이 아닌Hostname으로 설정되게 해요.GET /volumes는 이제 더 많은 필터를 지원하며 새로 추가된 필터는name과driver예요.GET /containers/(id or name)/logs는 이제 컨테이너의LogOpts에 제공된 환경 변수와 라벨 같은 추가 속성을 로그와 함께 스트리밍하는details쿼리 파라미터를 받아요.POST /images/load는 이제 진행 정보를 JSON 스트림으로 반환하고 진행 세부 사항을 억제하는quiet쿼리 파라미터를 가져요.
v1.22 API 변경 사항
HostConfig.LxcConf필드가 제거됐고POST /containers/create와GET /containers/(id)/json에서 더 이상 사용할 수 없어요.POST /container/(name)/update는 컨테이너의 리소스를 업데이트해요.GET /containers/json은 Windows에서isolation필터를 지원해요.GET /containers/json은 이제 컨테이너의 네트워크 목록을 반환해요.GET /info는 이제 데몬이 실행되는 호스트 아키텍처와 운영 체제 유형에 대한 정보를 제공하는Architecture와OSType필드를 반환해요.GET /networks/(name)은 이제 네트워크에 연결된 각 컨테이너에 대해Name필드를 반환해요.GET /version은 이제 API가 반환하는 다른 날짜/시간 값과 일관되도록BuildTime필드를 RFC3339Nano 형식으로 반환해요.AuthConfig는 이제 토큰 기반 인증을 위한registrytoken을 지원해요.POST /containers/create는 이제HostConfig.KernelMemory에 4M 최소값 제한이 있어요.POST /images/(name)/push로 시작된 푸시와POST /images/create로 시작된 풀은 API 요청을 하는 HTTP 연결이 푸시/풀 완료 전에 닫히면 취소돼요.POST /containers/create는 이제 디바이스에 대한 읽기/쓰기 속도 제한(초당 바이트 또는 초당 IO)을 설정할 수 있게 해 줘요.GET /networks는 이제name,id,type로 필터링을 지원해요.POST /containers/create는 이제 컨테이너의 정적 IPv4 및/또는 IPv6 주소를 설정할 수 있게 해 줘요.POST /networks/(id)/connect도 이제 컨테이너의 정적 IPv4 및/또는 IPv6 주소를 설정할 수 있게 해 줘요.GET /info는 이제 실행 중, 중지됨, 일시 중지된 컨테이너 수를 포함해요.POST /networks/create는 이제Internal필드를 설정해 네트워크에 대한 외부 접근을 제한하는 것을 지원해요.POST /networks/(id)/disconnect는 이제 컨테이너를 네트워크에서 강제로 연결 해제하는Force옵션을 포함해요.GET /containers/(id)/json은 이제 컨테이너의NetworkID를 반환해요.POST /networks/create는 이제 커스텀 IPAM 플러그인에 옵션을 제공하는 IPAM 구성의 options 필드를 지원해요.GET /networks/{network-id}는 커스텀 IPAM 플러그인 옵션이 있으면 이제 반환해요.GET /networks/는 이제 사용자 정의 네트워크의 서브넷 정보를 반환해요.GET /info는 이제 engine 위에 구축된 애플리케이션에 대한 추가 정보를 반환하는 데 유용한SystemStatus필드를 반환할 수 있어요.
v1.21 API 변경 사항
GET /volumes는 모든 볼륨 드라이버의 볼륨을 나열해요.POST /volumes/create는 볼륨을 만들어요.GET /volumes/(name)은 볼륨에 대한 저수준 정보를 얻어요.DELETE /volumes/(name)은 지정된 이름의 볼륨을 제거해요.VolumeDriver는 구성을 이식 가능하게 만들기 위해config에서HostConfig로 이동했어요.GET /images/(name)/json은 이제 이미지의RepoTags와RepoDigests에 대한 정보를 반환해요.config옵션은 이제 컨테이너를 종료하는 데 사용할 신호를 지정하는StopSignal필드를 받아요.GET /containers/(id)/stats는 각 인터페이스에 대해 각각 네트워킹 정보를 반환해요.HostConfig옵션은 이제 컨테이너의 DNS 옵션을 구성하는DnsOptions필드를 포함해요.POST /build는 이제 선택적으로 빌드 시 변수의 직렬화된 맵을 받아요.GET /events는 이제 기존time필드 외에timenano필드를 포함해요.GET /events는 이제 이미지와 컨테이너 라벨로 필터링을 지원해요.GET /info는 이제 엔진 버전 정보를 나열하고CPUShares와Cpuset의 정보를 반환해요.GET /containers/json은 컨테이너가 사용하는 이미지의ImageID를 반환할 거예요.POST /exec/(name)/start는 컨테이너가 중지되거나 일시 중지되면 HTTP 409를 반환할 거예요.POST /containers/create는 이제 커널 메모리 한도를 지정하기 위해 HostConfig에KernelMemory를 받아요.GET /containers/(name)/json은 이제size파라미터를 받아요. '1'로 설정하면SizeRw와SizeRootFs필드에 컨테이너 크기 정보를 반환해요.GET /containers/(name)/json은 이제 네트워크별 네트워크 설정을 상세히 나타내는NetworkSettings.Networks필드를 반환해요. 이 필드는NetworkSettings.EndpointID,NetworkSettings.Gateway,NetworkSettings.GlobalIPv6Address,NetworkSettings.GlobalIPv6PrefixLen,NetworkSettings.IPAddress,NetworkSettings.IPPrefixLen,NetworkSettings.IPv6Gateway,NetworkSettings.MacAddress필드를 대체하며, 이 필드들은 하위 호환성을 위해 여전히 반환되지만 향후 버전에서 제거될 거예요.GET /exec/(id)/json은 이제 네트워크별 네트워크 설정을 상세히 나타내는NetworkSettings.Networks필드를 반환해요. 이 필드는 여전히 하위 호환성을 위해 반환되지만 향후 버전에서 제거될NetworkSettings.Gateway,NetworkSettings.IPAddress,NetworkSettings.IPPrefixLen,NetworkSettings.MacAddress필드를 대체해요.HostConfig옵션은 이제 badness 휴리스틱을 조정하는OomScoreAdj필드를 포함해요. 이 휴리스틱은 OOM 조건에서 OOM 킬러가 어떤 프로세스를 죽일지 선택해요.
v1.20 API 변경 사항
GET /containers/(id)/archive는 컨테이너에서 파일시스템 콘텐츠의 아카이브를 얻어요.PUT /containers/(id)/archive는 컨테이너 파일시스템 안의 기존 디렉터리에 추출될 콘텐츠의 아카이브를 업로드해요.POST /containers/(id)/copy는 컨테이너에서 파일과 디렉터리를 다운로드하는 데 사용할 수 있는 위의archive엔드포인트로 대체되어 폐기 예정이에요.hostConfig옵션은 이제 컨테이너 프로세스가 실행될 추가 그룹 목록을 지정하는GroupAdd필드를 받아요.
v1.19 API 변경 사항
- 데몬이 클라이언트와 버전 불일치를 감지하면(보통 클라이언트가 데몬보다 새로운 경우) 404 대신 HTTP 400을 반환해요.
GET /containers/(id)/stats는 이제 단일 통계 세트를 얻고 연결을 끊는streambool을 받아요.GET /containers/(id)/logs는 이제since타임스탬프 파라미터를 받아요.GET /info의Debug,IPv4Forwarding,MemoryLimit,SwapLimit필드는 이제 int 대신 boolean으로 반환돼요. 또한 엔드포인트는 이제 새 boolean 필드CpuCfsPeriod,CpuCfsQuota,OomKillDisable을 반환해요.hostConfig옵션은 이제CpuPeriod와CpuQuota필드를 받아요.POST /build는cpuperiod와cpuquota옵션을 받아요.
v1.18 API 변경 사항
GET /version은 이제Os,Arch,KernelVersion을 반환해요.POST /containers/create와POST /containers/(id)/start는 컨테이너에서 사용할 ulimit 설정을 설정할 수 있게 해 줘요.GET /info는 이제SystemTime,HttpProxy,HttpsProxy,NoProxy를 반환해요.GET /images/json은 이미지 다이제스트 정보를 포함하는RepoDigests필드를 추가했어요.POST /build는 이제 빌드를 위해 생성된 모든 컨테이너에 리소스 제약을 설정할 수 있어요.CgroupParent는 특정 cgroup 아래에 컨테이너 cgroup을 설정하기 위해 호스트 구성으로 전달할 수 있어요.POST /build는 HTTP 요청을 닫으면 빌드를 취소해요.POST /containers/(id)/exec는 응답에Warnings필드를 포함해요.
v1.17 API 변경 사항
- 빌드는
LABEL명령을 지원해요. 이 명령을 사용해 이미지에 메타데이터를 추가해요. 예를 들어 이미지의 내용을 설명하는 데이터를 추가할 수 있어요.LABEL "com.example.vendor"="ACME Incorporated" POST /containers/(id)/attach와POST /exec/(id)/start- Docker 클라이언트는 이제 HTTP Upgrade 헤더를 사용해 잠재적 프록시에 연결 하이재킹을 암시해요.
POST /containers/create는 컨테이너 생성 시 컨테이너를 설명하는 라벨을 설정해요.GET /containers/json은 컨테이너와 연관된 라벨(Labels)을 반환해요.GET /containers/(id)/json은 컨테이너와 연관된 현재 exec 목록(ExecIDs)을 반환해요. 이 엔드포인트는 이제 컨테이너 라벨(Config.Labels)을 반환해요.POST /containers/(id)/rename은 컨테이너id를 새 이름으로 변경해요.POST /containers/create와POST /containers/(id)/start호출자는 호스트 구성에서ReadonlyRootfs를 전달해 컨테이너의 루트 파일시스템을 읽기 전용으로 마운트할 수 있어요.GET /containers/(id)/stats는 컨테이너의 리소스 사용 통계의 실시간 스트림을 반환해요.GET /images/json은 각 이미지와 연관된 라벨(Labels)을 반환해요.
v1.16 API 변경 사항
GET /info는 머신에서 사용 가능한 CPU 수(NCPU), 총 메모리(MemTotal), 실행 중인 Docker 데몬을 설명하는 사용자 친화적인 이름(Name), 데몬을 식별하는 고유 ID(ID), 데몬 라벨 목록(Labels)을 반환해요.POST /containers/create호출자는 새 컨테이너의 MAC 주소를 명시적으로 설정할 수 있어요.- 볼륨은 이제 컨테이너가 생성될 때 초기화돼요.
POST /containers/(id)/copy는 볼륨에 포함된 데이터를 복사해요.
v1.15 API 변경 사항
POST /containers/create는 이제 컨테이너 생성 시 컨테이너의HostConfig를 설정할 수 있어요. 이전에는 컨테이너를 시작할 때만 가능했어요.
v1.14 API 변경 사항
DELETE /containers/(id)는force를 사용하면 컨테이너가 SIGKILL로 즉시 종료돼요.POST /containers/(id)/start의HostConfig옵션은 추가할 기능 목록을 지정하는CapAdd필드와 제거할 기능 목록을 지정하는CapDrop필드를 받아요.POST /images/create의fromImage와repo파라미터는repo:tag형식을 지원해요. 결과적으로tag파라미터는 이제 구식이 됐어요. 새 형식과tag파라미터를 동시에 사용하면 오류가 반환돼요.
v1.13 API 변경 사항
GET /containers/(name)/json새 기능!HostConfig.Links필드가 이제 올바르게 채워져요. 새 기능! 데몬이 수신 대기하도록 구성된 모든 소켓을 나열하는/info엔드포인트에Sockets파라미터가 추가됐어요.POST /containers/(name)/start,POST /containers/(name)/stop새 기능! 컨테이너의 상태가 변경되지 않으면start와stop이 이제 304를 반환해요.POST /commit새 기능! 커밋 중에 컨테이너를 일시 중지하는pause파라미터(기본값true)가 추가됐어요.
v1.12 API 변경 사항
POST /build는 이제 컨테이너를 항상 제거하는forcerm파라미터를 지원해요.GET /containers/(name)/json,GET /images/(name)/json: JSON 키가 이제 CamelCase로 돼요.GET /images/search: Trusted builds가 이제 Automated Builds이며is_trusted필드는is_automated로 이름이 바뀌었어요.POST /images/(name)/insert엔드포인트가 제거됐어요.
v1.11 API 변경 사항
새로운 점
- API 서버가 연결을 받을 준비가 됐는지 확인하는 새
GET /_ping엔드포인트 추가. GET /events는 이제 주어진 타임스탬프 후에 연결을 닫는until파라미터를 지원해요.GET /containers/(id)/logs는 이제 컨테이너 로그를 얻는 권장 방법이에요.
v1.10 API 변경 사항
DELETE /images/(name)은 이제 여러 저장소에 태그가 있어도 이미지를 강제로 삭제하는force파라미터를 제공해요.DELETE /images/(name)은 이제 부모 이미지의 삭제를 방지하는noprune파라미터를 제공해요.DELETE /containers/(id)는 이제 실행 중이어도 컨테이너를 강제로 삭제하는force파라미터를 제공해요.
v1.9 API 변경 사항
POST /build는 이제 베이스 이미지를 풀하기 위한 적절한 레지스트리 인증 자격 증명을 해석하는 데 사용하는 직렬화된 ConfigFile을 받아요. 이전에 AuthConfig 객체를 받는 버전을 구현한 클라이언트는 업데이트해야 해요.
v1.8 API 변경 사항
POST /build는 이제 빌드 상태를 JSON 스트림으로 반환해요. 빌드 오류가 발생하면 실패한 명령의 종료 상태를 반환해요.GET /containers/(id)/json은 이제 컨테이너의 호스트 구성을 반환해요.POST /images/create,POST /images/(name)/insert,POST /images/(name)/push는 이제 JSON에progressDetail객체를 포함해요. 문자열을 파싱하지 않고도 진행의 현재 값과 총계를 얻을 수 있어요.
v1.7 API 변경 사항
GET /images/viz엔드포인트가 제거됐어요.images --viz출력은 이제GET /images/json엔드포인트를 사용해 클라이언트에서 생성돼요.GET /images/json응답은 이제 해당 이미지에 적용되는 repo/tags를 나타내는 중첩 속성과 함께 이미지당 단일 항목을 반환해요.
대신 이전에는:
HTTP/1.1 200 OK
Content-Type: application/json
[
{
"VirtualSize": 131506275,
"Size": 131506275,
"Created": 1365714795,
"Id": "8dbd9e392a964056420e5d58ca5cc376ef18e2de93b5cc90e868a1bbc8318c1c",
"Tag": "12.04",
"Repository": "ubuntu"
},
{
"VirtualSize": 131506275,
"Size": 131506275,
"Created": 1365714795,
"Id": "8dbd9e392a964056420e5d58ca5cc376ef18e2de93b5cc90e868a1bbc8318c1c",
"Tag": "latest",
"Repository": "ubuntu"
}
]
반환되는 JSON은 이제 다음과 같아요:
HTTP/1.1 200 OK
Content-Type: application/json
[
{
"RepoTags": [
"ubuntu:12.04",
"ubuntu:latest"
],
"Id": "8dbd9e392a964056420e5d58ca5cc376ef18e2de93b5cc90e868a1bbc8318c1c",
"Created": 1365714795,
"Size": 131506275,
"VirtualSize": 131506275
}
]
v1.6 API 변경 사항
새로운 점
POST /containers/(id)/attach는 이제 stderr를 stdout에서 분리할 수 있는 멀티플렉스 응답을 제공해요. 이는 각 전송에 헤더를 접두사로 붙여서 수행돼요.POST /containers/(id)/attach엔드포인트를 참조하세요. WebSocket attach는 변경되지 않았어요. 이전 API 버전의 attach 호출은 변경되지 않았어요. Stdout과 stderr가 병합돼요.
v1.5 API 변경 사항
POST /images/create는 이제X-Registry-Auth헤더를 통해 전송된 AuthConfig 객체로 레지스트리 자격 증명을 받아요.POST /images/(name)/push는 이제 요청 본문이 아니라X-Registry-Auth를 통해AuthConfig객체를 전달해야 해요.GET /containers/json은 Ports 항목의 형식을 각각 포트 매핑을 설명하는 PublicPort, PrivatePort, Type을 포함하는 dict 목록으로 변경했어요.
v1.4 API 변경 사항
POST /images/create는 이제 저장소를 풀할 때 모든 이미지를 병렬로 다운로드해요.GET /containers/(id)/top은 이제docker top이 사용하는ps인자를 받아요. 예:docker top aux.GET /events는 이제 이미지의 이름을 포함해요.
v1.3 API 변경 사항
- 컨테이너 안에서 실행 중인 프로세스를 나열하는
GET /containers/(id)/top엔드포인트 추가. - 스트리밍 또는 폴링을 통해 docker의 이벤트를 모니터링하는
GET /events엔드포인트 추가. GET /containers/json은 이제 컨테이너 크기를 얻는size=1옵션을 제공해요.POST /containers//start는 이제 start 호출에 호스트별 구성(예: 바인드 마운트)을 POST 본문으로 받아요.POST /build: 빌드 컨텍스트 업로드를 단순화해요.- 4개의 중간 버퍼가 있는 멀티파트 업로드 대신 tarball을 그냥 스트리밍해요.
- 더 간단하고, 메모리 사용이 적고, 디스크 사용이 적고, 더 빨라요.
경고:
POST /build개선 사항은 역호환이 되지 않아요. Pre 1.3 클라이언트는POST /build에서 깨질 거예요.
v1.2 API 변경 사항
- 인증 구성은 이제 클라이언트가 처리하며, 클라이언트는
POST /images/(name)/push에서 authConfig를 본문으로 보내야 해요. GET /auth는 이제 폐기 예정이에요.POST /auth는 이제 구성을 확인만 하고 서버에 저장하지 않아요.POST /images//delete는 이제 이미지에 하위가 있으면 태그만 해제하고, 태그되지 않은 부모가 있으면 모두 제거해요.POST /images//delete는 이제 삭제/태그 해제된 이미지 목록을 담은 JSON 구조를 반환해요.
v1.1 API 변경 사항
POST /images/create, POST /images/(name)/insert, POST /images/(name)/push는 이제 HTML 하이재킹 대신 JSON 스트림을 사용해요. 다음과 같아요.
HTTP/1.1 200 OK
Content-Type: application/json
{"status":"Pushing..."}
{"status":"Pushing", "progress":"1/? (n/a)"}
{"error":"Invalid..."}
...
v1.0 API 변경 사항
초기 버전 (docker v0.3.3)