3 ms·
Actually its pretty easy, I just did it yesterday for my PostgreSQL container. Debian/Ubuntu example: sudo docker exec -it my_pgsql_container_name /bin/sh -c "
by olavgg 11y ago
Actually its pretty easy, I just did it yesterday for my PostgreSQL container.
Debian/Ubuntu example:
sudo docker exec -it my_pgsql_container_name /bin/sh -c "apt-get update; apt-get -qqy upgrade; apt-get clean"
- tomaac 11y agoAnd what happens when you launch new container from the same image? You need to run apt-get/yum again. Or rebuild image.
- s_baby 11y agoThat's why you keep everything with state in a separate volume container. Attach volume to built image and that's it.
- alextgordon 11y agoYou can, if you want, mount your root as readonly so you're not tempted to modify it. Then it behaves like a Live CD.
- jeromenerf 11y agoMount data, logs, configuration, eventual extensions in the data container? For pg, there might be some migration needed when jumping from a major version to the next. Which requires both versions installed, on Debian at least.
- s_baby 11y ago>Mount data, logs, configuration, eventual extensions in the data container? Many programs have their state represented as files that are stable across versions. If you have a cluster of the same image with different states it's more efficient to move volume containers across a network. Easier to backup/upgrade too. pg is going to give you those problems whether you are using Docker or not.
- KaiserPro 11y agoand that defeats the whole selling point of docker, which is no forward config, containers do not change once shipped.
- ChrisArgyle 11y agoWorse, doing this breaks your guarantee that all environments deployed from this image will be consistent. You'll have to deploy some config management software (Puppet/Chef/Salt/Ansible) to stay on top of these changes.