🐳 A tour that walks through the fundamentals of Docker. Learn Docker by doing it.
Go to Container Immersion.
Or, skip ahead to the Table of Contents.
Container Immersion is a Docker tutorial website built with Jekyll and hosted on Github Pages. This repository contains the source files for the website. If you want to use container immersion to learn Docker, visit the site at the links above. You only need to checkout the code in this repository if you want to contribute to the project by modifying or improving the website.
Many years ago, when Git was a relatively new technology, I used Git Immersion to learn how to use it. Git Immersion is based on the premise that the best way to learn a new technology is by immersing yourself in it and using it.
I found Git Immersion such an effective tool for learning Git that I was inspired to create a similar tutorial for Docker. I hope that Container Immersion can be as effective for others as I found Git Immersion to be for me.
- Clone the repository.
git clone git@github.com:mkasberg/container-immersion.git
- You need to have Ruby installed. I use rbenv.
- Make sure Bundler is installed.
gem install bundler
- Install Jekyll & dependencies.
cd container-immersion && bundle install
- You may need some native dependencies installed to build the Ruby
dependencies. On Ubuntu:
sudo apt install build-essential zlib1g-dev
- You may need some native dependencies installed to build the Ruby
dependencies. On Ubuntu:
- Run the site.
bundle exec jekyll serve
. You can visit the site at http://localhost:4000/container-immersion/. Essentially, this is just Jekyll. So read the Jekyll docs if you get stuck.
Container Immersion if built on top of Jekyll, a static
site generator. When you run bundle exec jekyll serve
, Jekyll will watch for
changes and continue regenerating the site and serving it from _site
until you
hit ^C
. Don't edit the files in _site
directly, since they are just
generated files.
- HTML layouts are at
_layouts
. We have a layout for the homepage, table of contents, and the lab pages. - These layouts can include HTML snippets from
_includes
(like the nav bar). - CSS is at
assets/css/immersion.scss
. - Each lab is a Markdown file at
_labs
. Jekyll converts it to a page using thelab.html
layout.
This project will get much better with more people contributing to it. Please contribute by opening issues to document problems or submitting pull requests to fix them. All improvements are welcome and appreciated.
See CONTRIBUTING for more info.