DEV Community

Discussion on: One does not "just containerize" an app

Collapse
 
thumbone profile image
Bernd Wechner • Edited

I have to try Docker. Have been avoiding it because of a sour experience with a Snap image when I tried to install an Ubuntu server with their Nextcloud image. It was trouble from the word go and presented a read only file system in which I could not even configure the web server it include so I dumped it and installed Ubuntu cleanly and installed Nextcloud the normal way ;-).

I run into more and more things I want that come in docker images (like the Joplin Server) and so I've also been wanting to learn some more about it. But to be honest many of your points make little sense to me. I had to Google "Alpine-based image" as that meant zero to me.

The reservation I have had with docker images to date is that they seem invariably, and understandably to include too much of the stack, notably a webserver and a database engine. And it makes zero sense to me to replicate those on a server that already has a webserver running and a database engine. And so I've sort of parked docker as suitable for a standalone server (and the Pi is a great platform for that but again ARM compatibility must be there), or an environment where the server is grunty and resourced enough to be running VMs for specific apps. Though that is a false economy anyhow as it kind of downstreams the issue of needless replication, not only the webserver and database engine suddenly but the OS too. Which is of course why containers rose in popularity, dumping at least the OS from the replication.

Collapse
 
tylerlwsmith profile image
Tyler Smith

Thanks for reading my article, Bernd!

There's a lot to learn with Docker, and Docker gives you a lot of opportunities to shoot yourself in the foot along the way. I tried and gave up on Docker twice before it finally stuck.

The using a Dockerized database and webserver can be nice for development, but for a serious app I would always prefer using a managed database in production. For a recent app I just deployed, I do a reverse proxy from the server's Nginx to a containerized Nginx that has reverse proxies to Django and Next.js containers. It feels a little silly so I may change that at some point 😅