Giter VIP home page Giter VIP logo

container-immersion's Introduction

Container Immersion

๐Ÿณ 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.

About Container Immersion

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.

Setup Dev Environment

  1. Clone the repository. git clone [email protected]:mkasberg/container-immersion.git
  2. You need to have Ruby installed. I use rbenv.
  3. Make sure Bundler is installed. gem install bundler
  4. 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
  5. 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.

About Jekyll

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.

Project Structure

  • 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 the lab.html layout.

Contributing

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.

container-immersion's People

Contributors

agdhruv avatar daviddeejjames avatar dependabot[bot] avatar felipesousa avatar isaniomoraes avatar lawih avatar lukicenturi avatar mitchellcash avatar mkasberg avatar pkage avatar ringdangdoo avatar seanland avatar wildan3105 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

container-immersion's Issues

Create a Favicon for Container Immersion

Create a Favicon for the site.

The favicon should be called favicon.ico and live in the project root. If you're not familiar with favicons, you can read way more than you ever wanted to know about them here: https://github.com/audreyr/favicon-cheat-sheet. I don't care too much about larger icons for mobile - just a 16x16/32x32 favicon.ico would be sufficient for now. But feel free to add additional formats if you want.

I think some kind of whale would be appropriate, but you could get creative if you want. Also, since this will be an image, make sure you don't use anything that would violate someone's copyright. Using something from an existing icon set would be fine as long as it's licensed to be used in open source projects.

Responsive Improvements

Would love to help out on this project, few minor improvements I can see for in terms of responsive design.
For example, the 'Fork Me On Github' banner is great, but kinda covers the menu on mobile devices.

Just wondering if you intend this site to be viewable on mobile and tablet devices, and you would like me to help with a few small CSS tweaks in regards to this ๐Ÿ˜„

Increase TOC font size

The font size in the table of contents appears to small. We should make that a little bigger so it's easier to read. Perhaps also space out the items a little.

The TOC: https://mkasberg.github.io/container-immersion/toc.html

Tips

  • Since these are style changes, you should make them in assets/css/immersion.scss.
  • You may need to add a class to one of the divs in layouts/toc.html to apply your style specifically to the TOC without modifying other parts of the site.
  • Modifying other parts of the site (for example, make text slightly larger everywhere) is also acceptable as long as it looks good.

Homepage Font size and Footer

Make the font size slightly smaller on the homepage.

Also, position the site footer a little bit better.

Since these are styling changes, modification should be made in assets/css/immersion.scss.

Contribute to Container Immersion for Hacktoberfest 2017

You can help improve Container Immersion for Hacktoberfest 2017!

Ideas for contributing:

  • Minor improvements to existing labs. (Updated commands, additional tips, etc.)
  • Create a new lab (HTML page for Docker tutorial).
    • Consider any content that seems missing, but would be useful for beginners and fit at the same relative level of difficulty as the current labs.
  • Improve the Look & Feel of the site.
    • Keep it simple & don't take it in a completely new direction.
  • Fix minor bugs & typos.

Feel free to comment below if you want additional guidance or suggestions!

Main Page Logo Placement

An image has been uploaded to /assets/img/docker_front_page.png

Attempt to find a place on the index page.

Add a "terminal" CSS Class

Add a "terminal" css class to render fixed-width samples like a terminal.

The terminal style should have a black background with a bright green font.

Apply the terminal class in _labs/*.md where we are simulating a terminal (wrapped with ```). We should be able to do something like this to selectively apply the class: http://digitaldrummerj.me/styling-jekyll-markdown/

If possible, leave the class off items that are not supposed to be a terminal (like HTML samples).

Lab 03: Use Container Names

If we use a container name in lab03, we can eliminate the note about the different container ID for the user, making all the commands we run copy/paste-able. This will be a better experience for the learner, and we can still include a note about referring to containers by name or ID.

Missing `docker stop` around labs 5 & 6

Let's make the labs explicit about when containers should be stopped and started.

Perhaps more info near the first lab about how to overcome errors for already running containers.

Improve Look'n'Feel of Previous/Next Lab Links

Improve the look and feel of the previous/next links at the bottom of the labs:


screenshot from 2017-10-02 21-25-47


The links to the previous and next labs should be buttons. We're using Bootstrap (3.3.7), so let's use their buttons in the implementation: https://getbootstrap.com/docs/3.3/css/#buttons

Perhaps add a little margin/padding if necessary to make things look nice, and style the buttons a little to match the theme of the site.

Getting Started
The HTML for all labs is at _layouts/lab.html. The CSS comes from assets/css/immersion.scss.

Style Code Elements Differently

Right now, short code elements are red:

screenshot from 2017-10-16 21-35-38

Let's get rid of the red. Make them similar to Github style (seen here) (black text with background-color rgba(27,31,35,0.05)).

The best way to do this is probably to add some CSS for code elements in assets/_sass/_immersion.scss.

While we're at it, use Source Code Pro for the font there instead of whatever the default is now. You can get this font in the sass variable $pre-font.

Update Dependencies

Run bundle update to update our dependencies.

Note that Jekyll will stay at version 3.9 - I don't want to upgrade past 3.9 because I want to continue using the original version of GitHub Pages that supports Jekyll 3.

Add Window Header to Terminal Text

Jeykll's Terminals look really cool because they use a CSS ::before to apply a header. Let's do something like that to the terminal style used on Container Immersion. It's OK to more-or-less copy and paste theirs - it's open source, MIT licensed.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.