Docker



Основные возможности

Оглавление


  • Терминология
  • Инсталляция
  • Основные команды
  • Работа с сетью
  • Образы и репозитории
  • Dockerfile
  • Docker-compose
  • Пример контейнеризации
  • Права пользователей

Терминология


  • Хост, Host - ОС / среда / компьютер, где запущен Docker
  • Контейнер, Container - процесс, содержащий работающий демон/сервер
  • Образ, Image - шаблон, сохранённый в файл, на основе которого создаётся экземпляр контейнера
  • Докерфайл, Dockerfile - набор инструкций в файле, по которым собирается образ

Терминология


  • Том, Volume - директория на хосте, смонтированная в контейнер, для сохранения данных
  • Композер, Docker-compose - утилита для запуска нескольких связанных контейнеров
  • Идентификатор, ID — хеш образа или контейнера

Инсталляция

  • Скачать и проинсталлировать:
    wget -qO- https://get.docker.com/ | sh
    
  • Добавить пользователя в группу docker:
    sudo usermod -aG docker $USER
    
  • Проверить, что Docker запущен::
    sudo systemctl status docker
    
  • Пустой список запущенных контейнеров:
    docker ps
    
  • Инсталляция

  • Проверить работоспособность Docker с тестовым образом:
    docker run hello-world
    
    Если получаем подобную ошибку:
    docker: Got permission denied while trying to connect to the Docker daemon socket at
    unix:///var/run/docker.sock:
    Post http://%2Fvar%2Frun%2Fdocker.sock/v1.39/containers/create:
    dial unix /var/run/docker.sock: connect: permission denied.
    
    То:
    1. Проверить доступность sudo для пользователя.
    2. sudo groupadd docker         -> есть ли группа?
    3. sudo gpasswd -a $USER docker -> добавить ещё так в группу
    4. newgrp docker      -> применить новые групповые настройки
    
  • Инсталляция

  • Инсталлировать через apt конкретную версию, например:
    sudo install docker-ce=17.09.1~ce-0~debian
    
  • Деинсталлировать через apt:
    apt remove docker-ce
    
  • Основные команды

  • Запущенные контейнеры:
    docker ps
    
  • И работающие, и остановленные контейнеры:
    docker ps -a
    
  • Размеры контейнеров:
    docker ps -s
    
  • Используемое всем Docker пространство:
    docker system df
    
  • Основные команды

  • Размеры образов, контейнеров и томов:
    docker system df -v
    

  • Мониторинг потребляемых контейнерами CPU, MEM, NET I/O и BLOCK I/O:
    docker stats $(docker ps | awk '{if(NR>1) print $NF}')
    

  • Остановить активный контейнер по ID:
    docker stop <container-id>