|
1 | 1 | { |
2 | | - "cells": [ |
3 | | - { |
4 | | - "cell_type": "markdown", |
5 | | - "metadata": {}, |
6 | | - "source": [ |
7 | | - "# Containers Primer\n", |
8 | | - "\n", |
9 | | - "[](https://nbviewer.jupyter.org/github/AIResearchLab/foundations-of-robotics-labs/blob/master/0-primers/01-python-primer.ipynb)\n", |
10 | | - "[](https://mybinder.org/v2/gh/AIResearchLab/foundations-of-robotics-labs/master?filepath=0-primers/04-containers-primer.ipynb)\n", |
11 | | - "\n", |
12 | | - "The purpose of this notebook is to introduce you to the concept of containers and how to use them. Containers are a way to package code and its dependencies together. This allows you to run code in a consistent environment, regardless of what machine you are running it on. This is especially useful when you are working in a team, as it allows you to ensure that everyone is running the same code in the same environment." |
13 | | - ] |
14 | | - }, |
15 | | - { |
16 | | - "cell_type": "markdown", |
17 | | - "metadata": {}, |
18 | | - "source": [ |
19 | | - "## What is a container?\n", |
20 | | - "\n", |
21 | | - "A [container](https://en.wikipedia.org/wiki/OS-level_virtualization) is a way to package code and its dependencies together. It is like a small virtual computer that you can run on your computer. It is similar to a [virtual machine](https://en.wikipedia.org/wiki/Virtual_machine), but it is much more lightweight. It is also similar to a python virtual environment, but it can be used for any programming language." |
22 | | - ] |
23 | | - }, |
24 | | - { |
25 | | - "cell_type": "markdown", |
26 | | - "metadata": {}, |
27 | | - "source": [ |
28 | | - "## Why use containers?\n", |
29 | | - "\n", |
30 | | - "Containers are used for several reasons:\n", |
31 | | - "\n", |
32 | | - "1. **Consistency**: Containers allow you to run code in a consistent environment, regardless of the machine you're running it on. This is particularly useful in team settings, ensuring everyone is running the same code in the same environment.\n", |
33 | | - "\n", |
34 | | - "2. **Isolation**: Containers allow you to run code in an isolated environment. This means you can run code without worrying about it affecting other code on your machine.\n", |
35 | | - "\n", |
36 | | - "3. **Security**: Containers allow you to run code in a secure environment, providing an additional layer of protection against malicious code affecting your machine.\n", |
37 | | - "\n", |
38 | | - "4. **Portability**: Containers allow you to run code in a portable environment. This means you can run code on your machine, and then easily move it to another machine without having to worry about installing dependencies.\n", |
39 | | - "\n", |
40 | | - "### Why use containers in robotics?\n", |
41 | | - "\n", |
42 | | - "In robotics development, we often have to deal with a lot of dependencies. For example, we may have to install ROS, OpenCV, and other libraries. We may also have to install drivers for our sensors and actuators. This can be a lot of work, and it can be difficult to ensure that the computer onboard a robot has the same environment as the computer we are developing on. Containers allow us to package all of these dependencies together, and run them in a consistent environment. " |
43 | | - ] |
44 | | - }, |
45 | | - { |
46 | | - "cell_type": "markdown", |
47 | | - "metadata": {}, |
48 | | - "source": [ |
49 | | - "## Docker\n", |
50 | | - "\n", |
51 | | - "[Docker](<https://www.docker.com/>) is a tool for creating and managing containers. It is one of the most popular containerization tools. It is popular in the robotics community and helps in the development of ROS applications. It is the container tool that we will be using in this course. Docker is available for Windows, Mac, and Linux." |
52 | | - ] |
53 | | - } |
54 | | - ], |
55 | | - "metadata": { |
56 | | - "kernelspec": { |
57 | | - "display_name": "Python 3 (ipykernel)", |
58 | | - "language": "python", |
59 | | - "name": "python3" |
60 | | - }, |
61 | | - "language_info": { |
62 | | - "codemirror_mode": { |
63 | | - "name": "ipython", |
64 | | - "version": 3 |
65 | | - }, |
66 | | - "file_extension": ".py", |
67 | | - "mimetype": "text/x-python", |
68 | | - "name": "python", |
69 | | - "nbconvert_exporter": "python", |
70 | | - "pygments_lexer": "ipython3", |
71 | | - "version": "3.8.10" |
72 | | - } |
73 | | - }, |
74 | | - "nbformat": 4, |
75 | | - "nbformat_minor": 4 |
| 2 | + "cells": [ |
| 3 | + { |
| 4 | + "cell_type": "markdown", |
| 5 | + "metadata": {}, |
| 6 | + "source": [ |
| 7 | + "# Containers Primer\n", |
| 8 | + "\n", |
| 9 | + "[](https://nbviewer.jupyter.org/github/CollaborativeRoboticsLab/foundations-of-robotics-labs/blob/master/0-primers/04-containers-primer.ipynb)\n", |
| 10 | + "[](https://mybinder.org/v2/gh/CollaborativeRoboticsLab/foundations-of-robotics-labs/master?filepath=0-primers/04-containers-primer.ipynb)\n", |
| 11 | + "\n", |
| 12 | + "The purpose of this notebook is to introduce you to the concept of containers and how to use them. Containers are a way to package code and its dependencies together. This allows you to run code in a consistent environment, regardless of what machine you are running it on. This is especially useful when you are working in a team, as it allows you to ensure that everyone is running the same code in the same environment." |
| 13 | + ] |
| 14 | + }, |
| 15 | + { |
| 16 | + "cell_type": "markdown", |
| 17 | + "metadata": {}, |
| 18 | + "source": [ |
| 19 | + "## What is a container?\n", |
| 20 | + "\n", |
| 21 | + "A [container](https://en.wikipedia.org/wiki/OS-level_virtualization) is a way to package code and its dependencies together. It is like a small virtual computer that you can run on your computer. It is similar to a [virtual machine](https://en.wikipedia.org/wiki/Virtual_machine), but it is much more lightweight. It is also similar to a python virtual environment, but it can be used for any programming language." |
| 22 | + ] |
| 23 | + }, |
| 24 | + { |
| 25 | + "cell_type": "markdown", |
| 26 | + "metadata": {}, |
| 27 | + "source": [ |
| 28 | + "## Why use containers?\n", |
| 29 | + "\n", |
| 30 | + "Containers are used for several reasons:\n", |
| 31 | + "\n", |
| 32 | + "1. **Consistency**: Containers allow you to run code in a consistent environment, regardless of the machine you're running it on. This is particularly useful in team settings, ensuring everyone is running the same code in the same environment.\n", |
| 33 | + "\n", |
| 34 | + "2. **Isolation**: Containers allow you to run code in an isolated environment. This means you can run code without worrying about it affecting other code on your machine.\n", |
| 35 | + "\n", |
| 36 | + "3. **Security**: Containers allow you to run code in a secure environment, providing an additional layer of protection against malicious code affecting your machine.\n", |
| 37 | + "\n", |
| 38 | + "4. **Portability**: Containers allow you to run code in a portable environment. This means you can run code on your machine, and then easily move it to another machine without having to worry about installing dependencies.\n", |
| 39 | + "\n", |
| 40 | + "### Why use containers in robotics?\n", |
| 41 | + "\n", |
| 42 | + "In robotics development, we often have to deal with a lot of dependencies. For example, we may have to install ROS, OpenCV, and other libraries. We may also have to install drivers for our sensors and actuators. This can be a lot of work, and it can be difficult to ensure that the computer onboard a robot has the same environment as the computer we are developing on. Containers allow us to package all of these dependencies together, and run them in a consistent environment. " |
| 43 | + ] |
| 44 | + }, |
| 45 | + { |
| 46 | + "cell_type": "markdown", |
| 47 | + "metadata": {}, |
| 48 | + "source": [ |
| 49 | + "## Docker\n", |
| 50 | + "\n", |
| 51 | + "[Docker](<https://www.docker.com/>) is a tool for creating and managing containers. It is one of the most popular containerization tools. It is popular in the robotics community and helps in the development of ROS applications. It is the container tool that we will be using in this course. Docker is available for Windows, Mac, and Linux." |
| 52 | + ] |
| 53 | + } |
| 54 | + ], |
| 55 | + "metadata": { |
| 56 | + "kernelspec": { |
| 57 | + "display_name": "Python 3 (ipykernel)", |
| 58 | + "language": "python", |
| 59 | + "name": "python3" |
| 60 | + }, |
| 61 | + "language_info": { |
| 62 | + "codemirror_mode": { |
| 63 | + "name": "ipython", |
| 64 | + "version": 3 |
| 65 | + }, |
| 66 | + "file_extension": ".py", |
| 67 | + "mimetype": "text/x-python", |
| 68 | + "name": "python", |
| 69 | + "nbconvert_exporter": "python", |
| 70 | + "pygments_lexer": "ipython3", |
| 71 | + "version": "3.8.10" |
| 72 | + } |
| 73 | + }, |
| 74 | + "nbformat": 4, |
| 75 | + "nbformat_minor": 4 |
76 | 76 | } |
0 commit comments