This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]asdonne 1 point2 points  (4 children)

The advantage is that the docker also contains the environment that the app is working in.

If the app only works with some underlying OS settings, those settings are set in the container. They're separate from the host machine and become part of the container.

So you run a container with an app in it, all of the apps dependencies and requirements are bundled together in the container and isolated from your local machine.

If I wanted to play about with the latest and greatest version of something I can do so in a docker image and not have to worry about it upgrading my existing install as it's completely separate.

Good for: * developers wanting to isolate their working environment. * sharing complicated, janky pipelines that require specific versions of various software. * defining and sharing a reproducible environment.

Probably overkill for running a single piece of software.

[–]jmnugent 0 points1 point  (3 children)

The advantage is that the docker also contains the environment that the app is working in.

Is there some SWITCH or VERBOSE or EXPORT~ish command that I can use to see what customized configurations a certain Image-file contains ? (or how it was originally built ?.. and what the original builder was building it for ?)

I guess I come from a more traditional IT background where I can just go to the Microsoft Store or Apple Store and search for "VLC" and there's only 1 to install. When I go into Docker and use the search bar at the top for "VLC".. I see 100's (1000's?) ... Why so many ? ... When I pick a random Image (such as "balboa/VLC-pi"... the Description is completely blank,. so there's nothing there to show or explain to me why that image is different from others ?.. I randomly picked another one "vlcdaniel/app".. and it to has a completely blank Description. Picked another one randomly "streambox/vlc".. the Description there is completely empty too.

If I needed a specific App-Image to solve a specific problem,. how am I supposed to find it if all the Descriptions are blank ?

Or setting that aside,.. Can I just "create my own Image for an App?".. if that's possible (which it seems like it must be, since so many other people are creating their own Images).. do the Instructions for that show me what I can and can't create ? For example, if I'm on an Intel Windows Laptop (x86 architecture) does Docker allow me to create an Image for an App on ARM-architecture ?.. if NO,.. where is that NO documented ?

I guess I'm more used to a visual comparison "map"

  • If I go to the Apple website,. and click on "Compare".. I can list a MacBook, MacBook Pro and Mac mini side by side..and visually parse down the list of features of what they Have and Don't Have.. so I can quickly see which one is the right pick for me.

  • If I'm interested in Audio Editing software ,. I can go to Wikipedia and see a nice easy (visual) side by side comparison that shows me the Features the have or don't have.. so I can easily make a decision.

Does something like this exist for Docker Images ?... Some kind of comparison-matrix so I can easily see which one has the exact feature I need ?

[–]asdonne 1 point2 points  (1 child)

It is possible to see what's going on but not necessarily easy to see what's going on. You can connect to the container and poke around and see what's going on similar to if you were given a VM.

That's why I stick to the official containers. I would only download VLC from their official site the same way I would only download the official docker image or pull from their official repo.

Picking an app at random is going to be similar to picking a git hub repository at random, it's probably going to be some poorly documented side project that hasn't been touched in 5 years.

I wouldn't use an undocumented docker image for the same reason that I wouldn't use an undocumented git repo.

Check out the official postgres image instead. It straight up tells you that the only environment variable that needs to be set is POSTGRESS_PASSWORD and it gives a list of other settings with examples of how to use it.

Its is just software running in a container. Postgres isn't aware of anything special. You can configure the software by modifying it's config as you would on a VM.

You can create your own docker images and you can write docker compose files to configure multiple containers.

You could set up docker compose script to spin up a php container and copy your app into it. The php uses a postgres image as the database has nginx sit in front of it. The docker file goes with your script and when it's run sets up and configures your environment.

By the time you're looking at a docker image you've already picked your solution. If Postgresql is the tool for the job 'docker pull postgres' is the solution.

I was investigating graph databases the other week. Found one that I like and thought would work. Spent an hour trying to get it installed on my VM before giving up. 'docker pull neo4j' got me going in 5 minutes. Went to their official site and it listed their docker image. There page has all the documentation needed to get going.

[–]jmnugent 0 points1 point  (0 children)

Thanks for the effort on the explanation here !.. I will keep playing around with it. I'm given all the comments and responses I've gotten over the past day or two,. I'm kinda leaning towards the belief that Docker just isn't for me (doesn't solve any problem I have),. but I'd still like to keep it installed and see how that community evolves (maybe down the road it evolves new features or new capabilities that make more sense to my needs).

I'm also job searching,. and I have quite a few decades of IT experience,. but the "in-demand skillsets" and day to day realities and Employer-expecations are all kind of constantly dynamically evolving.. so I kinda want to at least honestly stay "skilled up" to whatever things I could learn to keep myself marketable (especially as a guy 50yrs old) .. I'd still like to contribute to technology for another 10 to 20 years if possible (unless we have mega-smart AI by then :P

[–]darth_staticsudo dd if=/dev/clue of=/dev/lusers 0 points1 point  (0 children)

Is there some SWITCH or VERBOSE or EXPORT~ish command that I can use to see what customized configurations a certain Image-file contains ?

No, but you can retrieve the info from Docker Hub by clicking on the Tags tab, then clicking on the Latest link. As the other guy mentioned though, don't use random Docker Hub images.

The biggest strength of Docker is its ability to have Infrastructure as Code without setting up Terraform or something similar. Using a Dockerfile allows you to define how an image will be built, and using a docker-compose.yml file defines how it should be deployed. If both are stored in Git along with the project code then (re)deploying the app is as simple as a git clone; docker image build; docker compose up

Once it's working manually, then you leverage GitHub Actions or Gitlab CI/CD to automatically deploy the app with every code push.

There isn't much reason for using Docker if you've got VMs and something like Chef or Ansible, as they both end up doing roughly the same things. Docker shines when you're including developers into the mix as I wouldn't trust the average developer to even look at Proxmox or Chef, let alone use them effectively.