-
Notifications
You must be signed in to change notification settings - Fork 31
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
80ad815
commit 0496c81
Showing
10 changed files
with
423 additions
and
11 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,150 @@ | ||
# Docker и Docker Compose | ||
|
||
## Дорожная карта (roadmap) изучения [Docker](https://docs.docker.com/desktop/) и [Docker Compose](https://docs.docker.com/compose/) | ||
|
||
[<img src="../../res/docker/docker.svg" alt="docker" width="300">](https://docs.docker.com/) | ||
|
||
### С чего начать ### | ||
|
||
- [Официальный сайт](https://www.docker.com/) | ||
- [Официальная документация](https://docs.docker.com/) | ||
- [Docker Hub](https://hub.docker.com/) | ||
|
||
<!-- --> | ||
|
||
- [Установка на Linux](install_linux.md) | ||
- [Установка на Mac](install_mac.md) | ||
- [Установка на Windows](install_win.md) | ||
--- | ||
|
||
### Что это и зачем? | ||
|
||
> – Лариска, объясни простыми словами для совсем новичков, что такое Docker? | ||
> | ||
> – Docker - это технология, позволяющая упаковывать приложения и их зависимости в изолированные контейнеры, которые можно запускать на любой операционной системе. Таким образом, приложения могут работать одинаково на любых серверах, не требуя дополнительной настройки, или установки зависимостей на каждом из них. | ||
Docker - это платформа, позволяющая универсальным способом упаковать в контейнер приложение вместе с нужными ему окружением и зависимостями, а затем доставить и запустить его на целевой системе. Запустить на любой целевой системе, с любой ОС, независимо от того, какое окружение присутствует, или отсутствует в этой системе, так как всё необходимое для запуска и работы приложения уже упаковано внутри контейнера. | ||
|
||
Единственное необходимое условие - на целевой системе должна быть установлена платформа Docker. | ||
|
||
Таким образом получается, что на целевой системе с установленной платформой Docker можно внутри этой платформы располагать разнообразные контейнеры. В каждом контейнере содержится нужная ОС с установленным в неё приложением и необходимыми ему зависимостями. | ||
|
||
Приложения, упакованные в контейнеры, изолируются от целевой операционной системы и от других подобных контейнеров. Поэтому можно не задумываться, в каком окружении они будут работать и единообразно запускать и останавливать их простыми универсальными консольными командами, не заботясь о системных зависимостях. | ||
|
||
### Статьи для новичков | ||
|
||
- [Изучаем Docker, часть 1: основы](https://habr.com/ru/company/ruvds/blog/438796/) (Ru) | ||
- [Изучаем Docker, часть 2: термины и концепции](https://habr.com/ru/company/ruvds/blog/439978/) (Ru) | ||
- [Руководство по Docker Compose для начинающих](https://habr.com/ru/company/ruvds/blog/450312/) (Ru) | ||
|
||
<!-- --> | ||
|
||
- [Начала Docker для юнги](https://habr.com/ru/post/651813/) (Ru) | ||
- [Docker (Докер) для чайников](https://wiki.dieg.info/docker) (Ru) | ||
- [Использование Docker для чайников](https://losst.pro/ispolzovanie-docker-dlya-chajnikov) (Ru) | ||
- [Освоение контейнера Docker для чайников: теоретическое и практическое руководство](https://codernet.ru/articles/drugoe/osvoenie_kontejnera_docker_dlya_chajnikov_teoreticheskoe_i_prakticheskoe_rukovodstvo/) (Ru) | ||
- [Что такое Docker простыми словами](https://blog.vverh.digital/2021/chto-takoe-docker-what-is-it/) (Ru) | ||
- [Простыми словами про Docker](https://goodbit.dev/blog/prostymi-slovami-pro-docker) (Ru) | ||
- [Docker. Начало](https://habr.com/ru/post/353238/) (Ru) | ||
|
||
--- | ||
|
||
### Шпаргалки и шаблоны | ||
|
||
- [Awesome Docker](https://github.com/veggiemonk/awesome-docker) (En) | ||
- [Awesome Compose](https://github.com/docker/awesome-compose) (En) | ||
- [Docker Cheat Sheet](https://gist.github.com/Aleksey-Voko/50f3631386514e340fca7c416f21ab9f) | ||
- [MySQL на базе docker-compose](https://github.com/LessonDump/DockerMySQL) | ||
- [Postgresql на базе docker-compose](https://github.com/LessonDump/DockerPostgres) | ||
- [Postgresql + PgAdmin на базе docker-compose](https://github.com/LessonDump/DockerPostgresPgAdmin) | ||
- [MySQL + Adminer на базе docker-compose](https://github.com/LessonDump/DockerMySqlAdminer) | ||
- [Простой шаблон Telegram-бота на основе docker-compose](https://github.com/LessonDump/TelegramBotDockerTmpl) | ||
|
||
--- | ||
|
||
### Курсы | ||
|
||
- [Docker для начинающих + практический опыт](https://stepik.org/course/123300/info) (Ru) | ||
- [DOCKER С НУЛЯ. БЕСПЛАТНЫЙ КУРС](https://karpov.courses/docker) (Ru) | ||
- [Docker для начинающих](https://stepik.org/course/74010/info) (Ru) | ||
|
||
--- | ||
|
||
### Учебники | ||
|
||
[<img src="https://dmkpress.com/images/cms/thumbs/a5b0aeaa3fa7d6e58d75710c18673bd7ec6d5f6d/978-5-97060-426-7_270_369_jpg__100.jpg" alt="dmkpress" height="200">](https://dmkpress.com/catalog/computer/os/978-5-97060-426-7/) | ||
| ||
[<img src="https://dmkpress.com/images/cms/thumbs/a5b0aeaa3fa7d6e58d75710c18673bd7ec6d5f6d/978-5-97060-772-5_270_369_jpg__100.jpg" alt="dmkpress" height="200">](https://dmkpress.com/catalog/computer/os/978-5-97060-772-5/) | ||
| ||
[<img src="https://img3.labirint.ru/rc/94e41f1785903d9c2d3eb3d27a610631/363x561q80/books70/691503/cover.jpg?1555594011" alt="labirint" height="200">](https://www.labirint.ru/books/691503/) | ||
| ||
[<img src="https://learning.oreilly.com/library/cover/9781800565135/250w/" alt="oreilly" height="200">](https://www.oreilly.com/library/view/docker-deep-dive/9781800565135/) | ||
| ||
[<img src="https://media.springernature.com/w600/springer-static/cover-hires/book/978-1-4842-7815-4" alt="springernature" height="200">](https://link.springer.com/book/10.1007/978-1-4842-7815-4) | ||
|
||
[<img src="https://learning.oreilly.com/library/cover/9780988820203/250w/" alt="oreilly" height="200">](https://www.oreilly.com/library/view/the-docker-book/9780988820203/) | ||
| ||
[<img src="https://content.packt.com/B11211/cover_image_small.png" alt="packt" height="200">](https://www.packtpub.com/product/docker-quick-start-guide/9781789347326) | ||
| ||
[<img src="https://media.springernature.com/w600/springer-static/cover-hires/book/978-1-4842-8117-8" alt="springernature" height="200">](https://link.springer.com/book/10.1007/978-1-4842-8117-8) | ||
| ||
[<img src="https://content.packt.com/B18778/cover_image_small.jpg" alt="packt" height="200">](https://www.packtpub.com/product/a-developers-essential-guide-to-docker-compose/9781803234366) | ||
| ||
[<img src="https://d2sofvawe08yqg.cloudfront.net/understanding-docker-visual-way/s_hero?1675200003" alt="leanpub" height="200">](https://leanpub.com/understanding-docker-visual-way) | ||
|
||
[<img src="https://content.packt.com/B14865/cover_image_small.png" alt="packt" height="200">](https://www.packtpub.com/product/learn-docker-fundamentals-of-docker-19x-second-edition/9781838827472) | ||
| ||
[<img src="https://drek4537l1klr.cloudfront.net/stoneman/Figures/cover.jpg" alt="manning" height="200">](https://www.manning.com/books/learn-docker-in-a-month-of-lunches) | ||
|
||
--- | ||
|
||
### Руководства | ||
|
||
- [Docker Getting Started Tutorial](https://github.com/docker/getting-started) (En) | ||
- [Введение в Docker: образы, контейнеры и докер-файлы](https://1cloud.ru/blog/docker_start) (Ru) | ||
- [Полное практическое руководство по Docker: с нуля до кластера на AWS](https://habr.com/ru/post/310460/) (Ru) | ||
- [Докер Учебник](https://coderlessons.com/tutorials/noveishie-tekhnologii/uchitsia-doker/doker-uchebnik) (Ru) | ||
- [Продвинутая работа с Docker — Docker-compose](https://1cloud.ru/blog/docker-compose) (Ru) | ||
- [Гайд по Docker: что это такое, зачем его использовать и как с ним работать](https://ru.hexlet.io/blog/posts/gid-docker) (Ru) | ||
- [Развертывание нескольких контейнеров с помощью Docker Compose](https://learn.microsoft.com/ru-ru/azure/cognitive-services/containers/docker-compose-recipe) (Ru) | ||
- [Как оркестровать микросервисы с помощью Docker Compose](https://vk.com/@nuancesprog-kak-orkestrovat-mikroservisy-s-pomoschu-docker-compose?t2fs=79a4e28b10177b8413_3) (Ru) | ||
- [Что такое Docker](https://doka.guide/tools/docker/) (Ru) | ||
- [Мультиконтейнерное приложение и Docker Compose](https://doka.guide/tools/docker-compose/) (Ru) | ||
- [Что такое Docker: краткий экскурс в историю и основные абстракции](https://habr.com/ru/company/southbridge/blog/515508/) (Ru) | ||
- [Лабораторная работа: введение в Docker с нуля. Ваш первый микросервис](https://habr.com/ru/post/346634/) (Ru) | ||
- [Docker: практическое руководство для начинающих](https://techrocks.ru/2019/04/19/docker-guide-for-beginners/) (Ru) | ||
- [Docker: что это и как используется в разработке](https://tproger.ru/articles/chto-takoje-docker/) (Ru) | ||
- [Основы контейнеризации (обзор Docker и Podman)](https://habr.com/ru/post/659049/) (Ru) | ||
|
||
--- | ||
|
||
### Видео уроки ### | ||
|
||
[![Основы Docker. Большой практический выпуск](http://img.youtube.com/vi/QF4ZF857m44/0.jpg)](https://www.youtube.com/watch?v=QF4ZF857m44) | ||
[Основы Docker. Большой практический выпуск](https://www.youtube.com/watch?v=QjT4HuF9gJs) от **Артема Матяшова** | ||
|
||
[![Что такое docker за 200 секунд](http://img.youtube.com/vi/HqhgsmThmwA/0.jpg)](https://www.youtube.com/watch?v=HqhgsmThmwA) | ||
[Что такое docker за 200 секунд](https://www.youtube.com/watch?v=HqhgsmThmwA) от **The Art of Development** | ||
|
||
[![Docker для Начинающих - Полный Курс](http://img.youtube.com/vi/n9uCgUzfeRQ/0.jpg)](https://www.youtube.com/watch?v=n9uCgUzfeRQ) | ||
[Docker для Начинающих - Полный Курс](https://www.youtube.com/watch?v=n9uCgUzfeRQ) от **Владилена Минина** | ||
|
||
[![Плейлист Docker](http://img.youtube.com/vi/Sa7uOGczoHc/0.jpg)](https://www.youtube.com/watch?v=Sa7uOGczoHc&list=PLU2ftbIeotGoGFC_2lj-OplT_cItXfu48) | ||
[Плейлист Docker](https://www.youtube.com/watch?v=Sa7uOGczoHc&list=PLU2ftbIeotGoGFC_2lj-OplT_cItXfu48) от **letsCode** | ||
|
||
--- | ||
|
||
### Полезности ### | ||
|
||
- [Docker Best Practices for Python Developers](https://testdriven.io/blog/docker-best-practices/#dockerfiles) (En) | ||
- [The best Docker base image for your Python application](https://pythonspeed.com/articles/base-image-python-docker-images/) (En) | ||
- [Using Alpine can make Python Docker builds 50× slower](https://pythonspeed.com/articles/alpine-docker-python/) (En) | ||
- [Как устроен Docker и почему он популярен](https://cloud.yandex.ru/blog/posts/2022/03/docker-containers) (Ru) | ||
- [ENTRYPOINT vs CMD: назад к основам](https://habr.com/ru/company/southbridge/blog/329138/) (Ru) | ||
- [50 вопросов по Docker, которые задают на собеседованиях, и ответы на них](https://habr.com/ru/company/southbridge/blog/528206/) (Ru) | ||
- [Первый опыт работы с Docker](https://habr.com/ru/post/663026/) (Ru) | ||
- [Docker на AWS]() (Ru) | ||
|
||
<!-- | ||
https://uzverss.livejournal.com/90619.html | ||
--> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,113 @@ | ||
# Инструкция по установке Docker на Linux | ||
|
||
◄ [Docker и Docker Compose](docker.md) | ||
|
||
В примере рассматривается установка Docker на самый распространенный дистрибутив Linux - `Ubuntu`. | ||
|
||
### Ссылки | ||
|
||
- [Install Docker Engine on Ubuntu](https://docs.docker.com/engine/install/ubuntu/) (En) | ||
- [Linux post-installation steps for Docker Engine](https://docs.docker.com/engine/install/linux-postinstall/) (En) | ||
- [Установка и использование Docker в Ubuntu 20.04](https://www.digitalocean.com/community/tutorials/how-to-install-and-use-docker-on-ubuntu-20-04-ru) (Ru) | ||
- [Install Docker Compose](https://docs.docker.com/compose/install/) (En) | ||
- [How To Install and Use Docker Compose on Ubuntu 20.04](https://www.digitalocean.com/community/tutorials/how-to-install-and-use-docker-compose-on-ubuntu-20-04) (En) | ||
|
||
### 1. Добавляем репозиторий Docker | ||
|
||
```bash | ||
$ sudo apt-get update | ||
``` | ||
|
||
```bash | ||
$ sudo apt-get install \ | ||
ca-certificates \ | ||
curl \ | ||
gnupg \ | ||
lsb-release -y | ||
``` | ||
|
||
```bash | ||
$ sudo mkdir -p /etc/apt/keyrings | ||
``` | ||
|
||
```bash | ||
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg | ||
``` | ||
|
||
```bash | ||
$ echo \ | ||
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \ | ||
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null | ||
``` | ||
|
||
### 2. Устанавливаем Docker | ||
|
||
```bash | ||
$ sudo apt-get update | ||
``` | ||
|
||
```bash | ||
$ sudo apt-get install docker-ce docker-ce-cli containerd.io -y | ||
``` | ||
|
||
### 3. Устанавливаем docker-compose | ||
|
||
```bash | ||
$ sudo curl -L "https://github.com/docker/compose/releases/download/v2.6.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose | ||
``` | ||
|
||
```bash | ||
$ sudo chmod +x /usr/local/bin/docker-compose | ||
``` | ||
|
||
### 4. Проверяем | ||
|
||
Должны работать следующие команды: | ||
|
||
```bash | ||
$ sudo docker -v | ||
Docker version 23.0.1, build a5ee5b1 | ||
``` | ||
|
||
```bash | ||
$ sudo docker ps | ||
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES | ||
``` | ||
|
||
```bash | ||
$ sudo docker images | ||
REPOSITORY TAG IMAGE ID CREATED SIZE | ||
``` | ||
|
||
```bash | ||
$ docker-compose -v | ||
docker-compose version 1.29.2, build unknown | ||
``` | ||
|
||
### 5. Запуск Docker без суперпользователя | ||
|
||
```bash | ||
$ sudo groupadd docker | ||
``` | ||
|
||
```bash | ||
$ sudo usermod -aG docker $USER | ||
``` | ||
|
||
Выходим из терминала и заходим обратно. | ||
|
||
И проверяем: | ||
|
||
```bash | ||
$ id -nG | ||
``` | ||
|
||
```bash | ||
$ docker ps | ||
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES | ||
``` | ||
|
||
```bash | ||
$ docker images | ||
REPOSITORY TAG IMAGE ID CREATED SIZE | ||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,60 @@ | ||
# Инструкция по установке Docker на Mac | ||
|
||
◄ [Docker и Docker Compose](docker.md) | ||
|
||
### Ссылки | ||
|
||
- [Install Docker Desktop on Mac](https://docs.docker.com/desktop/install/mac-install/) (En) | ||
|
||
Установка `Docker` и `docker-compose` на `Mac` сводится к установке `Docker Desktop` по инструкции из официальной документации. | ||
|
||
### 1. Устанавливаем Docker | ||
|
||
Переходим на сайт [документации](https://docs.docker.com/desktop/install/mac-install/) и жмём на одну из кнопок для скачивания установщика. | ||
[Docker Desktop for Mac with Intel chip](https://desktop.docker.com/mac/main/amd64/Docker.dmg?utm_source=docker&utm_medium=webreferral&utm_campaign=docs-driven-download-mac-amd64) | ||
или | ||
[Docker Desktop for Mac with Apple silicon](https://desktop.docker.com/mac/main/arm64/Docker.dmg?utm_source=docker&utm_medium=webreferral&utm_campaign=docs-driven-download-mac-arm64) | ||
|
||
Если не знаем, какой у нас процессор, проверить можно здесь: | ||
[Как понять, какой процессор у вашего Mac – Intel или Apple Silicon](https://it-here.ru/instruktsii/kak-ponyat-kakoj-protsessor-u-vashego-mac-intel-ili-apple-silicon/) | ||
|
||
После скачивания установщика запускаем его для установки `Docker Desktop`. | ||
|
||
После установки появится следующий экран: | ||
|
||
<img src="../../res/docker/privileged_access.png" alt="privileged access" width="600"> | ||
|
||
Нажимаем `OK` и `Accept`, после чего ждём, когда установится `Docker Desktop`. | ||
|
||
Если всё пройдет хорошо, то появится доступ к `Docker`! И следующий экран: | ||
|
||
<div><img src="../../res/docker/docker_starting.png" alt="docker starting" width="600"></div> | ||
<div><img src="../../res/docker/docker_starting_2.png" alt="docker starting 2" width="600"></div> | ||
|
||
Далее сверху справа жмём шестеренку и попадаем в настройки Docker. | ||
Переходим в раздел `Resources` -> `Advanced`. | ||
|
||
<img src="../../res/docker/resources_advanced.png" alt="resources advanced" width="600"> | ||
|
||
В этом разделе можно настроить доступные Docker ресурсы. Например, задать `Memory 4GB`. | ||
|
||
Отлично! Установленный `Docker Desktop` уже включает в себя как `Docker`, так и `docker-compose`. | ||
|
||
### 2. Проверяем | ||
|
||
Должны работать следующие команды: | ||
|
||
```bash | ||
$ docker -v | ||
Docker version 23.0.1, build a5ee5b1 | ||
``` | ||
|
||
```bash | ||
$ docker ps | ||
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES | ||
``` | ||
|
||
```bash | ||
$ docker-compose -v | ||
docker-compose version 1.29.2, build unknown | ||
``` |
Oops, something went wrong.