Docker pro tips!

docker logo

Opzich is docker niet moeilijk. Het vervelende is alleen dat als het eenmaal vlot werkt en je er weinig werk aan hebt, je dus vergeet hoe het ook alweer zat.

Vandaar wat veel gebruikte docker commando’s om het weer even bij te spijkeren.

start docker containers met docker compose:

Start docker images

sudo docker-compose -f docker-compose.yml up -d

Kijk welke containers draaien:

[email protected]:~$ sudo docker container ls

sudo docker container ls
CONTAINER ID        IMAGE                          COMMAND                  CREATED             STATUS                PORTS               NAMES
d86206b9e41d        homeassistant/home-assistant   "python -m homeassis…"   11 days ago         Up 7 days                                 home-assistant
902ddb2a7e5a        jacobalberty/unifi:stable      "/usr/local/bin/dock…"   9 months ago        Up 7 days (healthy)                       unifi-controller
8872deff45b0        influxdb                       "/entrypoint.sh infl…"   9 months ago        Up 7 days                                 influxdb

Update home-asssistant docker image naar nieuwe versie

Hoewel de docker compose config een referentie heeft naar homeassistant/home-assistant, wat de laatste versie moet zijn wordt bij het stoppen en starten de image niet bijgewerkt. We moeten daarvoor eerst de image stoppen, dan verwijderen. De config blijft behouden. Bij het herstarten van de docker container wordt de nieuwe versie gedownload en zijn we weer bij.

Eerst even kijken wat er draait

 sudo docker container ls
CONTAINER ID        IMAGE                          COMMAND                  CREATED             STATUS                PORTS               NAMES
d86206b9e41d        homeassistant/home-assistant   "python -m homeassis…"   11 days ago         Up 7 days                                 home-assistant
902ddb2a7e5a        jacobalberty/unifi:stable      "/usr/local/bin/dock…"   9 months ago        Up 7 days (healthy)                       unifi-controller
8872deff45b0        influxdb                       "/entrypoint.sh infl…"   9 months ago        Up 7 days                                 influxdb

Daarna stoppen we de home assistant docker image

sudo docker stop home-assistant

Daarna verwijderen we de docker image

sudo docker rm home-assistant

Om de update te forceren downloaden we de nieuwe latest image

sudo docker pull homeassistant/home-assistant:latest
latest: Pulling from homeassistant/home-assistant
e79bb959ec00: Already exists
d4b7902036fe: Already exists
1b2a72d4e030: Already exists
d54db43011fd: Already exists
69d473365bb3: Already exists
7dc3a6a0e509: Already exists
68cd774d0852: Already exists
2ef86095a118: Already exists
42c091edeef0: Already exists
05de3d29a84d: Pull complete
6559fa264aff: Pull complete
5e8f6224fd84: Downloading [=============================================>     ]  99.95MB/110.2MB
639b4e80509e: Download complete
0b43d90065e2: Downloading [===============>                                   ]  87.13MB/287.9MB
a8524cb715f6: Download complete


Gemakshalve start ik gewoon de docker-compose file ipv de losse image aangezien deze de configuratie voor de home assistant image bevat. Alle images die al draaien en up to date zijn blijven gewoon draaien. Alleen de images die nog niet draaien worden nu gestart.

sudo docker-compose -f docker-compose.yml up -d
 unifi-controller is up-to-date
 influxdb is up-to-date
 Creating home-assistant … done

Als alles goed is gegaan draait de image meteen weer. Soms kan het zijn dat er wat nieuwe files gedownload moeten worden.

 sudo docker container ls
CONTAINER ID        IMAGE                          COMMAND                  CREATED             STATUS                PORTS               NAMES
a9b3309731f0        homeassistant/home-assistant   "python -m homeassis…"   56 seconds ago      Up 54 seconds                             home-assistant
902ddb2a7e5a        jacobalberty/unifi:stable      "/usr/local/bin/dock…"   9 months ago        Up 7 days (healthy)                       unifi-controller
8872deff45b0        influxdb                       "/entrypoint.sh infl…"   9 months ago        Up 7 days                                 influxdb

Docker images opruimen

Helemaal yolo draai ik home-assistant nog op een oude kleine SSD. Probleem daarbij is dat regelmatig de schijf vol liep. Nadat ik alle images naar een docker host op mn synology had verplaatst bleven de problemen aanhouden.

Wat blijkt, docker doet bij een pull geen update van de image, maar download gewoon een nieuwe. De oude blijft daarbij bestaan.
Het loont dus om af en toe even te kijken naar de gedownloade images…

sudo docker image ls
REPOSITORY                     TAG                 IMAGE ID            CREATED             SIZE
jacobalberty/unifi             stable              2c6122e6bc86        5 days ago          710MB
homeassistant/home-assistant   latest              b66d1a9659c7        6 days ago          2.3GB
homeassistant/home-assistant   <none>              58b6def26df6        8 days ago          2.3GB
homeassistant/home-assistant   <none>              9baa7f49f749        3 weeks ago         2.33GB
jgoerzen/weewx                 latest              07b411c6982d        5 weeks ago         291MB
homeassistant/home-assistant   <none>              8527ee826570        2 months ago        2.31GB
homeassistant/home-assistant   <none>              ce913a598aa9        2 months ago        2.24GB
homeassistant/home-assistant   <none>              7ff664fa081e        4 months ago        2.22GB
blackbird_blackbird            latest              74e2863abbc0        6 months ago        329MB
ubuntu                         16.04               b9e15a5d1e1a        7 months ago        115MB
influxdb                       latest              af2366cb51ad        9 months ago        209MB
jacobalberty/unifi             <none>              10b991e98773        10 months ago       671MB

Tadaaaa… er staat nog voor ruim 10GB aan oude images te wachten om weggemikt te worden.

Dat kan met

sudo docker image rm imageid

Als je geen zin hebt het gebruik uit te zoeken kan je ook in 1x alle ongebruikte images weggooien met :

sudo docker image prune

En dan houd je alles bij in een blog zodat je het kan terugzoeken. Blijkt dat je het niet steeds wil terug zoeken. Vandaar maar een script gemaakt met bovenstaande commando’s. Als er een update aanwezig is voer ik handmatig het script uit en zijn we weer helemaal bij.

sudo docker stop home-assistant
sudo docker rm home-assistant
sudo docker pull homeassistant/home-assistant:latest
sudo docker-compose -f docker-compose.yml up -d
sudo docker image  prune