Money and ethics is a match made in hell! Most business directories start for a good cause, but probably the pressure for revenue generation eventually leads to the corrosion of real good value that you get out of an honest business directory. Soon enough, only people who pay are listed on top, and as an end-user you lose. There is no harm in showing you the richest service provider. The real harm lies in the fact that you are not aware of the other alternatives, who could’ve done the job better, faster and probably cheaper, but they never got a chance.
What is the most resilient parasite? Bacteria? A virus? An intestinal worm? An idea. Resilient… highly contagious. Once an idea has taken hold of the brain it’s almost impossible to eradicate. An idea that is fully formed – fully understood – that sticks; right in there somewhere. – Cobb in the movie Inception.
Business directories are good! As a business owner or service provider, they help you in being discovered by your customers. The consumers and other businesses often search business directories to find services or products they need. Especially, if they are looking for an unusual product or service that you offer. Of late, the leading business directories have spun a business model where the ones paying most are favored. This often defeats the purpose of a business directory because the customers find it harder to locate the most economical and appropriate vendors.
Tagging an Image
In the previous post, you created an image. As discussed, you can view all images using…
$ docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE imrahulsoni/nginx-base latest 6507bc42ad5a 20 hours ago 155.7 MB
Notice the Tag. An easy way to do this, is to use the following command… notice that the build command now has a :0.1 attached to it as the tag.
What is Dockerfile?
You should be pretty comfortable using a Docker Image and creating Containers from it by now. But what if you want to create a custom image explicitly for your requirements?
Answer : Dockerfile!
And remember… Dockerfile != dockerfile != DockerFile. You get the idea.
Things to keep in mind about Containers
- You don’t boot a container. You start it.
- The containers run on a Docker host, which in turn runs on Linux.
- Docker containers are running instances of an Image as you learnt in the previous post.
- Learn $docker run command well, in order to work with containers.
- By default, once the command is executed the containers exit.
Hosted at github, the Docker engine is the core of all this goodness! The Docker engine (or daemon) is standardised so that it looks exactly the same regardless of which host you are running it at. This means that if your code is working well on your Docker Engine, it will continue to work across the board as far as the Docker Engine is same! That’s actually fantastic if you think about it closely.
So far, we have been playing around with Docker and learnt some random but important commands. Let’s dive a bit deeper and learn some basic concepts and start from what you have already installed… The Docker Toolbox! The toolbox contains the following.
The Virtual Box is used to host your Linux VM. The default VM is created automatically for you, and the Docker daemon is initialised and set up inside the VM. Your Host client talks to the daemon on the VM and returns the output to your terminal or client.
Let’s play around with Docker a bit.
Display Docker Information
Docker information command is useful and you should use it while discussing your issues with someone or may be asking questions on StackOverflow and the likes.
You can install Docker on Mac, Windows, Ubuntu, CentOS, and other supported platforms by following the respective installation guides. As mentioned earlier, because the Docker daemon uses Linux-specific kernel features, you can’t run Docker natively in Windows or OS X. Instead, you must use docker-machine to create and attach to a virtual machine (VM). This machine is a Linux VM that hosts Docker for you on your Mac or Windows.
For a Docker installation on Linux, your physical machine is both the localhost and the Docker host. In networking, localhost means your computer. The Docker host is the computer on which the containers run.
Containers provide you an isolated view of the file system and you can play around with your view of the container. Other containers on the same server won’t get affected at all. This helps the developers a lot, since in today’s open source world, the developers tend to work with different versions of different libraries and frameworks.
This also makes your deployment a breeze, since all you need to do now is to ensure that your software works in your container properly. If it works locally, it simply continues to work on any other Linux box, and this is a big, Big, BIG relief! “Works on my box” syndrome, is no longer true with a container backing you 😉