6
37 Comments

Do any of you use Docker?

I have launched a Docker-based product, and I'm curious how many people use Docker in general.

If you use it, what do you use it for? And are you using it only for local development and/or integration testing, or do you also host your app online using Docker?

Edit: Thank you all for your feedback. Now, on to the next question: https://www.indiehackers.com/post/looking-for-feedback-on-my-docker-hosting-service-for-indie-projects-f40800ae36

  1. 5

    Just a small dissenting voice - I still quite prefer using actual VMs for both development and production. Orchestrating the deploy of VMs is still much easier and lower-overhead than sorting out k8s or whatever other container management system is the latest and greatest, and if your application doesn't have crazy huge performance requirements, you can frequently fit most/all of your services into one VM and keep costs way down.

    1. 1

      You absolutely don't need to use something like k8s for using Docker in production. If using a single machine is good enough for you, you can still benefit from using Docker.

      The speed at which new developers can get set up locally with a single command like "docker-compose up" and have a production-like environment locally for development is well worth it.

  2. 3

    We use Google Cloud Run and yeah basically it runs a docker image. So, we use that to test our images locally.

  3. 3

    My product (https://www.amezmo.com) makes it easy for PHP developers to launch pre-provisioned Docker instances for PHP apps.

  4. 3

    I use it both for local development and in production.

    My product (https://pikaso.me) does server-side rendering of tweets and so it's super important that my local development environment (macOS) matches the production environment (Ubuntu) and Docker helps a lot with that.

  5. 3

    Not only do I use Docker for my local development and in production, my product https://www.valist.dev provides hosting of on-demand staging environments enabled by Docker. Users can provide their own Dockerfile or image to either build static web apps or run their own web servers the way they need it to run.

    1. 1

      Our products have much in common it seems, and they were started roughly at the same time! Would you be interested in a brief voice chat? I have a business proposal for you.

      I also followed you. Very exciting stuff you've got going there!

      And thanks for the response.

  6. 2

    Everything I do, from local tools and development, to CICD and production products is all through docker.

    Essentially the only things I install in my host OS is a browser and VS code (unless I'm in Linux then that's not even true). Everything else is run through containers. My clients are all developers who may have different versions of things in their environments. Docker keeps things fast, agile, and isolated.

  7. 2

    I use it for everything. I actually help large companies migrate their traditional and cloud based infrastructure to Kubernetes and develop tooling for them to automate their deployment processes.

    Locally, I run services as docker containers, and app servers on host. In production I run everything on Docker except for database. This would vary from app to app though depending on how critical the infrastructure is and its fault tolerance requirements.

    And yes my product https://www.vuepilot.com is totally running on Kubernetes / Docker

  8. 2

    Our use of docker varies for our different products but overall yes we heavily use docker. We use it to deploy to different CPU architectures (ARM v6 and v7. We also use it to deploy updates to our IoT products "over the air" which is super nice. It enables us to develop our products as close to realistic architecture as possible with the use of VMs and CPU emulation. We also use it to create our "swarms" and heavily rely on its scale up and down features on AWS to control costs.

  9. 2

    Local development and production! Definitely eases deployment when you can be certain your local exactly matches prod. Also great for one-off tests in a particular environment without having to spin up a real server or install a full VM.

    1. 2

      Thank you for your feedback! What do you use for hosting your containers in production?

      1. 1

        Currently in production I'm using Amazon ECS. In the past I've also manually built out a network of docker swarm on Amazon EC2 machines, which worked really well for the use case it was meant for.

        At some point I want to dig into Kubernetes and EKS since the hype machine has been pretty loud for those, but I've held off due to the lack of a clear value-add from my perspective.

  10. 2

    For development I use docker to run databases and other "infrastructure" related services, but typically run the main application locally.
    However, in production my apps run always in docker containers on the servers. For me the main advantages are that it provides a platform independent setup, makes it easy to spin up new servers, switch between providers and to create a CI/CD pipeline.

    There might be easier or more optimal ways to achieve some of this, but I'm most familiar with this approach and it's generic enough to be used for anything I want to achieve.

    1. 1

      Thank you for your reply! What Docker host are you using in production?

  11. 2

    Hey Mathias,

    I use it for local development and CI to run dependencies like the database. Those aren't easy to control the version of when using something like Homebrew to install.

    I don't use it to run my actual code in development, as version managers like rbenv and nvm make it easy to control the version. Running it through Docker made development tools slow and tricky to configure as well.

    Hope that helps!

  12. 2

    Docker user here, since 2013. All of the above. I'm on Windows 10 Pro now too, so you can imagine I wouldn't want to install a bunch of binaries, only to corrupt the registry at some point in the near future, if I haven't already, if it still works that way. Docker at least provides some level of protection for me since well, they are in a container of their own.

    Anyway I mainly use it for local infrastructure and app packaging. I even simulate my own backend with minikube (local kubernetes) so I can get a mini-production like environment, all pretty much in VMs. All this really centered around managing containers.

    Anecdotally, to help you with your question, in my recent memory, there was only one developer I met that didn't know what Docker was and that was because he was retired for like 6 years before getting bored and wanting to come back into work. Data point, in the last 4 years, I've screened maybe 1,000 candidates and Docker usage was a hard requirement.

  13. 1

    I don't use docker, except for within the CI/CD process. Both dev and production are containerless. I prefer that for both dev ergonomics and for maintaining state in memory in production.

  14. 1

    Local development (e.g spinning databases)
    On AWS, for easy release, just by replacing the environments.

  15. 1

    I use docker all the way from local dev to prod env. It really gives me a lot of freedom and less time debugging things on servers, which are not even equal when cloned.

  16. 1

    nope. too much deployment complexity for my side project. https://bubble.email runs on a cheap (3 bucks a month) vm on bare metal. simple and quick deployment with capistrano.

  17. 1

    Only at work currently. For deployment only.

    Why?

    I hate long build times that suck energy from my laptop, I don't want to upload and pull from Docker registry, so that's a long deployment story on top. If you think about it Docker goes against environment. It takes so much energy to always make a container with small change...

    1. 1

      I think you've done it wrong. Builds should not take a long time. The only thing that is energy intensive is running a Linux VM. Can't really blame docker for your OS choice.

      1. 1

        I deploy my own project new versions within 5 seconds by simply pushing new code and downloading dependencies if any (only if any!).

        There are no expensive builds of anything at all. No extra disk space, CPU or power is taken both from my laptop or from the VM

        Is your deploy also that fast? All Docker builds take longer than that for me. And that's before push/pull from registry.

        The only thing that is energy intensive is running a Linux VM

        Don't know about you, but for me the choice is either only VM or VM + Docker. If I spin a VM on Digital Ocean (or elsewhere) I start with VM. I don't understand the point you are trying to make.

        Can't really blame docker for your OS choice.

        What? My Fedora host has a great support for Docker and now even has Podman which is far better. The production builds at work are done with Alpine. Have better recommendations?

        1. 1

          Sorry when you said doing docker builds took a lot of energy I figured you were running OSx. If you're on Linux and your builds in docker take longer than the same amount of time as your remote file push, you've certainly done it wrong.

          Docker is rather like Kleenex, a brand name so tightly coupled with a product that docker and containers are synonymous whether you're using docker, buildah, or other containerd interfaces.

          Best of luck to ya

          1. 1

            If you're on Linux and your builds in docker take longer than the same amount of time as your remote file push, you've certainly done it wrong.

            You realize that physics applies right? Docker container build + deploy cannot really be any faster? Maybe you run something minimal that it's negligible? But hardly faster... please enlighten me:)

            that docker and containers are synonymous whether you're using docker, buildah, or other containerd interfaces

            I kindly disagree. Linux containers are great, Docker product so-so.

            1. 1

              Please note my word choices and language.

              If your BUILD (and not build+push+pull) is LONGER than doing something like a remote rsync then you've done it wrong.

              For example my 126MB docker image took .8seconds to build, 2.8seconds to push to the registry, and .9seconds to pull down. So yeah, it is 5 seconds fast.

              Second I said docker and containers are frequently used as synonyms. Not that the products are identical. Similarly people say "play Nintendo" when they really mean play station, Xbox, and etc. Or "Kleenex" when they mean facial tissue in general.

              1. 1

                If your BUILD...

                My point was about encouraging a one extra round trip. It's how most people set it up (but I know you can also copy and run the container...).

                For example my 126MB docker image took .8seconds to build, 2.8seconds to push to the registry, and .9seconds to pull down. So yeah, it is 5 seconds fast.

                There are great numbers, so all the power to you. It works for YOU. That's great. Feel free to continue :).

                My post was more about Docker in the wild + and my own experience where I can simply avoid Docker and accomplish the same thing.

  18. 1

    I did try it, but for mac, it didn't seem all the best, so mainly just using mac's native server for whatever i need.
    Do want to find out more about using it for mac, does anyone have better experience in that?

    1. 1

      First and foremost, I use docker for consistency. But in particular on OSx I don't actually even install basic language interpreters. Even bash and git I run through containers. OSx versions are massively out of date, and homebrew causes me nothing but headaches. Containers offer quick and disposable environments far more easily than traditional VMs. It's also very handy to stand up full stacks side by side to realize and compare the effects of code changes.

      Everything I do, from local tools and development, to CICD and production products is all through docker.

      1. 1

        Nice will pick up my game and start working on it again!

    2. 1

      I've used it on Mac for several years. At first, you needed to set up a virtual machine with Docker Machine. However, now with "Docker for Mac", it is no longer needed and docker containers can be reached via localhost which makes some things easier.

      It's great for running things like databases and other services external to the application you are working on. It's great when working with other people as you can ensure that you all are using the same version locally. Different projects can be dependent on different versions of for example databases. It can be used when building code (such as compilation) to ensure that it works the same way even years after initially setting it up.

      1. 1

        Thanks, must have a look into Docker for Mac
        Previously it would crash and be a way too heavy

        And back then i did mostly PHP dev so you don't really need a docker.
        Nowadays, a lot of javascript so also never really needed docker for that.

  19. 1

    I use Docker and Docker Compose for local and production environments of https://tranzlate.io

    I have a 2 docker-compose.ymlfiles for local and production. I use AWS ECR for image hosting and AWS Lightsail for the VPS. The nginx container also uses an SSL certificate from Cloudflare.

    It might take longer to get the Dockerfiles setup and working properly, but it is definitely worth it in the long run. Now I can build and deploy in 2 commands.

    1. 1

      That's very interesting - thanks for sharing! Your exact way of using Docker could maybe benefit from my product at https://dogger.io.

      What do you think?

      1. 1

        Hi. I am currently using the $5 option on Lightsail. That compared to the $4.50 option from your product which is less memory, disk space and data transfer does not make it a better deal. Thanks.

        1. 1

          It is not cheaper, no.

          It does however allow you to have one docker-compose.yml file for both local and production (same identitical file) instead of two, allows for deployment to the cloud without pushing an image, and also includes a free Container Registry that has unlimited storage.

          Even if you don't buy it, you can still, free of charge (and without registration) provision demo servers too, to try out your docker-compose.yml in the cloud.

          More here: https://medium.com/@mathiaslykkegaardlorenzen/hosting-a-docker-app-without-pushing-an-image-d4503de37b89

          But once again thanks for sharing your feedback!

Trending on Indie Hackers
After 10M+ Views, 13k+ Upvotes: The Reddit Strategy That Worked for Me! 42 comments Getting first 908 Paid Signups by Spending $353 ONLY. 24 comments I talked to 8 SaaS founders, these are the most common SaaS tools they use 20 comments What are your cold outreach conversion rates? Top 3 Metrics And Benchmarks To Track 19 comments Hero Section Copywriting Framework that Converts 3x 12 comments Join our AI video tool demo, get a cool video back! 12 comments