Настройка Docker

Установка Docker в Windows

Скачать устанвочный файл можно тут.

Самая главная проблема - это использование виртуализации. В Windows Docker использует Hyper-V, который не очень любит другие системы виртуализации: установленный VirtualBox поломался от слова “совсем” и не хотел работать, пока я не отключил Hyper-V.

Установка Docker в Fedora 30

В Fedora 30 Docker есть в собственном репозитории.

Первым делом ставим docker и docker-compose:

> sudo dnf install docker docker-compose

После установки в консоле будет доступно несколько команд (docker,docker-compose).

Версиию Docker можно узнать командой:

> docker --version
Docker version 1.13.1, build 1185cfd/1.13.1

Версию Docker Compose можно узнать командой:

> docker-compose --version
docker-compose version 1.22.0, build f46880f

Основная проблема в том, что это достаточно устаревшие версии, некоторые контейнеры уже не не работают. Сделаем установку по инструкции на официальном сайте:

Добавляем репозиторий:

sudo dnf config-manager --add-repo https://download.docker.com/linux/fedora/docker-ce.repo

Включаем канал тестовых сборок, т.к. стабильного релиза на текущий момент (август 2019г.) нет.

sudo dnf config-manager --set-enabled docker-ce-test

Теперь можно установливать:

sudo dnf install docker-ce docker-ce-cli containerd.io

Запускаем сервис:

sudo systemctl start docker

и помещаем его в автозагрузку:

sudo systemctl enable docker

Далее, нужно поставить Docker Compose. Его нет в репозитории Docker-а, нужно устанавливать его из GitHub-репозитория:

sudo curl -L https://github.com/docker/compose/releases/download/1.24.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

Ставим разрешение на запуск:

sudo chmod +x /usr/local/bin/docker-compose

Достаточно важный момент: нужно немного настроить пользователей, чтобы Docker работал без root-прав.

  1. Нужно создать группу docker
    sudo groupadd docker
    
  2. Добавим пользователя в эту группу:
    sudo usermod -aG docker $USER
    
  3. Чтобы изменения вступили в силу, нужно разлогиниться и снова залогиниться.
  4. Для теста выполним запус тестового контейнера:
    docker run hello-world
    
  5. Если ранее выполнялись команды Docker-а с root-правами - в каталоге пользователя создались конфигурации. Для корректной работы надо переназначить права на эти конфигурации.

Назначаем владельцем текущего пользователя:

sudo chown "$USER":"$USER" /home/"$USER"/.docker -R

и даем все права группе пользователя:

sudo chmod g+rwx "$HOME/.docker" -R

Полезные команды

Список доступных контейнеров (загруженных и/или сгенерированных):

sudo docker image ls

Через Docker можно запустить один контейнер. Для этого служит команда:

docker run {container-name}

Если нужно запустить несколько контейнеров - используется команда:

docker-compose up -d {container-name1} {container-name2} {container-name3} {container-name4}

Зайти внутрь контейнера можно с помощью комнады:

docker-compose exec {container-name} bash

Удалить все контейнеры, тома и образы:

docker system prune -a

# Removing Docker Images
docker images -a
docker rmi $(docker images -a -q)

# Removing Containers
docker ps -a
docker stop $(docker ps -a -q)
docker rm $(docker ps -a -q)

# Removing Volumes
docker volume ls
docker volume prune

# Remove a container and its volume
docker rm -v $(docker ps -a -q)
Евгений Вдовенко
Евгений Вдовенко

Физик по образованию, занимаюсь веб-разработкой на PHP с 2013 года. Нравится ковырятся в Zend Framework/Expressive и Joomla CMS/Framework. В процессе разборок с Python. Подумываю посмотреть Go. Считаю PostgreSQL крутым продуктом и внедряю его везде, где могу.