Docker 1.13 릴리스 요약

1월 19일에 출시된 Docker 1.13에서 바뀐 점을 요약하였습니다. Introducing Docker 1.13을 참고하였습니다.

1. swarm으로 클러스터를 띄울 때 compose 파일을 사용할 수 있습니다.

swarm으로 서비스를 관리할 때 옵션 지정하기가 번잡했던 부분을 해소할 수 있겠습니다.

2. 예전 버전과의 호환성 유지

Docker 데몬보다 클라이언트가 최신 버전인 경우 Error response from daemon: client is newer than server 에러를 만나곤 했는데요. 1.13 버전부터는 호환성이 유지된다고 합니다.

3. 청소용 명령어 추가

많은 사람들이 원했던 두 명령어가 추가되었습니다.

  • docker system df: 도커가 디스크 용량을 얼마나 차지하는지 알려줍니다.
$ docker system df
TYPE                TOTAL               ACTIVE              SIZE                RECLAIMABLE
Images              85                  7                   8.59 GB             4.618 GB (53%)
Containers          9                   3                   407 MB              323.5 MB (79%)
Local Volumes       65                  6                   6.675 GB            5.968 GB (89%)
  • docker system prune: 정지한 컨테이너, 연결이 끊긴 볼륨, 연결이 끊긴 네트워크, 외톨이(dangling) 이미지가 삭제됩니다.
$ docker system prune
WARNING! This will remove:
	- all stopped containers
	- all volumes not used by at least one container
	- all networks not used by at least one container
	- all dangling images
Are you sure you want to continue? [y/N]

4. 명령어 구조 변경

docker containerdocker image 등의 명령어 모음을 추가하면서 구조를 변경하고 있습니다. 예를 들어 docker images 같은 명령어는 뜻이 더 분명해 보이는 docker image list로도 실행할 수 있습니다.

  • docker container: 컨테이너와 관련된 명령어가 들어 있습니다.
$ docker container
Commands:
  attach      Attach to a running container
  commit      Create a new image from a container's changes
  cp          Copy files/folders between a container and the local filesystem
  create      Create a new container
  diff        Inspect changes on a container's filesystem
  exec        Run a command in a running container
  export      Export a container's filesystem as a tar archive
  inspect     Display detailed information on one or more containers
  kill        Kill one or more running containers
  logs        Fetch the logs of a container
  ls          List containers
  pause       Pause all processes within one or more containers
  port        List port mappings or a specific mapping for the container
  prune       Remove all stopped containers
  rename      Rename a container
  restart     Restart one or more containers
  rm          Remove one or more containers
  run         Run a command in a new container
  start       Start one or more stopped containers
  stats       Display a live stream of container(s) resource usage statistics
  stop        Stop one or more running containers
  top         Display the running processes of a container
  unpause     Unpause all processes within one or more containers
  update      Update configuration of one or more containers
  wait        Block until one or more containers stop, then print their exit codes

이 중에 docker container list만 실행을 해보면...

$ docker container list
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
b769009a1693        raccoony/buster     "./run.sh"               3 hours ago         Up 2 hours          0.0.0.0:9000->9000/tcp   blog_buster_1
5aeaf1187adc        ghost               "/entrypoint.sh np..."   3 hours ago         Up 2 hours          0.0.0.0:2368->2368/tcp   blog_ghost_1
  • docker image: 이미지와 관련된 명령어가 들어 있습니다.
$ docker image
Commands:
  build       Build an image from a Dockerfile
  history     Show the history of an image
  import      Import the contents from a tarball to create a filesystem image
  inspect     Display detailed information on one or more images
  load        Load an image from a tar archive or STDIN
  ls          List images
  prune       Remove unused images
  pull        Pull an image or a repository from a registry
  push        Push an image or a repository to a registry
  rm          Remove one or more images
  save        Save one or more images to a tar archive (streamed to STDOUT by default)
  tag         Create a tag TARGET_IMAGE that refers to SOURCE_IMAGE

이 중에 docker image prune을 실행해보았습니다. 1.5GB를 아꼈네요. :)

$ docker image prune
WARNING! This will remove all dangling images.
Are you sure you want to continue? [y/N] y
Deleted Images:
deleted: sha256:9e36c6055df2ada
...
Total reclaimed space: 1.579 GB

5. swarm 모니터링 개선

swarm으로 실행한 클러스터들의 로그를 모아서 보여주는 docker service logs 명령이 추가되었습니다.

6. 빌드 개선

docker build를 실행할 때 --squash 옵션을 추가하면, 겹겹이 쌓인 파일시스템 레이어를 하나로 합쳐줍니다. --squash를 사용하면, 이미지 레이어를 최소화해서 얻는 장점도 있는 반면, 여러 이미지들이 공유하던 중간 레이어들을 공유할 수 없다는 단점도 생깁니다.

또, --compress 옵션도 추가되었습니다. 원격에 있는 데몬과 통신하면서 이미지를 빌드할 때, 오가는 데이터를 압축하여 빌드 속도를 높인다고 합니다.

7. AWS, Azure 지원(베타)

AWS와 Azure에서 퍼블릭 베타 형태로 Docker를 지원합니다.

Show Comments