-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathDocker_Engine+Portainer
115 lines (115 loc) · 15 KB
/
Docker_Engine+Portainer
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
Установка/настройка работы связки Docker_Engine+Portainer на ОС Linux CentOS 7
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Все описанные ниже действия выполнялись под пользователем root
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Всем привет! Для реализации данного проекта мне потребовалось:
1) Установить ОС Linux CentOS 7 и обновить все пакеты;
2) Прописать статическую IP-адресацию;
3) Установить Docker;
4) Теория и основные команды docker-@;
5) Установить Portainer.
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Предисловие:
------------
NMTUI - это инструмент командной строки, который используется для настройки сети в системах Gnu / Linux. При запуске он вызывает графический текстовый интерфейс, который помогает
пользователям легко и эффективно настраивать сетевые интерфейсы.
------------
Docker — программное обеспечение для автоматизации развёртывания и управления приложениями в средах с поддержкой контейнеризации, контейнеризатор приложений.
------------
Portainer — это простой и удобный веб-интерфейс для управления Docker-контейнерами. С помощью Portainer вы сможете в несколько кликов запустить на вашем сервере готовые контейнеры
с популярным ПО и связать их между собой.
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
1) Перед началом выполнения каких-либо манипуляций по настройке связки Docker+Portainer, нужно выполнить подготовку ОС Linux CentOS 7. Для начала обновим пакеты системы.
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
yum update -y && yum upgrade -y |#|#| Поиск и обновление пакетов системы
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
2) Также для избежания потери связи с АРМ/VM, нужно позаботиться о статической IP-адресации. Её можно настроить как на самой АРМ/VM, так и на самом сетевом устройстве.
Статическую адресацию можно прописать с помощью инструмента командной строки nmtui.
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
yum install -y NetworkManager-tui |#|#| Установка пакета nmtui для настройки сети на АРМ/VM.
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Гайд по тому, как пользоваться инструментом nmtui, вы можете посмотреть в интернете.
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
3) Для дальнейшей работы, нам понадобится пакет "yum-utils"
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
yum install -y yum-utils |#|#| Команда для установки пакета "yum-utils"
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
yum-config-manager --enable extras |#|#| Команда для включения репозитория "extras" с дополнениями
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
yum repolist |#|#| Команда для просмотра включенных репозиториев(должен появится extras)
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
yum install -y device-mapper-persistent-data lvm2 |#|#| Команда установки дополнительных пакетов
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo |#|#| Команда для добавления репозитория Docker
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
yum install -y docker-ce |#|#| Команда для установки пакета "docker-ce"
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
systemctl start docker |#|#| Команда запуска docker
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
systemctl enable docker |#|#| Команда добавления службы "docker" в автозагрузку
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
usermod -aG docker root |#|#| Команда для создания пользователя "root" в группу "docker". Вместо пользователя "root", вы можете выбрать любого другого
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
После все проведенных манипуляции, нужно отправить VM в перезагрузку
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
reboot |#|#| Команда перезагрузки VM
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
После включения VM, проверьте работоспособность docker
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
systemctl status docker |#|#| Команда проверки состояния службы "docker.service"
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
4) Теория и основные команды docker.
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Запуск контейнера из образа осуществляется командой "docker run" с указанием разнообразных ключей и нужного образа.
------------
Вот некоторые полезные ключи команды docker run:
-t — предоставляет доступ к терминалу внутри контейнера;
-i — делает возможным взаимодействие с терминалом внутри контейнера;
-d — запускает контейнер в фоновом режиме. Это позволяет использовать терминал, из которого запущен контейнер, для выполнения других команд во время работы контейнера;
--rm — автоматическое удаление контейнера после завершения его работы.
------------
docker version |#|#| Команда для проверки версии docker
------------
docker run -dit --restart always httpd |#|#| Команда запуска контейнера с политикой перезагрузки всегда, когда контейнер остановится.
Также, кроме флага "always", есть ещё несколько, которые можно указать в аргументе с "--restart":
no - Это значение по умолчанию, это означает, что контейнеры не будут перезапущены;
on-failure - Это перезапустит контейнет в случае возникновения ошибки и сбоя контейнера;
always - Всегда перезапускайте контейнер, если он останавливается;
unless-stopped - Контейнер всегда будет перезапускаться, если он не был остановлен вручную.
------------
docker run hello-world |#|#| Запуск контейнера "hello-world"
------------
docker ps -a |#|#| Очень подробная информация об установленных/настроенных контейнерах
------------
docker image ls |#|#| Команда для просмотра установленных контейнеров
------------
docker info |#|#| Общая информация о docker-e
------------
docker start "имя/id контейнера" |#|#| Команда запуска контейнера
------------
docker stop "имя/id контейнера" |#|#| Команда для отсановки контейнера
------------
docker restart "имя/id контейнера" |#|#| Команда для перезапуска контейнера
------------
docker rm "имя/id контейнера" |#|#| Команда для удаления контейнера
------------
docker update --restart on-failure "имя/id контейнера" |#|#| Для контейнера "Portainer", настоятельно рекомендую прописать данную конмаду, т.к. после перезагрузки VM, Portainer может
не запуститься, так как при запуске может выдавать ошибки.
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
5) Установка/настройка Portainer
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
docker volume create portainer_data |#|#| Команда для создания тома для "Portainer"
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer |#|#| Команда для создания контейнера и загрузки из репозитория
образа "Portainer".
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
ПОВТОРЮСЬ: docker update --restart on-failure "имя/id контейнера" |#|#| Для контейнера "Portainer", настоятельно рекомендую прописать данную конмаду, т.к. после перезагрузки VM, Portainer может
не запуститься, так как при запуске может выдавать ошибки.
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
ip a |#|#| Команда для просмотра ip-адресов на сетевых интерфейсах
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
После того, как вы узнали свой IP-address, то теперь вы можете открыть веб-браузер и посетить следующий сайт:
http://IP-address:9000
Далее создаём пользователя, логинимся, выбираем локальную среду управления и наслаждаемся функционалом Portainer.
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
На этом инструкция закончена! Спасибо за внимание!)