2018-08-03 09:52:07 +0200 +0200

Prskavčí blog

Feb 5, 2016

Suchý docker

Suchý únor je skvělá akce a tak jsem říkal, zda s Dockerem nebudeme také na suchu. Našťěstí včera se situace změnila a vyšli nové verze Docker Engine, Docker Swarm and Docker Compose.

{% blockquote Docker docs https://docs.docker.com/engine/breaking_changes/ %} Pokud budete upgradovat, buďte opatrní, nový formát image není zpětně kompatibilní. {% endblockquote %}

V originálu si novinky můžete prostudovat na blogu Dockeru:

pokud si chcete přečíst novinky v češtině pokračujte v mém článku.

Novinek je spousta, ale budu se věnovat jen těm zásadním.

Docker Engine 1.10

Docker 1.10 používá nový systém pro ukládání image a layers. Není to zpětně kompatibilní, pokud uděláte upgrade, nemůžete použít staršího clienta. Migrace, která se spustí může trvat poměrně dlouho, pozor pokud máte docker v produkci. Při migraci se počítají SHA256 checksumy pro každý soubor.

Tyto změny s podporou paralelního pushovaní by měli urychlit docker push a docker pull, zvláště při pushi by to mělo být znát.

Další změny se týkají bezpečnosti. Podpora seccomp profiles, User namespaces, Authorization plugins. V dalších verzích budou PID Control Group.

  • nový příkaz docker update umožňuje měnit resources za běhu například pro navýšení paměti apod.
  • příkaz docker images podporuje flag --format
  • nový status=dead pro filtrování v docker ps
  • deprecated -f pro docker tag
  • přidaný support pro ** v .dockerignore pro více úrovní adresářů
  • nový logging ovladač pro Splunk
  • podpora více tagů v buildu

Docker Compose 1.6

Nový formát version 2 pro docker-compose.yml.

version: '2'
services:
  web:
    build: .
    ports:
     - "5000:5000"
    volumes:
     - .:/code
  redis:
    image: redis

Migrace většinou nebude složitá, stačí přidat version: 2 a services: na začátek a odsadit.

Nové vlastnosti

  • nový příkaz events stejný jako docker events
  • nový příkaz config pro validaci docker-compose.yml včetně interpolací a použítí extendu
  • nový příkaz create pro vytvoření kontejnerů bez spuštění
  • nový příkaz down pro stopnutí a odstranění všeho co pouští příkaz up
  • přídané nové konfigurační vlastnosti cpu_quota, stop_signal
  • flag --abort-on-container-exit stopne všechny kontainery pokud jeden vyhodí exit

Docker Machine 0.6

Zásadní vylepšení developer experience v příkazech docker-machine start, docker-machine stop a ostatních nemusíte používat argument default pokud ho přímo nespecifikujete.

Driver pro EC2 umí používat default VPC and automaticky číst přístupové údaje z ~/.aws/credentials.

Spousta drobných změn, které mi nepřišli už důležité.

Závěr

Každý release přinese spoustu změn. Celý ekosystém dockeru je poměrně mladý, ale o to více dynamický.

V Praze se každý měsíc konají docker meetupy, pokud vás tato problematika zajímá. Přijďte nebo nabídněte svoji přednášku pořadatelům.