Question 1
Question
What is Docker? Select the BEST explanation.
Answer
-
Docker is software that enables applications to be bundled into a single package including all its dependencies, configuration and even the OS the application needs to run on. This makes applications highly portable and easy to scale horizontially.
-
Docker is software that enables developers to easily spin up and tear down light-weight virtual machines called "containers". Since these VM's include everything the application needs to run, it makes the app highly portable and easy to scale horizontally.
-
Docker is software that enables applications to be bundled into a single package including all its dependencies, configuration and even the OS the application needs to run on. A caveat of this is that the container requires Docker to run, so this reduces portability.
-
Docker is a container orchestration platform that aims to make the lives of dev/ops engineers easier when scaling distributed systems.
Question 2
Question
A container is a type of virtual machine.
Question 3
Question
A Docker container only stays alive for as long as there is a running process.
Question 4
Question
Which commands can be used to echo the words "Hello, world!" to the console through an Ubuntu Docker container? Select all that apply.
Answer
-
docker run -it ubuntu echo "Hello, world!"
-
docker run -i ubuntu echo "Hello, world!"
-
docker exec -it ubuntu echo "Hello, world!"
-
docker exec -i ubuntu echo "Hello, world!"
-
docker run ubuntu echo "Hello, world!"
Question 5
Question
The following command will fail without first pulling the image: `docker run ubuntu echo "Hello, world!"`
Question 6
Question
If you have a running container named "checker" you can see the logs of that container with `docker [blank_start]logs[blank_end] checker`
Question 7
Question
A Docker container's PID is namespaced to the container itself. This means PID:1 in container A is not the same as PID:1 in container B. Furthermore, the PIDs of A and B can't be seen from the host OS nor can the containers list PID belonging to the host.
Question 8
Question
A Docker container can have its PID's namespaced the host OS by adding the option [blank_start]--pid host[blank_end] when running the container.
Question 9
Question
Which flag allows one Docker container to talk to the other?
Answer
-
A Canadian flag.
-
--link <container_name>
-
--ref <container_name>
-
--join <container_name>
-
--pid <container_name>
Question 10
Question
Why is a Docker container lighter in terms of resources compared to virtual machine?
Answer
-
Docker only needs to create one small virtual machine on which multiple containers can be built using much less resources than creating multiple VM's. This is possible because Docker containers are capable of sharing the same Kernel whereas VM's require the entire OS.
-
Docker containers are light weight because they usually are intended run only one thing. This means they usually have far fewer process than a virtual machine which tends to have a heavier workload and thus are usually associated with the cost of higher resource usage.
-
It's a trick question. Docker containers are not necessarily any lighter on system resources than a virtual machine. The benefit of Docker isn't that containers are lighter than VM's it's just that they can be created more easily, which is what makes them so portable.
Question 11
Question
You can list running containers using the command: [blank_start]docker ps[blank_end]
Question 12
Question
You can list downloaded Docker images using the command: [blank_start]docker images ls[blank_end]
Question 13
Question
You can save the CID of a newly created container by running the command: docker create [blank_start]--cid-file[blank_end] /tmp/mycontainer.cid busybox
Question 14
Question
Explain the difference between using `docker run busybox` and `docker create busybox`
Answer
-
The `run` command is an alias to the pull and create commands. `create` won't work if you haven't pulled the image of the container you're trying to run first.
-
The `run` command creates the container if it doesn't exist already and then runs it. `create` is used to create a new container without running it right away.
-
`create` is not a Docker command.
Question 15
Question
Lets create a WordPress container with a read-only filesystem:
docker run -d [blank_start]--read-only[blank_end] --name wpress wordpress
Question 16
Question
Any given Docker container can be in one of four states. These states are named:
Answer
-
running
-
paused
-
restarting
-
exited
-
booted
-
down
-
suspended
-
up
-
pending
-
shutdown
Question 17
Question
The `--restart` option can be added at creation time to instruct Docker to restart the container. It has one of the four following:
- Do not restart at all (the default behaviour): `[blank_start]--restart no[blank_end]`
- Try to restart when a failure happens: `[blank_start]--restart on-failure[:max-retries][blank_end]`
- Always restart but not when the daemon starts if it was previously put to the stopped state: `[blank_start]--restart unless-stopped[blank_end]`
- Always restart when the container is down: `[blank_start]--restart always[blank_end]`
Answer
-
--restart no
-
--restart on-failure[:max-retries]
-
--restart unless-stopped
-
--restart always
-
--restart off
-
--restart none
-
--no-restart
-
--restart on-fail[:max-retries]
-
--restart on-failure[:max-attempts]
-
--restart only-if-stopped
-
--restart on-daemon-stopped
-
--restart yes
-
--restart on
Question 18
Question
If a Docker container was created with `--restart always` and took 1 second to restart the first time it failed, how long will Docker wait before attempts restarting the container after the second time it fails?
Question 19
Question
Docker Hub is the only Docker registry available for finding Docker images.
Question 20
Question
We want to pull a WordPress image down from the quay.io repository. Which choice accomplishes this?
Answer
-
Run the following:
docker remote add quay.io
docker use quay.io
docker pull nitros/wordpress
-
docker pull quay.io/nitros/wordpress
-
Both options will do the same thing.
-
Both options work but the `docker pull quay.io/nitros/wordpress` command will reset the remote back to Docker Hub after it pulls the image.
Question 21
Question
One advantage of Docker is that when you download an image it's only one file which is why it's usually so fast to download new images.
Question 22
Question
Internally Docker uses a union filesystem. One disadvantage of this is that you don't have support for extended file attributes. To get around this limitation you can use Docker Volumes.
Question 23
Question
What is the reason for using Volumes in Docker?
Answer
-
To create exceptions to the `--read-only` mode.
-
All of the above.
-
To add support for extended file attributes.
-
To sync source code on the host OS with the container so modifications to code don't require a container rebuild.
-
To gain access to persisted data such as data in a database.
Question 24
Question
Given a directory on your host OS at `/share` and a Docker container with a directory called `/app`, how would you run the container with a volume mount between `/share` and `/app` AND have it run with read-only enabled for the volume?
Like this: `docker run -it [blank_start]-v /share:/app:ro[blank_end]`