Skip to content

Instantly share code, notes, and snippets.

@tonyskapunk
Last active April 3, 2017 16:09
Show Gist options
  • Save tonyskapunk/10fad2709b021026159be1f48618c48b to your computer and use it in GitHub Desktop.
Save tonyskapunk/10fad2709b021026159be1f48618c48b to your computer and use it in GitHub Desktop.
Docker

Updating images

The way of updating images is assuming you keep images based on a TAG

Before updating images make sure there are no images without a TAG, delete any that is not making use of one, see Removing old images down below.

images=$( docker images --format '{{ $image:=split .Repository "/" }}{{ index $image 1 }}:{{.Tag}}' )
for image in ${images}; do
  docker pull ${image}
done

Removing old images

The way of deleting images is assuming you keep images based on a TAG

After an update the TAGs will point to a different IMAGE_ID leaving old images in place, e.g.

REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
docker.io/debian    8                   8cedef9d7368        12 days ago         123.4 MB
docker.io/mariadb   10.0                e2fa1cc27ede        3 weeks ago         337.2 MB
docker.io/percona   5.6                 0fd9de2714bf        4 weeks ago         323.1 MB
docker.io/percona   5.5                 ab5ee4f7a1bd        4 weeks ago         296.5 MB
docker.io/percona   latest              8b1f9f91ec47        4 weeks ago         352.2 MB
docker.io/mysql     5.6                 673eeb95a1a4        4 weeks ago         327.5 MB
docker.io/mysql     5.5                 0697aa95507c        4 weeks ago         255 MB
docker.io/mysql     5.7                 22be5748ecbe        4 weeks ago         405.6 MB
docker.io/mysql     latest              22be5748ecbe        4 weeks ago         405.6 MB
docker.io/mariadb   5                   348946d94fd9        4 weeks ago         280.3 MB
docker.io/mariadb   10.1                56741a13bbb9        4 weeks ago         393.4 MB
docker.io/debian    stretch             6f4d77d39d73        4 weeks ago         99.95 MB
docker.io/debian    sid                 88af6b1f3566        4 weeks ago         100.2 MB
docker.io/debian    jessie              978d85d02b87        4 weeks ago         123 MB
docker.io/ubuntu    16.04               0ef2e08ed3fa        4 weeks ago         130 MB
docker.io/ubuntu    xenial              0ef2e08ed3fa        4 weeks ago         130 MB
docker.io/ubuntu    14.04               7c09e61e9035        4 weeks ago         187.9 MB
docker.io/ubuntu    trusty              7c09e61e9035        4 weeks ago         187.9 MB
docker.io/rhel      latest              407bdd6b5495        5 weeks ago         192.5 MB
docker.io/mysql     <none>              7666f75adb6b        9 weeks ago         405.6 MB
docker.io/ubuntu    <none>              f49eec89601e        10 weeks ago        129.5 MB
docker.io/ubuntu    <none>              b969ab9f929b        10 weeks ago        187.9 MB
docker.io/percona   <none>              385f4a11b9ab        10 weeks ago        322.4 MB
docker.io/percona   <none>              ba28a0650765        10 weeks ago        296.4 MB
docker.io/percona   <none>              78507dce6c68        10 weeks ago        337.6 MB
docker.io/mysql     <none>              a896fd82dcd5        10 weeks ago        327.5 MB
docker.io/mysql     <none>              98ae577069d3        10 weeks ago        254.9 MB
docker.io/mariadb   <none>              c1d0f317c38b        10 weeks ago        280.3 MB
docker.io/mariadb   <none>              076aaeda7e9d        10 weeks ago        337.1 MB
docker.io/debian    <none>              988c9d0c7c4b        10 weeks ago        99.33 MB
docker.io/debian    <none>              e086d99b83a9        10 weeks ago        99.5 MB
docker.io/debian    <none>              e5599115b6a6        10 weeks ago        123 MB
docker.io/centos    7                   67591570dd29        3 months ago        191.8 MB
docker.io/centos    latest              67591570dd29        3 months ago        191.8 MB
docker.io/centos    6                   8315978ceaaa        5 months ago        194.6 MB

Get rid of those after an update:

old_images=$( docker images | awk '/<none>/ {print $3}' )
for old_image in ${old_images}; do
  docker rmi ${old_image}
done

This is how it will look like after cleaning

# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
docker.io/percona   5.6                 98ffb573d65e        3 days ago          324.4 MB
docker.io/percona   latest              283ef2185b79        3 days ago          353.5 MB
docker.io/mysql     5.5                 9913483658d3        3 days ago          256 MB
docker.io/mysql     5.6                 a0f5d7301767        3 days ago          328.5 MB
docker.io/mysql     5.7                 9546ca122d3a        3 days ago          406.9 MB
docker.io/mysql     latest              9546ca122d3a        3 days ago          406.9 MB
docker.io/percona   5.5                 7cfeb2290d5f        11 days ago         297.8 MB
docker.io/mariadb   5                   ff311e07a7b5        12 days ago         280.3 MB
docker.io/mariadb   10.0                9949993fb720        12 days ago         338.5 MB
docker.io/mariadb   10.1                a179773563c9        12 days ago         394.9 MB
docker.io/debian    stretch             51f0da81de8a        12 days ago         99.97 MB
docker.io/debian    sid                 58f44b590ddc        12 days ago         100.2 MB
docker.io/debian    8                   8cedef9d7368        12 days ago         123.4 MB
docker.io/debian    jessie              8cedef9d7368        12 days ago         123.4 MB
docker.io/centos    6                   ae5cb7280ec3        2 weeks ago         194.6 MB
docker.io/centos    7                   98d35105a391        2 weeks ago         192.5 MB
docker.io/centos    latest              98d35105a391        2 weeks ago         192.5 MB
docker.io/ubuntu    16.04               0ef2e08ed3fa        4 weeks ago         130 MB
docker.io/ubuntu    xenial              0ef2e08ed3fa        4 weeks ago         130 MB
docker.io/ubuntu    14.04               7c09e61e9035        4 weeks ago         187.9 MB
docker.io/ubuntu    trusty              7c09e61e9035        4 weeks ago         187.9 MB
docker.io/rhel      latest              407bdd6b5495        5 weeks ago         192.5 MB
docker.io/centos    5                   1ae98b2c895d        7 months ago        284.7 MB
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment