Docker 101 Tutorial
⚠️ This project is archived. The official "Getting Started" guide can be found at docker/getting-started.
This tutorial has been written with the intent of helping folks get up and running with containers. While not going too much into depth, it covers the following topics:
- Running your first container
- Building containers
- Learning what containers are running and removing them
- Using volumes to persist data
- Using bind mounts to support development
- Using container networking to support multi-container applications
- Using Docker Compose to simplify the definition and sharing of applications
- Using image layer caching to speed up builds and reduce push/pull size
- Using multi-stage builds to separate build-time and runtime dependencies
Getting Started
If you wish to run the tutorial, you can use the following command:
docker run -dp 80:80 dockersamples/101-tutorial
Once it has started, you can open your browser to http://localhost or port 80 if running on Play-with-Docker.
Development
This project has a docker-compose.yml
file, which will start the mkdocs application on your
local machine and help you see changes instantly.
docker-compose up
By default, the dev container will use the English version of the tutorial. If you wish to work on
a different version, modify the services.docs.build.args.LANGUAGE
value to the language you want
to work in. Note that the build will fail if the steps below (for new languages) haven't been
completed yet.
Contributing
If you find typos or other issues with the tutorial, feel free to create a PR and suggest fixes!
If you have ideas on how to make the tutorial better or new content, please open an issue first before working on your idea. While we love input, we want to keep the tutorial is scoped to new-comers. As such, we may reject ideas for more advanced requests and don't want you to lose any work you might have done. So, ask first and we'll gladly hear your thoughts!
Translating the Tutorial
If you wish to translate the tutorial into another language, you need to do the following:
- Copy the
docs_en
directory and rename it asdocs_[your-language-code]
. - Translate each of the directories.
- Translate all *.md files
- In the
mkdocs-config.json
, add a key foryour-language-code
and fill in the remaining pieces to configure the mkdocs build. - To test everything out, you can run the
build.sh
script, which will verify the config file, as well as build all languages.