[Photo by Tom Fisk from Pexels](https://www.pexels.com/photo/top-view-photography-of-cargo-ship-with-intermodal-containers-3057963/)

Dockerfile writing best practices

I’ve been thinking for a long time about writing set of articles on the topic of: “Dockerfile writing best practices”. As it’s often my daily job to prepare best in class containers, that are later used by thousands of company’s applications, I have quite good insights on the topic. Some experience and knowledge gathered is often against intuition and building it took me a while. I want to share it, with a hope that feedback I get will allow me to excel on the topic even further. ...

2022-09-10 · 2 min · timor
Devoxx 2022

Back on the big stage!

I’m back on the big stage! I haven’t attend any big conferences as presenter for some time, but this year will change it. I’m starting big, with a talk: Docker base images - Ideas how to manage them on scale  external link on Devoxx  external link conference in Kraków, that will take place on 22-24th June 2022. ...

2022-06-13 · 1 min · timor

Official CentOS 8 Stream Docker image finally available!

Finally, they’re available! Wait a moment.. Actually they’re available for few months, just nobody published information about moving them to quay.io  external link and dropped poor guys using hub.docker.com  external link without any updates! Yes, that how they did! I found new place accidentally, reading some news about CentOS Stream 9 on their blog  external link . There was reference to CentOS 9 Stream dev builds of Docker images and I found “missing” stream and stream8 tags too. It’s not adding more confidence on my side to the CentOS project, when they’re not even communicating such changes publicly, sick! ...

2021-07-25 · 2 min · timor

How to run JMX monitoring in Docker image?

It’s sometimes useful to quickly connect to JMX console, to checkout what’s going on in your application, but the whole thing get’s tricky if you’re running your app in a container. I need it from time to time and I keep myself few times searching for set of params below: ~/2021/02/how-to-run-jmx-monitoring-in-docker-image/ java \ ... -Dcom.sun.management.jmxremote \ -Dcom.sun.management.jmxremote.rmi.port=${PORT1} \ -Dcom.sun.management.jmxremote.port=${PORT1} \ -Dcom.sun.management.jmxremote.local.only=false \ -Dcom.sun.management.jmxremote.authenticate=false \ -Dcom.sun.management.jmxremote.ssl=false \ -Djava.rmi.server.hostname=${HOST} The whole magic here is that PORT1 in container is app’s second port. So if you expose both HTTP and HTTPS on two separate ports, you will need here PORT2. I setup both RMI and JMX ports to same value. Second thing here is a hostname, it have to be hostname which you will use to connect to the container. If you use domain name, it have to be this domain name. If you want to use IP, set it to IP. It’s because it’s actually a virtual hostname for JMX HTTP server - if you mix them, you won’t get results. Container orchestrators often automatically export variable like HOST or HOSTNAME which you can use too hook. ...

2021-02-19 · 1 min · timor

CentOS 8 Stream Docker image

We’re all divided with recent decision to focus on CentOS Stream  external link , which essentially means that stable, professional distro will turn into rolling release now. Also CentOS board members don’t gave us more confidence for the future  external link . I don’t want to be totally sceptic, I would like to test it on my own and only then, decide if it’s stable enough. But I work mostly with Docker containers and there are no official Docker images with Stream variant. I decided to create it on my own, based on official instruction  external link . ...

2021-02-11 · 2 min · timor

How old are Official Docker images?

Info ...

2021-01-28 · 2 min · timor

Automatically build after file change

I’m playing a lot with Docker lately. Building images, and then rebuilding, and then building again… It’s pretty boring. To automate this task a little I used inotify to build automatically after I changed any file. This trick could be used in many different situations. You will need inotify-tools package: sudo apt-get install -y inotify-tools Then run something like this: while inotifywait -e modify -r .; do docker-compose build; done This commands will rebuild my Docker images after any file change in current directory. Use Ctrl+c to exit from loop. ...

2016-02-23 · 1 min · timor

Install Docker Compose

When I started playing with Docker I was running a lot of commands to build image, delete containers running on old image, run containers based on new image, etc… A lot of log commands with links, volumes, etc… Then I started searching for something to automate this task and here I get to docker-compse command, this is how you may install it: pip install docker-compose And install additional bash completions (run as root): ...

2016-02-12 · 1 min · timor

Manual installation of Docker on Debian/Ubuntu

I’ve played with Docker a little in it early days but didn’t stick for longer with it. It’s stable now so I wanted to check how it’s running now. I really can’t accept this method of installation: curl -fsSL https://get.docker.com/ | sh I think that world is going to it’s end when I see such scritps… I prefer to do this manually, knowing exactly what I have to do. Install prerequisites: ...

2016-02-11 · 2 min · timor

Some useful commands in Docker

I started playing with Docker and here I will write some commands that where not so obvious at beginning 😃 List running containers: docker ps List also not running containers: docker ps -a Remove all containers (be careful with that): docker rm $(docker ps -a -q) Remove all images: docker rmi $(docker images -q) Docker won’t remove any old volumes used by containers, so after some time you may be interested in deleting them all: ...

2016-02-11 · 1 min · timor