Установка и использование Docker на Centos7

1.Установка Docker
Для установки Docker требуется 64-х разрядная операционная система и ядро версии 3.10 и выше.

Обновим пакеты

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

Непосредственно установим Docker

Добавление Docker в автозагрузку

Запуск Docker

Проверка состояния Docker

Просмотр Docker компонентов и их версий

Просмотр размещения различных компонентов, кол-ва контейнеров и образов, информации о операционноой системе, версии ядра, процессоре, памяти, имени хоста и т.д.

Docker-демон слушает запросы на Unix-сокете вместо TCP-порта. По умолчанию владельцем Unix-сокета является пользователь root (другие пользователи могут иметь доступ к сокету только через sudo).
По этой причине Docker всегда запускается под пользователем root

Для использования Docker команд без sudo необходимо создать группу docker и включить в нее пользователя, которому необходимо дать право выполнения Docker команд
Когда Docker запускается, для группы docker устанавливается права чтения/запись.

Cоздаем группу docker, если она не было создана при установке Docker

Добавляем в эту группу пользователя, которому необходимо дать право выполнять команды Docker

Пользователю username необходимо перелогиниться в системе, после чего он сможет выполнять команды Docker без использования sudo

Удаление Docker
Просмотр установленных пакетов Docker

Удаление найденных пакетов

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

 

2.Запуск контейнера Docker

Для проверки корректности установки Docker запустим тестовый образ в контейнере

 

3.Работа с Docker/полезные команды Docker

Поиск доступных Docker-образов c операционной системой Ubuntu

Скачать образ, не создавая контейнер

Если не указывать версию, то скачивается последняя стабильная версия ubuntu:latest

Скачать последнюю версию Centos

Скачать последнюю версию Debian

Просмотр список доступных Docker-образов в системе

Удалить Docker-образ hello-world c системы

Пока невозможно удалить этот образ т.к. он используется в контейнере

Просмотр существующих контейнеров(как запущенных, так и остановленных)

Просмотр ТОЛЬКО запущенных контейнеров

Удалить контейнер (имя контейнера или его ID можно определить с предыдущей команды)

Удалить все контейнеры

Удалить Docker-образ hello-world c системы

Проверка существующих в системе образов

 

Создадим/запустим контейнер с Ubuntu14.04 (если образ предварительно не был скачан, то Docker сам автоматически его скачает с Docker public registry)

Создадим/запустим контейнер с Centos7

Создадим/запустим контейнер с Debian8

 

Проверим состояния наших контейнеров

Подключимся к контейнеру docker-ubuntu14.04 и выполним команду

Отключиться от контейнера без его выключения

 

Просмотр запущенных процессов внутри Docker-контейнера

Использование ресурсов контейнером
(процессорного времени, памяти, дисковой подсистемы, сетевой подсистемы)

Копирование файлов с Docker-контейнера на хостовую ноду
(например,каталога /etc контейнера в каталог /root хостовой ноды)

Остановка контейнера

Остановка всех контейнеров

Запуск контейнера

Перезаупуск контейнера

Переименование контейнера

Просмотр всех настроек контейнера

 

4. Построение Docker-образа
1.Запускаем/создаем контейнер из необходимого/первоначального образа операционной системы
2.Устанавливаем необходимые пакеты и делаем необходимые настройки конфигурационных файлов
3.Сохраняем состояние контейнера(commit) как новый Docker-образ локально на сервере
4.Заливаем новый образ на Docker Hub(push) (предварительно необходимо зарегистрироваться на нем)
https://hub.docker.com/

Итого схема имеет вид/последовательность

1.В системе уже есть запущенный контейнер с Debian8.
Подключимся к нему

2.Установим Apache внутри контейнера

Выходим с контейнера

3.Сохраняем локально новое состояние контейнера, тем самым создавая новый Docker-образ
Сохраняем изменения делая commit, предварительно посмотрим ID-контейнера(4aa0534b3129)

Проверяем налииче нового Docker-образа

Теперь этот образ можно использовать при запуске/создании контейнера

4.Заливаем новый образ на Docker Hub
Предварительно залогинимся на Docker Hub с командной строки, используя имя пользователя и пароль,указанные при регистрации

Заливаем

5.Проверим наличие нашего нового образа на Docker Hub
https://hub.docker.com/

6.Для запуска нового контейнера с нового образа используем команды:

 

5.Настройка сети в Docker

После установки Doсker автоматически создается 3 сети автоматически

Можно указать тип сети, который доkжен использовать контейнер при старте контейнера с помощью опции —network=
Именно сеть типа Bridge используется по умолчанию.
Docker использует Linux bridge для внутреннего межконтейнерного взаимодействия, а также для соединения контейнера с внешними сетями.
После установки Doсker автоматически создается bridge с именем docker0
Каждый контейнер будет соединяться с docker0 bridge-интерфейсом, при этом на ноде будет создававаться новый интерфейс для каждого контейнера

docker-interface

Просмотр сети типа bridge на ноде

Проверяем настройки сети контейнера

Для первого контейнера docker-debian8-apache2

В самом контейнере,например, docker-mydebian8, сетевые настройки имеют вид

 

Cоздание пользовательский сетей типа Bridge

По умолчанию,контейнеры имеет доступ друг к другу через хостовый Bridge-интерфейс docker0
Для изоляция контейнеров друг от друга можно создавать пользовательский/свои сети типа Bridge
Например, создадим новую сеть типа Bridge с именем isolated_network

Проверка наличия новой сети

Просмотрим характеристики этой сети

Видно,что в этой сети используется другая подсеть 172.18.0.0/16 отличная от сети по умолчанию,которая используется для всех остальных контейнеров(172.17.0.0./16)

На ноде появился новый Bridge-интерфейс

Теперь создадим новый контейнер с debian8 для работы с новой сетью.

Проверим наличие подсоединенного к сети с именем isolated_network запущенного контейнера docker-mydebian8-isolated

Подключимся к новому контейнеру и проверим доступность с него других контейнеров и доступа в Интернет

Доступ в Интернет есть благодаря новому интерфейсу на ноде

Ожидаемо, что доступ к соседнему контейнеру отсутствует

 

6.Создание/построение образа из Dockerfile
Создадим образ с Ubuntu 16.04, который впоследствии может быть использован для создания контейнера

Для этого создадим Dockerfile, в котором пропишем необходимые инструкции

Формат Dockerfile имеет вид

Комментариям предшествует символ #
Название инструкции пишутся с большой буквы
В Dockerfile были использованы следующие инструкции

Проверяем наличие созданного образа с именем kamaok/ubuntu16.04

Теперь создаем контейнера из этого образа

Проверяем наличие контейнера запущенного из нового образа

Подключаемся к контейнеру и проверяем версию операционной системы

 

Источник:

https://docker.github.io/engine/installation/linux/centos/
https://docs.docker.com/engine/userguide/networking/
http://prakhar.me/docker-curriculum/

Комментирование и размещение ссылок запрещено.

Комментарии закрыты.

Яндекс.Метрика