The term "daemon" comes from Greek mythology, where a "daemon" (or "daimon") was a spirit or supernatural being that was neither good nor evil, but served to assist humans in their tasks. This idea of an unseen helper aligns with the role of daemons in Unix-like systems like Linux.
Indeed, Meriam-Webster defines a Daemon as; a supernatural being whose nature is intermediate between that of a god and that of a human being. So, more 'powerful' than a user, less powerful than root. I've always pronounced it day-mon, either because I'm British, or because I'm pronouncing it wrong... ;-)
It does. Some people argue that that means that it did not originally stand for Disk And Execution MONitor, However, both things are true, at least according to Guy L. Steele, Jr. You see, the term was inherited from Multics,. which both Ken and Dennis worked on. Another guy worked with them at MIT, a Mr. Guy L. Steele, Jr., original author of the Jargon File. The Jargon File says the term originally stood for disk and execution monitor. Since Steele was there when the term was invented, I'm going to lean more towards him being correct on this oine.
Note "-rm" should be "--rm" (double minus) and doesn't clean before running, it instead cleans up after running. Otherwise the deceased container will stay around so you can still inspect it.
@@DavesGarage Also, -it is two flags, -i is interactive, -t is terminal (as in give the container a tty to connect to). It's the "single dash single letter" short options, or "double dash spelled out" long option convention that many CLI tools use.
@DavesGarage Should never use latest version in a production docker container because this will use the latest version which could be different from the one you have tested. You should pin to a specific version instead
The term daemon was coined by programmers at MIT, supposedly inspired by Maxwell's demon. James Clerk Maxwell thought up a demon that was an imaginary agent in physics and thermodynamics that controlled a massless door and let gas particles selectively into and out of chamber, effectively pumping gasses against their normal thermodynamic direction. The programmers thought demon would be appropriate, but they used an older form of the world, daemon, instead.
Daemons are friendly demons. This extract from 'ThisVsThat' is helpful: Attribute Comparison Origin Daemon: Derived from Greek mythology Demon: Derived from various mythologies and religions Nature Daemon: Generally neutral or benevolent supernatural being Demon: Generally malevolent supernatural being Representation Daemon: Often associated with guiding or protecting individuals Demon: Often associated with evil, temptation, or torment Religious Context Daemon: Can be found in ancient Greek, Roman, and Neoplatonic beliefs Demon: Found in various religious traditions, such as Christianity, Islam, and Buddhism Pop Culture Depictions Daemon: Commonly portrayed as helpful or neutral entities in modern literature and media Demon: Often depicted as malevolent creatures in horror and fantasy genres Etymology Daemon: Derived from the Greek word "daimon" meaning divine power or spirit Demon: Derived from the Latin word "daemon" meaning evil spirit or devil
from wikipedia: The term was coined by the programmers at MIT's Project MAC. According to Fernando J. Corbató, who worked on Project MAC in 1963, his team was the first to use the term daemon, inspired by Maxwell's demon, an imaginary agent in physics and thermodynamics that helped to sort molecules, stating, "We fancifully began to use the word daemon to describe background processes that worked tirelessly to perform system chores". Unix systems inherited this terminology. Maxwell's demon is consistent with Greek mythology's interpretation of a daemon as a supernatural being working in the background.
Further to this, ITS called them "dragons", WAITS calls them phantoms, and another (OS/360?) calls them ghost jobs. It seems mythological and supernatural creatures is how you name these things
@@zyntolaz Not quite. You have entered a grey area where a small relevant portion is allowed for copy/paste in certain quantities and certain circumstances. However, it is preferable to at least say where it was copied from, which @Danny.._ did.
Amber CRTs used a coveted phosphor, easy on the eyes. I concur. I try to always replicate something similar, even on closed caption options on TVs. Edit: See Wikipedia on the word "Phosphor". Half way down it gives the chemical combinations used for the different colors in mono CRTs.
Docker is this beast that is so important I always assumed it would be hopelessly complicated. You video provided a good start and I think I am equipped to explore more on my own. Thank you Dave!
Dave, your voice, storytelling abilities, and video processing techniques are absolutely fantastic! And not the mention you are one of the coolest geeks I have ever come across. I wonder how you did that terminal turn to a billboard. Thats a pretty amazing. How about a couple of videos/tutorials to go on to do so for the rest of us? Thanks in advance!
Great video as usual Dave! Docker has been a revelation since learning how to use it a couple of years ago. Like you, I use it to run many of my homelab services (managed by Portainer). Furthermore, I run a small geoscience consulting business and often perform exploratory data analysis and visualisation of geoscientific data using Python, and while the client is usually not interested in the detail I always package up and deliver that work in a docker container so they have the option to revisit it in the future.
Have tried a few times to figure out what the heck folks find so helpful about Docker for deployments that couldn't just as easily be solved by paying attention to documentation. This was incredibly helpful - the "layering" element of it, in particular, was 100% new to me despite having gone through several different "introduction to" tutorials before and made it immediately go from "lazy curiosity" to "wait, that could be incredibly useful" in my head. Many thanks!
[this comment was written in jest, but as has been pointed out, it contains fast more snark than I'm comfortable with after reflection. I'm leaving it here so that the follow-up comments didn't get lost, and as an example of how I should try harder to be better] If you were previously unaware of layering, may I suggest that you practice the "paying attention to the documentation" that you mentioned?
its not about not paying attention to documentation its about not having to mess with host system it remains relativly clean while you can treat containers as cattle and remove them whenever necessary and do on
@@TracyNorrell It's never been made clear in any of the references I found. Never went deep into the weeds before. It's just always been about The Glories Of Containerization and Dockerhub. Neither of which are inherently appealing as we already have a sizeable VM-based setup.
@@TracyNorrellif you were previously unaware of the concept of politeness… oh, never mind. (😢/😉… this is half serious, half self-aware hypocrisy, and half joke. Give or take a half somewhere.)
@@jo.v-c layering isnt even that of an important features more important is as i said keeping host clean without leaving quarter of the resources on the table by using VMs and creatingbimages is far simpler of a process then creating vm disks so it makes the cattle not pet mentality much easier
Great video, Dave. I really love how to the point your content is, and i always learn something new even if i felt i was knowledgeable about the subject. I would love to see more docker content!
I appreciate this video, because even though I’m a professional software developer I’ve never really understood what scenarios someone would need docker for. I only know of docker as something the “teachers pet” type kids in college swore by, for some reason. But watching this video has done a better job of at least demonstrating some potential use cases for docker, albeit use cases I don’t encounter in my daily work. Thanks, Dave.
I am a bit surprised as a fellow 30+ years software engineer that you did not come across docker in any project. It is hard to image any software development project that is not using docker in some forms of buiding jobs, test runs etc.
@@DerIchBinDa well I haven’t been in the field for too terribly long, but the company I work for makes apps using the Unity game engine, which handles a lot of the build operations in the background.
Definitely have a look at the Portainer package.. makes it easy to see what you are running and to control running docker containers. Also makes it easy for installing new ones
You are the third tutorial I've watched tonight trying to get the concept of Docker through my thick skull. I still don't get it, but I have to give you kudos for at least providing a lot of concrete demonstrations of what it's used for. The other tutorials I watched just provided a lot of abstract theoretical uses which were not helpful.
Love the content. I started playing with Docker because of your videos on hosting your own AI. I also appreciate that you tell us when you dont know a thing. Keep up the great work.
This is really gonna help me. Like many others, I've struggled wrapping my head around Docker, but this was both informative and entertaining. I'm already subbed, don't worry :) I really want to read your books but I don't have the time/desire to sit and read a book. I would absolutely *love* it if they were made into audio books at some point. If that ever happens, let me know!
I have been avoiding learning this for so long! Thank you!
2 місяці тому
I recently had to explain some of these concepts, and I’ve got reassurance from your video and much much more. Thank you very much, please keep it up! :)
Love the continuity when building the container, "I'll be using ubuntu because it is the distribution I'm most familiar with..." to "FROM alpine:latest". LOL. Great vid Dave! Indeed, very helpful.
Super informative. I've yet to touch docker because it seemed too daunting, but you broke it down well. I'll give this a go thanks to your video. Thank you.
Been a sub for years and love the channel! Awesome explanation of docker! I remember back in vmworld (I think 2014 of 2016) when I was first introduced to docker as it was the big theme that year and now seeing it as a daily driving production system that fortune 100 companies rely on and has shaped app development and web development.
Thank you so much for this video! I'm upskilling in DevOps and have followed your channel for nerdy Microsoft content but I really love how you break down things and would really see the value in more of this type of video, thank you again from Australia!
@diego001 especially if the container has an abend 😂 OK now I've dated myself, which, as phrases go, is impossible to do without a parallel universe & some way to get to it.
What a coincidence! I've been trying to learn docker and just recently started watching your videos. To see a docker video by you today was a pleasant surprise!
I started a looking at docker again 2 weeks ago. For the last 27.5 years I work in medical imaging research as mostly a c++ software engineer but also the primary network admin. I am learning docker to both support the many users in my department who use it for AI and to see if it can help me solve some of my problems with my own projects more efficiently and more automated.
Yeah! Insane! A program that was shipped in a 1.44MB floppy now needs a whole support environment that is 1GB, get real! You’re even better of just installing dosbox (single binary) and run doom inside of that 😂
@@CallousCoder "Better" is always as subjective term. If you want it to run in a browser, then you need the whole support infrastructure that goes into a full web server, and probably (though I don't know) all the files for WebGL for the various platforms to pull files from. It's also probably mp3 or something for the sound track, as I doubt midi would work reliably in all web browsers.
The term daemon was coined by programmers at MIT’s Project MAC in the 1960s. They were inspired by “Maxwell’s demon,” a hypothetical being in physics that works tirelessly in the background to sort molecules. This concept seem fitting for background processes that perform system tasks without direct user interaction and work unseen to manage system functions.
I installed Docker recently not knowing exactly what its purpose is. Not the smartest move but now after watching your video I feel much smarter! Thanks.
Note that, if you are running Docker inside a virtual machine, you'll need to enable nested virtualization. For example, in VMware's ESXi, you'll need to edit the .VMX file and include "vhv.enable = TRUE"
For something like a webserver, you don't necessarily need to make all your ports available outside, for example, you can reverse proxy to the container ip and port (if not 80). Then map them to either a subdomain or subdirectory (some webspps dont run that way). I have an nginx container, Metabase reporting container, pgadmin container and a django site in a custom container all proxied through nginx. They just need to be on the same docker network. Only nginx needs to be defined as a port
I'm pretty sure daemons are called that because they will act mostly independently of the user's input or direction, and you have to basically hail them to "convince" them to change their behavior. That spelling hearkens to the ancient Greek concept of δαίμον, being a transliteration of it, and refers to essentially an independent god, a powerful actor among many with its own will, predilections and abilities.
That would be great. I'm still rather clueless as to what's actually going on with these things. VMs are conceptually easy to understand. Containers not.
@@robby3467 Basically Containers are in simplistic terms like VMs but stripped to the bare bone without needing a complete hardware/OS layer to be emulated as well. More lightweight, easier to scale.
Rented myself a vps to have fun with docker. Petty neat technology, particularly used with docker-compose to create complete configuration with special communication channel. Lots of fun!
ive been using premade dockers for about a year but this explanation gave me a much better picture. id love too see more docker + LED as im trying to learn both lol
Great video. As a PenTester, ill just add that Docker containers are isolated for the most part, but 'container breakout' is a thing. As an example, if i manage to exploit a webserver hosted on a container, exploit code execution and establish a reverse shell on the container, it is possible to talk to the host OS.
of course but so is breakout of VMs(known as VM escape) any kind of such system(sandboxing or shall we say logical partitioning) will potentailly have breakout posibility which is why you need to on host do security like not running as root give user as little privileges and so on
Funnily enough amber is my preferred colour for a terminal screen; I also thought the interlacing was a nice touch, but I don’t think I’d like to use it in practice. My first PC monitor looked like that! I remember PC Tools. I think it was by Central Point software. Where I worked (late 80s early 90s), we installed it on every PC. It came in a massive package with a separate printed manual for each utility.
I was surprised to learn that Docker even sponsors videos :) I have used it all the time, but never paid anything for it. I guess they have enough enterprise users that normal users can go their whole lives without realizing Docker is a commercial product.
Hah I’ve just been working on a similar presentation on Docker. I’ve been really impressed by all the features packed into Docker desktop. A lot less command line debugging now. This was great. I’d love to see you do something about performance testing in depth.
Daemon stands for Disk and Execution Monitor. It’s an application that’s monitoring execution and disk access and doing a particular job when it sees something, kind of like a TSR.
Dave you're a master at taking something potentially dry like the benefits of containerized applications and making me laugh multiple times over the course of the video. Well done.
The term “daemon” in Unix systems was inspired by Maxwell’s demon, an imaginary being from a famous thought experiment. This demon constantly works in the background, sorting molecules. Unix developers adopted this term to describe background processes that perform system chores1. These daemons silently monitor and maintain subsystems to ensure the operating system runs smoothly
It is spelled Daemon, pronounced "DAY-Mon" It is the angelic counterpart to an evil demon pronounced "DEE-mon"... but some people don't know how to read or pronounce it, and just started calling them demons and we're stuck with it ever since. I guess a demon would be a badly formatted Crowd Strike file... Ooh... Too soon?? I also did a Google query and got this: The term "daemon" was coined in 1963 by MIT programmers from Project MAC. They chose the word because it accurately described a background process that works continuously to perform system chores. The word "daemon" comes from the Greek word daimon, which means "god" or "protective spirit".
Minor nit. For docker run the -it argument is actually two separate args: -i to keep STDIN open, and -t to allocate a pseudo-TTY. Of course, I've never needed to use them individually but my OCD would want a multi-character arg to be --it, not -it!
Dave, it is “daemon.” A daemon is a guardian angel. The metaphor is that a background system process which keeps watch for things which need to be taken care of, for example the _lpd_ line printer daemon.
Internet search: In Greek mythology, a daemon was considered a supernatural being or power. The MIT programmers thought demon would be an appropriate name for a background process that worked tirelessly to perform system chores. But instead of using the term demon, they used daemon, which is an older form of the word.
Refinements: like demons you don't see them but can call out to them and they tend to have huge powers. (because they run as the "super user" named root) In Windows it either depends on a VM running Linux that in turn runs the containers, or WSL.
@@BertLaverman Note that daemons need not run as root. It's a quite normal program that has detached from the console. The huge majority of daemons really should not run as root. So a web server would normally run as a custom web user, to limit the machine accesses if it ever gets hacked.
"There are four main words at play here: spirit, ghost, daemon, and demon. The essential difference between a "daemon" and a "demon" is that a daemon is any spirit, good or bad, including the spirit of a living human, while a demon is exclusively a bad spirit."
Daemon came from ancient Greece. Essentially like a muse. The voice of inspiration if you like. Similar to a process sitting in the background guiding activity in computing.
In this interesting history, which is the actual description of the origin of this use from Professor Corbato, he explains that daemon originally had the connotation of "an attendant ... or indwelling spirit" and that: By the late 16th century, the general supernatural meaning was being distinguished with the spelling daemon, while the evil meaning remained with demon. He goes on to share the story of Maxwell's daemon. Maxwell was a 19th century scientist who'd posed a physics problem in which a tiny daemon was the attendant at a gate between two chambers that was large enough for a single molecule to enter. The daemon observed the molecules and chose which ones to allow to pass through the gate. So now we come to the crux of it. We have established a daemon as an attendant, and a scientist used a hypothetical daemon in a famous problem in which the daemon's job was to monitor molecular movement. Professor Corbato wraps up his explanation with As you probably know, the "system processes" called daemons monitor other tasks and perform predetermined actions depending on their behavior. This is so reminiscent of Maxwell's daemon watching his molecules that we can only assume that whoever dubbed these "system processes" had Maxwell's daemon in mind. The history also notes that Professor Saltzer, who also worked on Project MAC with Professor Corbato at the time "daemon" came into use for this purpose, confirms that this is the origin of daemon as it is used in computing.
very interesting. I finally understand what docker is and does. Thank you for the clear explanation. Can you tell me about your terminal. I love the vintage look.
And yet it’s a workaround for a bigger problem. And that is that we don’t have good software anymore that just is a single binary application with single directory anymore. It’s all shit these days. Dozens of scripts files, stupid web layers, database servers that could just be a database file or an even a tekst file.
I was always just under the assumption that daemon was an acronym of Disk And Execution Monitor. Something that just sits and waits for something to happen and acts on it. I didn't think there was anything deeper than that.
I love running things in docker. the best part, is when you don't want it running, you turn it off... for instance, I have my MSSQL running in docker, but when I am gaming, and need the extra little resources, I can turn off docker, and don't get stuck with things running in the background. I also have a minecraft server for my kids in docker, so when they want to play, I turn it on, then turn it off when not needed.
Two questions: What is the performance overhead of running code in a docker container vs on bare metal? What security concerns are there downloading/running containers from unknown sources? Are there steps that should be taken to minimize potential configuration backdoors in containers? Was that three questions... I've never been very good at math.
As a sysadmin docker is mostly a pain in my environment. The main problem I always have with it is that I usually patch all my systems regularly to make sure they are free from known security bugs. Either via apt or ansible for mass updating. Some systems even on unattended upgrades. Now the devs deploy docker images with old webservers, php, libraries and so on and I have no chance of fixing any of these bugs, because I'm not able to update their images. So since docker became a thing, my servers became more insecure. Having devs in charge of security never worked for me.
Whenever I am trying to compile a C++ program that has a multi page compilation instructions I think there should be a docker container that documents the build environment. Sometimes you follow the instructions and things are still missing that you need to build successfully.
The term "daemon" comes from Greek mythology, where a "daemon" (or "daimon") was a spirit or supernatural being that was neither good nor evil, but served to assist humans in their tasks. This idea of an unseen helper aligns with the role of daemons in Unix-like systems like Linux.
Indeed, Meriam-Webster defines a Daemon as;
a supernatural being whose nature is intermediate between that of a god and that of a human being.
So, more 'powerful' than a user, less powerful than root.
I've always pronounced it day-mon, either because I'm British, or because I'm pronouncing it wrong... ;-)
It does. Some people argue that that means that it did not originally stand for Disk And Execution MONitor, However, both things are true, at least according to Guy L. Steele, Jr. You see, the term was inherited from Multics,. which both Ken and Dennis worked on. Another guy worked with them at MIT, a Mr. Guy L. Steele, Jr., original author of the Jargon File. The Jargon File says the term originally stood for disk and execution monitor. Since Steele was there when the term was invented, I'm going to lean more towards him being correct on this oine.
Ha, that's a fun fact
The modern equivalent of the word "deamon" is "angel". An firewall daemon for example is basically a guardian angel.
I thought it was short for 'Devices And Extensions Monitor'.
I've been struggling to wrap my head around docker, the timing on this is perfect. Thank you!
same, i run a node in it so perhaps understanding it a bit more isnt madness
As a non-programmer/IT person starting to play around with the idea of a home lab, I found this very informative. Thank you Dave!
Don't be so humble, there are many programmers that have no idea what Docker is or does, you're already ahead
Note "-rm" should be "--rm" (double minus) and doesn't clean before running, it instead cleans up after running. Otherwise the deceased container will stay around so you can still inspect it.
Indeed... thought I *did* show double-dashes, but the title font might make it look like one long one. Or I got it wrong, one or the other!
@@DavesGarage Also, -it is two flags, -i is interactive, -t is terminal (as in give the container a tty to connect to). It's the "single dash single letter" short options, or "double dash spelled out" long option convention that many CLI tools use.
@DavesGarage Should never use latest version in a production docker container because this will use the latest version which could be different from the one you have tested. You should pin to a specific version instead
The term daemon was coined by programmers at MIT, supposedly inspired by Maxwell's demon. James Clerk Maxwell thought up a demon that was an imaginary agent in physics and thermodynamics that controlled a massless door and let gas particles selectively into and out of chamber, effectively pumping gasses against their normal thermodynamic direction. The programmers thought demon would be appropriate, but they used an older form of the world, daemon, instead.
I love that the FreeBSD mascot is a cute little devil/demon.
why are *satanic socket calls* made collect in Canada's portion of Country Code +1??
@@MarkoVukovic0 ie Hott Stuff icon
@@olivier_the_dilettante lol, exactly!
Daemons are friendly demons.
This extract from 'ThisVsThat' is helpful:
Attribute Comparison
Origin
Daemon: Derived from Greek mythology
Demon: Derived from various mythologies and religions
Nature
Daemon: Generally neutral or benevolent supernatural being
Demon: Generally malevolent supernatural being
Representation
Daemon: Often associated with guiding or protecting individuals
Demon: Often associated with evil, temptation, or torment
Religious Context
Daemon: Can be found in ancient Greek, Roman, and Neoplatonic beliefs
Demon: Found in various religious traditions, such as Christianity, Islam, and Buddhism
Pop Culture Depictions
Daemon: Commonly portrayed as helpful or neutral entities in modern literature and media
Demon: Often depicted as malevolent creatures in horror and fantasy genres
Etymology
Daemon: Derived from the Greek word "daimon" meaning divine power or spirit
Demon: Derived from the Latin word "daemon" meaning evil spirit or devil
from wikipedia: The term was coined by the programmers at MIT's Project MAC. According to Fernando J. Corbató, who worked on Project MAC in 1963, his team was the first to use the term daemon, inspired by Maxwell's demon, an imaginary agent in physics and thermodynamics that helped to sort molecules, stating, "We fancifully began to use the word daemon to describe background processes that worked tirelessly to perform system chores". Unix systems inherited this terminology. Maxwell's demon is consistent with Greek mythology's interpretation of a daemon as a supernatural being working in the background.
Those MEMS device have something beautiful
Further to this, ITS called them "dragons", WAITS calls them phantoms, and another (OS/360?) calls them ghost jobs. It seems mythological and supernatural creatures is how you name these things
When you copy and paste from Wikipedia, give them CREDIT for it. Otherwise, it's called plagiarism. Unless you are the author of said article.
@@zyntolaz Not quite. You have entered a grey area where a small relevant portion is allowed for copy/paste in certain quantities and certain circumstances. However, it is preferable to at least say where it was copied from, which @Danny.._ did.
If that’s accurate, then wouldn’t it be pronounced like the Greek “daimon” and not “demon”
Your terminal is the best looking terminal I've ever seen.
Amber CRTs used a coveted phosphor, easy on the eyes. I concur. I try to always replicate something similar, even on closed caption options on TVs.
Edit: See Wikipedia on the word "Phosphor". Half way down it gives the chemical combinations used for the different colors in mono CRTs.
@@fmphotooffice5513 Thank you for letting me know what they were called. I was curious about that.
Anyone know how he gets it to look like that?
@@koreyspace cool-retro-term
Docker is this beast that is so important I always assumed it would be hopelessly complicated. You video provided a good start and I think I am equipped to explore more on my own.
Thank you Dave!
Dave, your voice, storytelling abilities, and video processing techniques are absolutely fantastic! And not the mention you are one of the coolest geeks I have ever come across. I wonder how you did that terminal turn to a billboard. Thats a pretty amazing. How about a couple of videos/tutorials to go on to do so for the rest of us? Thanks in advance!
This video goes straight to my library. Thank you so much Dave.
Great intro to Docker. I use Docker to run a Storj node. It was easy to setup and now earns me a little bit of crypto every month.
Great video as usual Dave! Docker has been a revelation since learning how to use it a couple of years ago. Like you, I use it to run many of my homelab services (managed by Portainer). Furthermore, I run a small geoscience consulting business and often perform exploratory data analysis and visualisation of geoscientific data using Python, and while the client is usually not interested in the detail I always package up and deliver that work in a docker container so they have the option to revisit it in the future.
I was trying to get Immich set up a while ago but docker was alien to me. No one on reddit was willing to explain. Thank you!
Have tried a few times to figure out what the heck folks find so helpful about Docker for deployments that couldn't just as easily be solved by paying attention to documentation. This was incredibly helpful - the "layering" element of it, in particular, was 100% new to me despite having gone through several different "introduction to" tutorials before and made it immediately go from "lazy curiosity" to "wait, that could be incredibly useful" in my head. Many thanks!
[this comment was written in jest, but as has been pointed out, it contains fast more snark than I'm comfortable with after reflection. I'm leaving it here so that the follow-up comments didn't get lost, and as an example of how I should try harder to be better]
If you were previously unaware of layering, may I suggest that you practice the "paying attention to the documentation" that you mentioned?
its not about not paying attention to documentation its about not having to mess with host system it remains relativly clean while you can treat containers as cattle and remove them whenever necessary and do on
@@TracyNorrell It's never been made clear in any of the references I found. Never went deep into the weeds before. It's just always been about The Glories Of Containerization and Dockerhub. Neither of which are inherently appealing as we already have a sizeable VM-based setup.
@@TracyNorrellif you were previously unaware of the concept of politeness… oh, never mind. (😢/😉… this is half serious, half self-aware hypocrisy, and half joke. Give or take a half somewhere.)
@@jo.v-c layering isnt even that of an important features more important is as i said keeping host clean without leaving quarter of the resources on the table by using VMs and creatingbimages is far simpler of a process then creating vm disks so it makes the cattle not pet mentality much easier
Great video, Dave. I really love how to the point your content is, and i always learn something new even if i felt i was knowledgeable about the subject. I would love to see more docker content!
I appreciate this video, because even though I’m a professional software developer I’ve never really understood what scenarios someone would need docker for. I only know of docker as something the “teachers pet” type kids in college swore by, for some reason. But watching this video has done a better job of at least demonstrating some potential use cases for docker, albeit use cases I don’t encounter in my daily work. Thanks, Dave.
I am a bit surprised as a fellow 30+ years software engineer that you did not come across docker in any project. It is hard to image any software development project that is not using docker in some forms of buiding jobs, test runs etc.
@@DerIchBinDa well I haven’t been in the field for too terribly long, but the company I work for makes apps using the Unity game engine, which handles a lot of the build operations in the background.
Thank you you explain docker More clearly than any other UA-camr I have ever seen 👍
Whoohoo! I can see clearly now. I finally understand Docker. Thanks Dave.
Definitely have a look at the Portainer package.. makes it easy to see what you are running and to control running docker containers. Also makes it easy for installing new ones
You are the third tutorial I've watched tonight trying to get the concept of Docker through my thick skull. I still don't get it, but I have to give you kudos for at least providing a lot of concrete demonstrations of what it's used for. The other tutorials I watched just provided a lot of abstract theoretical uses which were not helpful.
Love the content. I started playing with Docker because of your videos on hosting your own AI. I also appreciate that you tell us when you dont know a thing. Keep up the great work.
This is really gonna help me. Like many others, I've struggled wrapping my head around Docker, but this was both informative and entertaining. I'm already subbed, don't worry :)
I really want to read your books but I don't have the time/desire to sit and read a book. I would absolutely *love* it if they were made into audio books at some point. If that ever happens, let me know!
I have been avoiding learning this for so long! Thank you!
I recently had to explain some of these concepts, and I’ve got reassurance from your video and much much more. Thank you very much, please keep it up! :)
Love the continuity when building the container, "I'll be using ubuntu because it is the distribution I'm most familiar with..." to "FROM alpine:latest". LOL. Great vid Dave! Indeed, very helpful.
Super informative. I've yet to touch docker because it seemed too daunting, but you broke it down well. I'll give this a go thanks to your video. Thank you.
Been a sub for years and love the channel! Awesome explanation of docker! I remember back in vmworld (I think 2014 of 2016) when I was first introduced to docker as it was the big theme that year and now seeing it as a daily driving production system that fortune 100 companies rely on and has shaped app development and web development.
Thank you so much for this video! I'm upskilling in DevOps and have followed your channel for nerdy Microsoft content but I really love how you break down things and would really see the value in more of this type of video, thank you again from Australia!
I'm very much looking forway to truenas getting proper docker/compose support in the next release. So good timing on this!
Thank you for this. I'm aware of Docker but had no idea how they were run or worked. I do now!
You're the man, Dave! Love learning from you!
Gosh. Having to deal with Dockerfiles reminded me so much of writing JCL.
DCL unleashed my inner superuser.
@diego001 especially if the container has an abend 😂
OK now I've dated myself, which, as phrases go, is impossible to do without a parallel universe & some way to get to it.
What a coincidence! I've been trying to learn docker and just recently started watching your videos. To see a docker video by you today was a pleasant surprise!
Exactly the same for me!
Same for me too!
I started a looking at docker again 2 weeks ago. For the last 27.5 years I work in medical imaging research as mostly a c++ software engineer but also the primary network admin. I am learning docker to both support the many users in my department who use it for AI and to see if it can help me solve some of my problems with my own projects more efficiently and more automated.
I used to have a boss whose response to “but it works on my machine!” was “that’s great, but I can only sell your machine once!” 😂
Good one :-)
Love the part at the end in sotto voice. Great content as always.
Cleared up some misconceptions I had about Docker. Thanks, Dave.
Dave has a great channel here, I have learned so much about both computers and myself. Extremely grateful!
Docker is the best tool I've used in my programming journey so far. Such a powerful thing
You made it so easy to understand. Thanks again for your wonderful explanation and great video!
I really enjoyed this video even though I already work with Docker. 👍🏻👍🏻
Hope I wasn't wrong too often... you know how it goes when someone in the "media" covers something you know well!
Thank you for this discussion. I'm more interested in working with Docker after hearing your take.
Imagine if people at id Software ever thought a Doom installation would take 1GB one day.
I was thinking that! Not sure why it's so large, other than it includes the guts of a linux distro... but 1G?
@@DavesGarage If you were able to play it in-browser, does that mean it was a WebGL version of Doom? Maybe that's where the extra space comes from
@@carbon3293 its just lots of well timed screenshots in bmp format
/i kiiiiiid, i kid
Yeah! Insane! A program that was shipped in a 1.44MB floppy now needs a whole support environment that is 1GB, get real! You’re even better of just installing dosbox (single binary) and run doom inside of that 😂
@@CallousCoder "Better" is always as subjective term. If you want it to run in a browser, then you need the whole support infrastructure that goes into a full web server, and probably (though I don't know) all the files for WebGL for the various platforms to pull files from. It's also probably mp3 or something for the sound track, as I doubt midi would work reliably in all web browsers.
thanks for the btop mention just installed on all my linux machines
The term daemon was coined by programmers at MIT’s Project MAC in the 1960s. They were inspired by “Maxwell’s demon,” a hypothetical being in physics that works tirelessly in the background to sort molecules. This concept seem fitting for background processes that perform system tasks without direct user interaction and work unseen to manage system functions.
keep up the great work dave! loving the videos man.
Glad you like them!
I installed Docker recently not knowing exactly what its purpose is. Not the smartest move but now after watching your video I feel much smarter! Thanks.
Note that, if you are running Docker inside a virtual machine, you'll need to enable nested virtualization. For example, in VMware's ESXi, you'll need to edit the .VMX file and include "vhv.enable = TRUE"
Perhaps if you're using Docker on Windows (through WSL that might use virtualization), otherwise it shouldn't?
@@troos5800 Ahh, yes, you are probably correct. My experience was only with Windows.
On macOS Docker also spins up a Linux VM on the native hypervizor (which is a continuation of xhyve, ported from FreeBSD bhyve)
2:23 "Why not call them Forest Gumps, they're always running."
🤣🤣
Yeah, but daemons were invented LONG before Forest Gump. And of course daemons *aren't* always running. Some of them are only started on demand.
Run, Forrest, run! 😂
as a dad, I approve that joke.
Timing and history. Gump was created 3 decades too late. 😁
For something like a webserver, you don't necessarily need to make all your ports available outside, for example, you can reverse proxy to the container ip and port (if not 80). Then map them to either a subdomain or subdirectory (some webspps dont run that way). I have an nginx container, Metabase reporting container, pgadmin container and a django site in a custom container all proxied through nginx. They just need to be on the same docker network. Only nginx needs to be defined as a port
Three Thumbs Up!!! Had to RTFM on the Doom image on Docker Hub to get 'er going on Windows, but I did. Excellent into to Docker. Thank you!
Would love to see an advanced Docker and Git videos!
I hope you do a part 2 to docker. I really want to start playing with it and want to see what I can run in it.
I'm pretty sure daemons are called that because they will act mostly independently of the user's input or direction, and you have to basically hail them to "convince" them to change their behavior.
That spelling hearkens to the ancient Greek concept of δαίμον, being a transliteration of it, and refers to essentially an independent god, a powerful actor among many with its own will, predilections and abilities.
Wow why have I not used this previously? Thanks Dave.
Learning stuff I didn’t know I needed to! Thanks!!
Ok. I found this interesting and entertaining…. Actually loved it. Thank you
would love a deep dive into what makes docker work in the first place
That would be great. I'm still rather clueless as to what's actually going on with these things. VMs are conceptually easy to understand. Containers not.
@@robby3467 Basically Containers are in simplistic terms like VMs but stripped to the bare bone without needing a complete hardware/OS layer to be emulated as well.
More lightweight, easier to scale.
Awesome Dave. Love the terminal emulation.
Rented myself a vps to have fun with docker. Petty neat technology, particularly used with docker-compose to create complete configuration with special communication channel. Lots of fun!
ive been using premade dockers for about a year but this explanation gave me a much better picture. id love too see more docker + LED as im trying to learn both lol
Thank you, that's on my projects list for my NAS.
Your voice... Good for the radio ... a new doctor Frasier Crane!
Great video.
As a PenTester, ill just add that Docker containers are isolated for the most part, but 'container breakout' is a thing. As an example, if i manage to exploit a webserver hosted on a container, exploit code execution and establish a reverse shell on the container, it is possible to talk to the host OS.
of course but so is breakout of VMs(known as VM escape) any kind of such system(sandboxing or shall we say logical partitioning) will potentailly have breakout posibility which is why you need to on host do security like not running as root give user as little privileges and so on
@@bigpod Yeah. Privilege escalation is a whole thing, too.
@@werdna_sir at the end of the day security is more of ensuring there are more nad more layers between them and what they want more then anything
Good luck without docker socket mounted into container
Your commands for building btop died in a fire, but I learned what I needed to. Thanks!
Daemon is a great "backronym" for Disk And Execution MONitor.
BTW, the book (and the following series) "Daemon" by Daniel Suarez is AWESOME!!
Loving the interlaced amber terminal screen…takes me back to DOS3.x days. Do you remember the old PC Tools apps 😃
Funnily enough amber is my preferred colour for a terminal screen; I also thought the interlacing was a nice touch, but I don’t think I’d like to use it in practice. My first PC monitor looked like that! I remember PC Tools. I think it was by Central Point software. Where I worked (late 80s early 90s), we installed it on every PC. It came in a massive package with a separate printed manual for each utility.
Thanks Dave, I have been wondering about this for ages.
+ 1 thumbs up. Thanks Dave. Love your work.
I was surprised to learn that Docker even sponsors videos :) I have used it all the time, but never paid anything for it. I guess they have enough enterprise users that normal users can go their whole lives without realizing Docker is a commercial product.
Hah I’ve just been working on a similar presentation on Docker. I’ve been really impressed by all the features packed into Docker desktop. A lot less command line debugging now.
This was great. I’d love to see you do something about performance testing in depth.
Daemon stands for Disk and Execution Monitor. It’s an application that’s monitoring execution and disk access and doing a particular job when it sees something, kind of like a TSR.
Docker! Docker! I've got a bad case of loving you.
Dave you're a master at taking something potentially dry like the benefits of containerized applications and making me laugh multiple times over the course of the video. Well done.
Thanks, I try :-)
I laughed so hard at the Forest Gump comment I literally had to pause the video.
Thanks. Another informative video from Dave.
Exactly the introduction that I needed. Thanks!
The term “daemon” in Unix systems was inspired by Maxwell’s demon, an imaginary being from a famous thought experiment. This demon constantly works in the background, sorting molecules. Unix developers adopted this term to describe background processes that perform system chores1. These daemons silently monitor and maintain subsystems to ensure the operating system runs smoothly
It is spelled Daemon, pronounced "DAY-Mon" It is the angelic counterpart to an evil demon pronounced "DEE-mon"... but some people don't know how to read or pronounce it, and just started calling them demons and we're stuck with it ever since. I guess a demon would be a badly formatted Crowd Strike file... Ooh... Too soon??
I also did a Google query and got this: The term "daemon" was coined in 1963 by MIT programmers from Project MAC. They chose the word because it accurately described a background process that works continuously to perform system chores. The word "daemon" comes from the Greek word daimon, which means "god" or "protective spirit".
Minor nit. For docker run the -it argument is actually two separate args: -i to keep STDIN open, and -t to allocate a pseudo-TTY. Of course, I've never needed to use them individually but my OCD would want a multi-character arg to be --it, not -it!
Love your vids. So informative. Keep them up. Great work.
Excellent Content as Always ..!!! Thank You for sharing .. Cheers :)
Dave, it is “daemon.” A daemon is a guardian angel. The metaphor is that a background system process which keeps watch for things which need to be taken care of, for example the _lpd_ line printer daemon.
Internet search: In Greek mythology, a daemon was considered a supernatural being or power. The MIT programmers thought demon would be an appropriate name for a background process that worked tirelessly to perform system chores. But instead of using the term demon, they used daemon, which is an older form of the word.
Refinements: like demons you don't see them but can call out to them and they tend to have huge powers. (because they run as the "super user" named root) In Windows it either depends on a VM running Linux that in turn runs the containers, or WSL.
@@BertLaverman Note that daemons need not run as root. It's a quite normal program that has detached from the console. The huge majority of daemons really should not run as root. So a web server would normally run as a custom web user, to limit the machine accesses if it ever gets hacked.
Reminds me of the "His Dark Materials" series, I remember it was called - the one with the Golden Compass.
"There are four main words at play here: spirit, ghost, daemon, and demon. The essential difference between a "daemon" and a "demon" is that a daemon is any spirit, good or bad, including the spirit of a living human, while a demon is exclusively a bad spirit."
@@CnCDune Also reminds me of The Bartimaeus Sequence
I don't program, but i know you and your many fans are intelligent! Thanks
Daemon came from ancient Greece. Essentially like a muse. The voice of inspiration if you like. Similar to a process sitting in the background guiding activity in computing.
Tk U for sharing, giving Docker a try.
In this interesting history, which is the actual description of the origin of this use from Professor Corbato, he explains that daemon originally had the connotation of "an attendant ... or indwelling spirit" and that:
By the late 16th century, the general supernatural meaning was being distinguished with the spelling daemon, while the evil meaning remained with demon.
He goes on to share the story of Maxwell's daemon. Maxwell was a 19th century scientist who'd posed a physics problem in which a tiny daemon was the attendant at a gate between two chambers that was large enough for a single molecule to enter. The daemon observed the molecules and chose which ones to allow to pass through the gate.
So now we come to the crux of it. We have established a daemon as an attendant, and a scientist used a hypothetical daemon in a famous problem in which the daemon's job was to monitor molecular movement. Professor Corbato wraps up his explanation with
As you probably know, the "system processes" called daemons monitor other tasks and perform predetermined actions depending on their behavior. This is so reminiscent of Maxwell's daemon watching his molecules that we can only assume that whoever dubbed these "system processes" had Maxwell's daemon in mind.
The history also notes that Professor Saltzer, who also worked on Project MAC with Professor Corbato at the time "daemon" came into use for this purpose, confirms that this is the origin of daemon as it is used in computing.
very interesting. I finally understand what docker is and does. Thank you for the clear explanation.
Can you tell me about your terminal. I love the vintage look.
Docker is so freaking awesome. Containers have saved me and my teams so often.
And yet it’s a workaround for a bigger problem. And that is that we don’t have good software anymore that just is a single binary application with single directory anymore.
It’s all shit these days. Dozens of scripts files, stupid web layers, database servers that could just be a database file or an even a tekst file.
Well done! More tutorials, please! You explain very well!
I was always just under the assumption that daemon was an acronym of Disk And Execution Monitor. Something that just sits and waits for something to happen and acts on it. I didn't think there was anything deeper than that.
Thank you for Excellent intro and foreseeable project ideas, thinking of applying to IoT projects.
And now i really need video about your terminal, please)
Excellent video
A billion other commentors have given the origin, but the pronounciation for a computer daemon is also DAY-MON, not the modern DEE-MON.
The term dæmon originally stood for an abbreviation of, 'Disk And Executive MONitor', coming from Project Mac on the IBM 7094.
I knew somebody knew .. Thnx :)
I love running things in docker. the best part, is when you don't want it running, you turn it off... for instance, I have my MSSQL running in docker, but when I am gaming, and need the extra little resources, I can turn off docker, and don't get stuck with things running in the background. I also have a minecraft server for my kids in docker, so when they want to play, I turn it on, then turn it off when not needed.
Two questions:
What is the performance overhead of running code in a docker container vs on bare metal?
What security concerns are there downloading/running containers from unknown sources? Are there steps that should be taken to minimize potential configuration backdoors in containers?
Was that three questions... I've never been very good at math.
As a sysadmin docker is mostly a pain in my environment. The main problem I always have with it is that I usually patch all my systems regularly to make sure they are free from known security bugs. Either via apt or ansible for mass updating. Some systems even on unattended upgrades. Now the devs deploy docker images with old webservers, php, libraries and so on and I have no chance of fixing any of these bugs, because I'm not able to update their images. So since docker became a thing, my servers became more insecure. Having devs in charge of security never worked for me.
Whenever I am trying to compile a C++ program that has a multi page compilation instructions I think there should be a docker container that documents the build environment. Sometimes you follow the instructions and things are still missing that you need to build successfully.
This is very interesting. I want to run Stars! by Jeff Johnson and Jeff McBride. I will have to look into this.
Thanks Dave