Docker Engine 18.04 릴리스 노트
Docker Engine 18.04 릴리스 노트
Docker Engine 18.04.0-ce 릴리스 노트를 함께 살펴볼게요. 2018년 4월 10일에 배포된 이 버전은 빌더, 클라이언트, 로깅, 네트워킹, 런타임, 스웜 모드 전반에 걸쳐 다양한 개선과 버그 수정이 포함되어 있어요. 하나씩 차근차근 알아볼게요.
출처: 공식문서
빌더 (Builder)
- builder와 client 쪽의 오타를 수정했어요. moby/moby#36424
클라이언트 (Client)
version명령어에서 Stack API와 Kubernetes 버전도 함께 출력되도록 했어요. docker/cli#898version명령어에서 Kubernetes 정보가 중복 출력되던 문제를 고쳤어요. docker/cli#953- 도움말에서 Options를 표시할 때
HasFlags대신HasAvailableFlags를 사용하도록 변경했어요. docker/cli#959 stack deploy에서 필수 변수를 지원하도록 추가했어요. docker/cli#893docker stack services명령어의 Port 출력 문제를 수정했어요. docker/cli#943- 암호화되지 않은 저장소는 더 이상 권장하지 않게 되었어요(deprecate). docker/cli#561
ConfigFile에 기본 파일명을 설정하지 않도록 했어요. docker/cli#917- compose 네트워크 이름 관련 문제를 고쳤어요. docker/cli#941
로깅 (Logging)
- 로그인할 때 자격 증명 저장소(cred store)에 있는 자격 증명을 사용해서 조용히(silent) 로그인할 수 있게 했어요. docker/cli#139
- 로그 파일 압축 기능을 지원하도록 추가했어요. moby/moby#29932
- non-blocking 로깅 모드에서
LogPath가 비어 있던 문제를 수정했어요. moby/moby#36272
네트워킹 (Networking)
- ingress 네트워크를 명시적으로 제거하지 못하도록 막았어요. moby/moby#36538
런타임 (Runtime)
- Devmapper 정리(cleanup) 작업을 개선했어요. moby/moby#36307
Devmapper.Mounted를 제거했어요. moby/moby#36437Devmapper/Remove()에서Rmdir을 사용하고 오류를 무시하도록 변경했어요. moby/moby#36438- LCOW(Linux Containers on Windows)에서 플랫폼 파서 지시문을
FROM문 플래그로 변경했어요. moby/moby#35089 - daemon 서비스 코드를 Windows 전용 파일로 분리했어요. moby/moby#36653
- Windows: 상위 레벨(uplevel) 이미지 풀링을 차단했어요. moby/moby#36327
- Windows: PR #36586 병합 후 Hyper-V 컨테이너가 깨지던 문제를 수정했어요. moby/moby#36610
- Windows:
kernel_windows가 golang 레지스트리 함수를 사용하도록 변경했어요. moby/moby#36617 - Windows: 컨테이너 종료 시 시스템 오류를 다시 전달하도록 했어요. moby/moby#35967
- Windows: 서비스 모드(servicing mode)를 제거했어요. moby/moby#36267
- Windows: 버전과 UBR을 보고하도록 했어요. moby/moby#36451
- Runc를 1.0.0-rc5로 업그레이드했어요. moby/moby#36449
- 마운트 실패 시 실패한 경로를 표시하도록 했어요. moby/moby#36407
errdefs.getImplementer()의 반환 값을 변경했어요. moby/moby#36489- Client:
hijackedconn이 버퍼에서 읽을 때 발생하던 문제를 수정했어요. moby/moby#36663 - 아카이브 요청에 콘텐츠 인코딩 협상(negotiation)을 추가했어요. moby/moby#36164
- Daemon/stats: CPU 샘플링을 더 견고하게 개선했어요. moby/moby#36519
- Daemon/stats: 불필요한 types 파일을 제거했어요. moby/moby#36494
- Daemon: 새로운 오류를 만들지 말고 context 오류를 사용하도록 했어요. moby/moby#36670
- amd64가 아닌 아키텍처에서도 CRIU를 사용할 수 있게 했어요(v2). moby/moby#36676
- 연결된 컨테이너의 stdin을 닫은 후 클라이언트가 간헐적으로 멈추던 문제를 수정했어요. moby/moby#36517
- 재시작 후 컨테이너 export 시 daemon에 panic이 발생하던 문제를 수정했어요. moby/moby#36586
- multi-stage moby Dockerfile에 대한 후속 수정을 했어요. moby/moby#36425
- Docker 이미지에서 busybox와 최신 glibc를 고정(freeze)했어요. moby/moby#36375
- 컨테이너가 non-root 사용자로 실행될 경우 permitted와 effective capabilities를 일찍 제거하도록 했어요. moby/moby#36587
- Layer: 메타데이터 저장소 인터페이스를 제거했어요. moby/moby#36504
- dockerd에 사소한 최적화를 적용했어요. moby/moby#36577
statxsyscall을 화이트리스트에 추가했어요. moby/moby#36417- 플러그인 생성 시 누락된 오류 반환을 추가했어요. moby/moby#36646
- Exec 프로세스에 AppArmor가 적용되지 않던 문제를 수정했어요. moby/moby#36466
- Daemon/logger/ring.go: 인스턴스가 아닌 오류를 로그하도록 수정했어요. moby/moby#36475
- 수집된 stats가 없을 때 stats collector가 CPU를 계속 사용하던 문제를 수정했어요. moby/moby#36609
- distribution: 인증 관련 digest 캐시를 이동하지 않도록 수정했어요. moby/moby#36509
- 실패 시 플러그인 컨테이너가 확실히 제거되도록 했어요. moby/moby#36715
- containerd를 1.0.3으로 업그레이드했어요. moby/moby#36749
- 플러그인 마운트 슬라이스를 정렬하지 않도록 했어요. moby/moby#36711
스웜 모드 (Swarm Mode)
- 진행 중인 RPC와 dispatcher 종료를 동기화하도록 수정했어요. moby/moby#36371
- raft의
ElectionTick을10xHeartbeatTick으로 늘렸어요. moby/moby#36672 - Swarm manager의 Raft 쿼럼(quorum) 파라미터를 daemon 설정에서 구성할 수 있게 했어요. moby/moby#36726
- ingress 네트워크는 attachable이 아니어야 한다는 수정이에요. docker/swarmkit#2523
- [manager/state] raft 암호화 옵션으로 fernet을 추가했어요. docker/swarmkit#2535
- GRPC 서버 오류를 로그로 남기도록 했어요. docker/swarmkit#2541
- manager 레벨에서 리더십 변경을 로그로 남기도록 했어요. docker/swarmkit#2542
- containerd executor를 제거했어요. docker/swarmkit#2568
- Agent: 사용 가능한 remote가 없을 때 세션을 백오프(backoff)하도록 했어요. docker/swarmkit#2570
- [ca/manager] root CA 키 암호화 지원을 완전히 제거했어요. docker/swarmkit#2573
- 에이전트 로깅 경합 조건(race condition)을 수정했어요. docker/swarmkit#2578
- 네트워크를 순서대로 복원하는 로직을 추가했어요. docker/swarmkit#2571