Docker is a software container platform. Developers use Docker to eliminate “works on my machine” problems when collaborating on code with co-workers. Operators use Docker to run and manage apps side-by-side in isolated containers to get better compute density. Enterprises use Docker to build agile software delivery pipelines to ship new features faster, more securely and with confidence for both Linux and Windows Server apps
Images A docker images is the "cooking recipe" for a container. It contains all the definitions how to boot up the linux environment. Typically one Docker image is there to fulfill specifically one task. For instance one image would define your webserver and another image would define the underlying database.
Containers are the instantiations of images. They are one form of the image. Compare it to object oriented programming, then your class would be an image and instance of the class a container. Another comparison would be to real containers on ship. They have a unidbody from the outside, but can look very different from the inside. Some interesting facts about containers: containers are not persistent. As soon as you don't use them anymore they get stoped (or even deleted) a container only lives for the time a process runs inside it which does not get killed (of course you could run processess which never send an exit command) containers can include data however it's also not persistent. If you want to make it persistent, you can use volumes. to communicate between containers, use the same protocolls as you would use to communicate between computers (e.g. tcp/ip)
Docker comes with its own networking capabilities. The name of a container is its hostname. The easiest way to try this is to have two containers running and ping one container from inside the other container. Docker Compose will raise its own subnet.
Images A docker images is the "cooking recipe" for a container. It contains all the definitions how to boot up the linux environment. Typically one Docker image is there to fulfill specifically one task. For instance one image would define your webserver and another image would define the underlying database.
ContainersContainers are the instantiations of images. They are one form of the image. Compare it to object oriented programming, then your class would be an image and instance of the class a container. Another comparison would be to real containers on ship. They have a unidbody from the outside, but can look very different from the inside. Some interesting facts about containers: containers are not persistent. As soon as you don't use them anymore they get stoped (or even deleted) a container only lives for the time a process runs inside it which does not get killed (of course you could run processess which never send an exit command) containers can include data however it's also not persistent. If you want to make it persistent, you can use volumes. to communicate between containers, use the same protocolls as you would use to communicate between computers (e.g. tcp/ip)
The Apache HTTP Server.The Apache HTTP Server, colloquially called Apache, is a free and open-source cross-platform web server software, released under the terms of Apache License 2.0. Apache is developed and maintained by an open community of developers under the auspices of the Apache Software Foundation. The vast majority of Apache HTTP Server instances run on a Linux distribution, but current versions also run on Microsoft Windows, OpenVMS, and a wide variety of Unix-like systems. Past versions also ran on NetWare, OS/2 and other operating systems,[9] including ports to mainframes.[10]