Learning to use Docker

Hi Rosika,
I have to eat my words.
The Docker_Containerization_Cookbook is indeed quite a good introduction to docker.
It explains things , and it has lots of examples.
Some examples are indeed java, but it does not matter … as @Akito said you can follow the docker examples without getting into the java details.

So thank you. It is 65 pages… going to take a while to to read, but I think my next step is to see if this book can upgrade my understanding.

And, if anyone else is considering trying docker… I have looked at a lot of online documentation, including the official docker manuals, and I would recommend this book which @Rosika has discovered .

Regards and Thanks]
Neville

1 Like

Dear Neville, :wave:

Thanks so much for letting me know how you like this source. It´s highly appreciated. :heart:

That´s something I like very much. Acquiring theoretical knowledge is one thing but there´s nothing like a few real-life examples to fully grasp how things work.
I only wish every man-page (or at least some more) would provide some examples…

You´re very welcome. I´m glad I could be of some assistance for a change. :blush:

Thanks again for the feedback and many greetings
Rosika :slightly_smiling_face:

1 Like

So, how’s the learning going?

Well, I have 2 things going

  • building the goldboot environment in a container … thats tricky it involves using github repositories
  • making a parent image from void… the ones on dockerhub dont work?

Plus I dont yet understand CMD

Can you share it on Github or something? Would like to review and improve.

Can be used as what is “running” inside the container. If you have a server, just put it in a CMD statement.
Ideally though, you would use ENTRYPOINT and then provide arguments via CMD. This would be the cleanest way.

Examples

There is nothing like examples.
I want to experiment with ENTRYPOINT vs CMD

I tried ro do a CMD that made a file, so I could see it worked.
It would not make the file?

Provide the Dockerfile and show what you tried to do.

Most of the time, if you think, something hasn’t worked, then it’s related to the user looking in the wrong folder/location.

@nevj

Could you create a repository or more on Github, where you push your Dockerfiles, etc.?

Yes I will do,that.
Not a lot to put there yet… I am slow

Its done

Nothing much there yet, just my little learning example compiling a C program

1 Like

All: am I correct in assuming, after skimming your conversation, than ordinary users like me really have no interest or need to know about dockerfiles, containers, and all the rest? The conversation sounded like English, and I recognized the names of people I respect, but the content seemed to be in Klingon.

2 Likes

If you are using Linux, you should know about it, because it makes life much easier.

If you let a Spanish child read the conversation, it won’t understand English and all this will seem like gibberish. Does it mean English is incomprehensible or unnecessary to know?

1 Like

Understanding the words in English is not a problem. I am a native speaker with a BA in English. I can install an iso and operate most distros I’ve tried. Most distros use a UI that I can figure out. I can even make CLI inputs if directed–copy and paste. My concept of containers stops with coffee cups and beer mugs. How would understanding dockerfiles and containers make my life easier?

1 Like

Hi Bill,
Its like this. A docker container is a bit like an Appimage, only more flexible. One day I might know enough about Docker containers to be able to use it to move software around to other people.

For example… you were interested in Waterfox… Waterfox is a bit of a pain to install, it comes as a tarfile… I would like to try and put Waterfox in a docker container so I could make it available to you and others. It would involve sending you a small file called Dockerfile. You would have to install docker, put the Dockerfile in work directory, and use it to build a docker image of Waterfox, which you could then run in a container, just like you now run whole linux distros in Gnome Boxes.

So, docker is to a single piece of software, like a VM is to a whole distro.
With one difference, I dont have to ship you the software, I just ship you the instructions for building the software, which is what a Dockerfile contains

Would you be interested in trying that? I am not ready yet , but I would like to try and set up a method of using docker to allow FOSS users to share software setups.

Plain English I hope. Typos included, I am on the phone, internet is down
Regards
Neville

2 Likes

So you will understand a metaphor
“Docker is a cross between firejail and appimage”
and you will understand the limitations of argueing by analogy or simile or metaphor. It can help with understanding, but you can push it too far.
So tell us what you now understand. You will be ahead of me soon.
And I must acknowledge I would not have got this far without @Akito’s tutoring.
Neville

Neville: Of course I excuse your fatfinger typos–I avoid messaging using my phone for the same reason.

It’s becoming ever clearer to me that I’m just an ordinary user. Docker, firejail, appimage, container–all are opaque jargon to me. I understand that .deb files will work with gdebi or dpkg. I can’t seem to operate in the rpm world (which excludes PCLinuxOS, Fedora, and more). Arch? Better left unsaid.

I’ve been able to use Balena Etcher because I figured out how to address an appimage as an executable, but more like a monkey see/monkey do process than understanding. The rest of the terms in the last para are mysteries to me.

As long as I stay in the .deb world, I can fumble through.

1 Like

Dont underestimate yourself Bill.
You use Gnome Boxes. That is rather tricky, I found. If you can master that, you can handle any container… Boxes IS one type of container.

So what is this container concept? When it was first invented, in FreeBSD it was called jail. That is better word, because what it does is isolate stuff running inside the jail from the rest of your system.

Read up on it a bit. You can get there

Regards
Neville

Hi Neville,:wave:

I know you asked Bill… but may I be bold enough to say “I am interested”? :blush:

As I installed docker not so long ago on Debian10 in a vm I didn´t get beyond the point of getting hello-world to run :blush: :


docker container run hello-world

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (amd64)
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
 https://hub.docker.com/

For more examples and ideas, visit:
 https://docs.docker.com/get-started/

In fact I don´t have the resources to download anything bigger (data-caps) but your Waterfox example seems intriguing.

Many greetings from Rosika :slightly_smiling_face:

1 Like

Yes, of course. Thank you for being interested, Rosika.
What would happen with the Waterfox example is the Dockerfile would build a docker image which you would then run inside a docker container.
The Dockerfile is tiny, but when you build the image it would download Warerfox. If that is a bit of a large download, we could try with something smaller.

Tbe next step after your Hello-world trial, would be go to dockerhub and download the alpine image. It is small. Then you could run alpine in a container. Then you could try adding something to the alpine image to make your own special image. Try with something that does not use a gui… using X11 from a container is a bit tricky. I have not conquered it yet.
Regards
Neville

2 Likes

Sometimes Boxes won’t work. I had to make it possible by authorizing it in the BIOS. In some distros, like Ubuntu MATE, it just fails. Then I switch to another drive where Mint is loaded and it works.

I just use the tool that works and ignore the others. I’ll just enjoy reading about the exploits of others with docker files and containers. Can’t let it interfere with golf.