# Установка Docker

## С помощью готового скрипта (Быстрый способ)
```bash title="Быстрая установка"
curl -fsSL https://get.docker.com/ | sh
```

??? "Описание аргументов curl"
    - `-f`(`--fail`) - если произойдет ошибка, `curl` молча остановится, не передавая HTML-страницу с ошибкой в `sh`.
    - `-s`(`--silent`) - тихий режим. Не отображает индикатор прогресса.
    - `-S`(`--show-error`) - покажет ошибки, если они возникнут.
    - `-L`(`--location`) - следовать перенаправлениям (если ссылка изменилась).
    
!!!info "Примечание"
    - Убедитель, что в системе установлен пакет `curl`
    - Запускаете с повышенными правами с помощью `sudo`, если не используете **root**.
        - Убедитесь, что установлен `sudo` и парава на его использование.

!!!quote "Не большое замечание"
    Есть 2 варианта, как установить docker:

    1. Через пакетный менеджер с добавлением официального репозитория.
    2. C помощью готового скрипта.

    Здеcь показан второй вариант установки. Он более быстрый и я его использую на постоянной основе.    

---

## Выдача права управления пользователю

Как только установите, права на управление Docker будут только у **root**.

```bash title="Установка прав"
sudo usermod -aG docker $USER
```

- Замените **$USER**, если выдаете другому пользователю.
- Перезайдите, или используйте данную команду для немедленного применения.
```bash
newgrp docker
```

---

## Проверка
Запустим простой контейнер.
```bash
docker run hello-world
```

??? "Результат команды" 
    ```
    Unable to find image 'hello-world:latest' locally
    latest: Pulling from library/hello-world
    17eec7bbc9d7: Pull complete 
    Digest: sha256:d4aaab6242e0cace87e2ec17a2ed3d779d18fbfd03042ea58f2995626396a274
    Status: Downloaded newer image for hello-world:latest

    Hello from Docker!
    This message shows that your installation appears to be working correctly.

    To generate this message, Docker took the following steps:
    1. The Docker client contacted the Docker daemon.
    2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
        (amd64)
    3. The Docker daemon created a new container from that image which runs the
        executable that produces the output you are currently reading.
    4. The Docker daemon streamed that output to the Docker client, which sent it
        to your terminal.

    To try something more ambitious, you can run an Ubuntu container with:
    $ docker run -it ubuntu bash

    Share images, automate workflows, and more with a free Docker ID:
    https://hub.docker.com/

    For more examples and ideas, visit:
    https://docs.docker.com/get-started/
    ```

    **Описание к выводу**:

    - Первая строка показывает, что образ `hello-world` не найден локально.
    - Docker автоматически обращается к реестру (Docker Hub) и находит образ `library/hello-world`.
    - Затем он загружает образ, проверяет его контрольную сумму и сразу запускает контейнер.

---
## Ссылки

- [Официальный Сайт **Docker**](https://docker.com)
- [Официальный документации по установке **Docker**](https://docs.docker.com/engine/install/) - на английском

