summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--docker.html.markdown58
1 files changed, 31 insertions, 27 deletions
diff --git a/docker.html.markdown b/docker.html.markdown
index ca81cc45..f69dbddb 100644
--- a/docker.html.markdown
+++ b/docker.html.markdown
@@ -69,20 +69,20 @@ in a limited capacity architecture.
</pre>
Couple of terms we will encounter frequently are Docker Images and Docker
-Containers. Images are packages or templates of containers all stored in the
-[Docker Hub](https://hub.docker.com/). Containers are standalone, executable
-instances of these images which include code, runtime, system tools, system
-libraries and settings - everything required to get the software up and running.
-Coming to Docker, it follows a client-server architecture wherein the CLI client
-communicates with the server component, which here is, the Docker Engine using
-RESTful API to issue commands.
+Containers. Images are packages or templates of containers all stored in a
+container registry such as [Docker Hub](https://hub.docker.com/). Containers
+are standalone, executable instances of these images which include code,
+runtime, system tools, system libraries and settings - everything required to
+get the software up and running. Coming to Docker, it follows a client-server
+architecture wherein the CLI client communicates with the server component,
+which here is, the Docker Engine using RESTful API to issue commands.
## The Docker CLI
```bash
# after installing Docker from https://docs.docker.com/get-docker/
# To list available commands, either run `docker` with no parameters or execute
# `docker help`
-$docker
+$ docker
>>> docker [OPTIONS] COMMAND [ARG...]
docker [ --help | -v | --version ]
@@ -107,15 +107,15 @@ $docker
attach Attach to a running container
# […]
-$docker run hello-world
+$ docker run hello-world
# `docker run <container-name>` is used to run a container, it will pull the
-# images from Docker Hub if they don't alrady exist on your system. Here the
+# images from Docker Hub if they don't already exist in your system. Here the
# docker client connects to the daemon which in turn pulls the "hello-world"
-# image from the Docker Hub. The daemon then creates a new container from the
+# image from the Docker Hub. The daemon then builds a new container from the
# image which runs the executable that produces the output streamed back to the
# client that we see on our terminals.
-$docker run -d ubuntu sleep 60s
+$ docker run -d ubuntu sleep 60s
# The -d (or --detach) flag is when we want to run a container in the background
# and return back to the terminal. Here we detach an ubuntu container from the
# terminal, the output should be the id and the command exits. If we check
@@ -123,19 +123,21 @@ $docker run -d ubuntu sleep 60s
# CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
# 133261b4894a ubuntu "sleep 60s" 3 seconds ago Up 2 seconds vigorous_gould
-$docker run <container-id> -p 3000:8000
+$ docker run <container-id> -p 3000:8000
# The -p (or --publish) flag is used to expose port 8000 inside the container to
# port 3000 outside the container. This is because the app inside the container
# runs in isolation, hence the port 8000 where the app runs is private to the
# container.
-$docker run -i or $docker run -it
+$ docker run -i
+# or
+$ docker run -it
# Docker runs our containers in a non-interactive mode i.e. they do not accept
# inputs or work dynamically while running. The -i flag keeps input open to the
# container, and the -t flag creates a pseudo-terminal that the shell can attach
# to (can be combined as -it)
-$docker ps -a
+$ docker ps -a
# The `docker ps` command only shows running containers by default. To see all
# containers, use the -a (or --all) flag
# Running the above command should output something similar in the terminal:
@@ -143,12 +145,14 @@ $docker ps -a
# 82f84bf6912b hello-world "/hello" 9 minutes ago Exited (0) 9 minutes ago eloquent_sammet
-$docker start hello-world or $docker stop hello-world
-# The stop command simply stops one or more containers, the start command starts
-# the conatainer(s) up again! `docker start -a ubuntu` will attach our detached
-# container back to the terminal i.e. runs in the foreground
+$ docker stop hello-world
+# or
+$ docker start hello-world
+# The stop command simply stops one or more containers, and the start command
+# starts the container(s) up again! `docker start -a ubuntu` will attach our
+# detached container back to the terminal i.e. runs in the foreground
-$docker create alpine
+$ docker create alpine
# `docker create` creates a new container for us with the image specified (here,
# alpine), the container does not auto-start unlike `docker run`. This command
# is used to set up a container configuration and then `docker start` to shoot
@@ -156,12 +160,12 @@ $docker create alpine
# CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
# 4c71c727c73d alpine "/bin/sh" 29 seconds ago Created naughty_ritchie
-$docker rm 82f84
+$ docker rm 82f84
# Removes one or more containers using their container ID.
# P.S.: we can use only the first few characters of the entire ID to identify
# containers
-$docker images
+$ docker images
# Displays all images and their information, created here means the latest image
# tag updated on Docker Hub:
# REPOSITORY TAG IMAGE ID CREATED SIZE
@@ -169,21 +173,21 @@ $docker images
# alpine latest 9c6f07244728 3 months ago 5.54MB
# hello-world latest feb5d9fea6a5 13 months ago 13.3kB
-$docker rmi
+$ docker rmi
# Removes one or more images from your system which do not have their instances
# (or containers as we know them) running. If the image has an attached
# container, either delete the container first or use the -f (or --force) flag
# to forcefully delete both the container and image.
-$docker pull busybox
+$ docker pull busybox
# The pull command downloads the specified image on our system from Docker Hub.
-$docker exec -it 7b272 bash
+$ docker exec -it 7b272 bash
# This command is used to run a command in the running container's default
# directory. Here 7b272 was our ubuntu container and the above command would
-# help us interact with the container by opening a bash session
+# help us interact with the container by opening a bash session.
-$docker compose
+$ docker compose
# More commands can be found at https://docs.docker.com/engine/reference/commandline/docker/
```