add 16
parent
1a9d33f3aa
commit
ae0024be9b
|
@ -18,7 +18,7 @@
|
||||||
13. [Планирование будущих задач. - Лабы нет.](#chapter13)
|
13. [Планирование будущих задач. - Лабы нет.](#chapter13)
|
||||||
14. [Доступ к NFS (Network-Attached Storage).](#chapter14)
|
14. [Доступ к NFS (Network-Attached Storage).](#chapter14)
|
||||||
15. [Управление сетевой безопасностью.](#chapter15)
|
15. [Управление сетевой безопасностью.](#chapter15)
|
||||||
16. [](#chapter16)
|
16. [Запуск контейнеров.](#chapter16)
|
||||||
17. [](#chapter17)
|
17. [](#chapter17)
|
||||||
|
|
||||||
***
|
***
|
||||||
|
@ -225,9 +225,28 @@ DNS | 192.168.10.9
|
||||||
**Запуск контейнеров.**
|
**Запуск контейнеров.**
|
||||||
|
|
||||||
Для выполнения этой лабораторной работы необходимо создать учётную запись на https://quay.io/.
|
Для выполнения этой лабораторной работы необходимо создать учётную запись на https://quay.io/.
|
||||||
https://quay.io/ - реестр контейнеров (аналог https://hub.docker.com/)
|
https://quay.io/ - реестр образов (аналог https://hub.docker.com/)
|
||||||
|
|
||||||
|
1. На server1 установить средства управления контейнерами.
|
||||||
|
2. Реестр образов https://quay.io/ содержит образ `quay.io/bitnami/mariadb`, необходимо переключиться на пользователя `poduser` используя пароль `redhat`, посмотреть доступные версии БД в образе для загрузки и скачать версию 10.6.
|
||||||
|
3. На server1 с учетной записью `poduser` создать папку `/home/poduser/db_data`. Подготовить директорию, чтобы контейнеры имели доступ чтения/записи в ней. Директория будет использована в качестве постоянного хранилища.
|
||||||
|
4. На server1 с учетной записью `poduser` создать контейнер содержащий образ MariaDB с именем `inventorydb`. Необходимо выполнить трансляцию внутреннего порта в контейнере 3306 на внешний порт server1 13306. Подключить директорию `/home/poduser/db_data` в качестве хранилища БД в контейнере директории `/var/lib/mysql/data`. Кроме этого необходимо объявить следующие переменные в контейнере:
|
||||||
|
|
||||||
|
Переменная | Значение
|
||||||
|
--------------------- | ----------
|
||||||
|
MARIADB_USER | operator1
|
||||||
|
MARIADB_PASSWORD | redhat
|
||||||
|
MARIADB_DATABASE | inventory
|
||||||
|
MARIADB_ROOT_PASSWORD | redhat
|
||||||
|
|
||||||
|
После запуска контейнера необходимо убедиться в наличии доступа к БД в контейнере:
|
||||||
|
- подключиться к контейнеру;
|
||||||
|
- подключиться к консоли управления БД (команда - `mysql -u root -p`, ввести пароль `redhat`);
|
||||||
|
- убедиться в том, что БД с именем inventory присутствует в списке доступных (команда - SHOW DATABASES;);
|
||||||
|
- выйти из консоли управления БД (команда - `exit`);
|
||||||
|
- отключиться от контейнера.
|
||||||
|
|
||||||
|
5. Настроить systemd на автоматический запуск контейнера `inventorydb` при загрузке server1.
|
||||||
|
|
||||||
[вверх](#top)
|
[вверх](#top)
|
||||||
|
|
||||||
|
|
|
@ -21,7 +21,7 @@
|
||||||
13. [Планирование будущих задач. - Лабы нет.](#chapter13)
|
13. [Планирование будущих задач. - Лабы нет.](#chapter13)
|
||||||
14. [Доступ к NFS (Network-Attached Storage).](#chapter14)
|
14. [Доступ к NFS (Network-Attached Storage).](#chapter14)
|
||||||
15. [Управление сетевой безопасностью.](#chapter15)
|
15. [Управление сетевой безопасностью.](#chapter15)
|
||||||
16. [](#chapter16)
|
16. [Запуск контейнеров.](#chapter16)
|
||||||
17. [](#chapter17)
|
17. [](#chapter17)
|
||||||
|
|
||||||
***
|
***
|
||||||
|
@ -1162,3 +1162,131 @@ Welcome to VHOST on SERVER1
|
||||||
[вверх](#top)
|
[вверх](#top)
|
||||||
|
|
||||||
***
|
***
|
||||||
|
|
||||||
|
###### Chapter16
|
||||||
|
**Запуск контейнеров.**
|
||||||
|
|
||||||
|
Для выполнения этой лабораторной работы необходимо создать учётную запись на https://quay.io/.
|
||||||
|
https://quay.io/ - реестр образов (аналог https://hub.docker.com/)
|
||||||
|
|
||||||
|
1. На server1 установить средства управления контейнерами.
|
||||||
|
```bash
|
||||||
|
[student@server1 ~]$ sudo yum module install container-tools -y
|
||||||
|
```
|
||||||
|
|
||||||
|
2. Реестр образов https://quay.io/ содержит образ `quay.io/bitnami/mariadb`, необходимо авторизоваться с учётной записью пользователя `poduser` используя пароль `redhat`, посмотреть доступные версии БД в образе для загрузки и скачать версию 10.6.
|
||||||
|
*Важно именно залогиниться как poduser, а не переключаться на него*
|
||||||
|
```bash
|
||||||
|
[poduser@server1 ~]$ podman login quay.io
|
||||||
|
Username: adolgiy
|
||||||
|
Password:
|
||||||
|
Login Succeeded!
|
||||||
|
```
|
||||||
|
*посмотрим доступные версии образов MariaDB (получение информации может занимать более 1 минуты)*
|
||||||
|
```bash
|
||||||
|
[poduser@server1 ~]$ skopeo inspect docker://quay.io/bitnami/mariadb
|
||||||
|
|
||||||
|
```
|
||||||
|
*результатом будет огромный вывод с большим перечнем доступных версий образов*
|
||||||
|
*скачаем необходимую версию - 10.6*
|
||||||
|
```bash
|
||||||
|
[poduser@server1 ~]$ podman pull quay.io/bitnami/mariadb:10.6
|
||||||
|
Trying to pull quay.io/bitnami/mariadb:10.6...
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
3. На server1 с учетной записью `poduser` создать папку `/home/poduser/db_data`. Подготовить директорию, чтобы контейнеры имели доступ чтения/записи в ней. Директория будет использована в качестве постоянного хранилища.
|
||||||
|
```bash
|
||||||
|
[poduser@server1 ~]$ mkdir /home/poduser/db_data
|
||||||
|
[poduser@server1 ~]$ chmod 777 /home/poduser/db_data/
|
||||||
|
```
|
||||||
|
|
||||||
|
4. На server1 с учетной записью `poduser` создать контейнер содержащий образ MariaDB с именем `inventorydb`. Необходимо выполнить трансляцию внутреннего порта в контейнере 3306 на внешний порт server1 13306. Подключить директорию `/home/poduser/db_data` в качестве хранилища БД в контейнере директории `/var/lib/mysql/data`. Кроме этого необходимо объявить следующие переменные в контейнере:
|
||||||
|
|
||||||
|
Переменная | Значение
|
||||||
|
--------------------- | ----------
|
||||||
|
MARIADB_USER | operator1
|
||||||
|
MARIADB_PASSWORD | redhat
|
||||||
|
MARIADB_DATABASE | inventory
|
||||||
|
MARIADB_ROOT_PASSWORD | redhat
|
||||||
|
|
||||||
|
После запуска контейнера необходимо убедиться в наличии доступа к БД в контейнере:
|
||||||
|
- подключиться к контейнеру;
|
||||||
|
- подключиться к консоли управления БД (команда - `mysql -u root -p`, ввести пароль `redhat`);
|
||||||
|
- убедиться в том, что БД с именем inventory присутствует в списке доступных (команда - SHOW DATABASES;);
|
||||||
|
- выйти из консоли управления БД (команда - `exit`);
|
||||||
|
- отключиться от контейнера.
|
||||||
|
*создадим контейнер - с учётом проброса порта 13306:3306, подключения хранилища и необходимые переменные*
|
||||||
|
```bash
|
||||||
|
[poduser@server1 ~]$ podman run -d --name inventorydb -p 13306:3306 -v /home/poduser/db_data:/var/lib/mysql/data -e MARIADB_USER=operator1 -e MARIADB_PASSWORD=redhat -e MARIADB_DATABASE=inventory -e MARIADB_ROOT_PASSWORD=redhat quay.io/bitnami/mariadb:10.6
|
||||||
|
98e07615544e5f899b9534fbaf84507c71beb87b27b116c1ca1a632f0b767a2c
|
||||||
|
[poduser@server1 ~]$
|
||||||
|
```
|
||||||
|
*проверим, что контейнер успешно запустился и есть доступ к созданной БД inventory*
|
||||||
|
```bash
|
||||||
|
[poduser@server1 user]$ podman ps
|
||||||
|
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
|
||||||
|
131c9fd936ba quay.io/bitnami/mariadb:10.6 /opt/bitnami/scri... About a minute ago Up About a minute ago 0.0.0.0:13306->3306/tcp inventorydb
|
||||||
|
```
|
||||||
|
```bash
|
||||||
|
[poduser@server1 user]$ podman exec -it inventorydb bash
|
||||||
|
1001@131c9fd936ba:/$ mysql -u root -p
|
||||||
|
Enter password:
|
||||||
|
Welcome to the MariaDB monitor. Commands end with ; or \g.
|
||||||
|
Your MariaDB connection id is 3
|
||||||
|
Server version: 10.6.4-MariaDB Source distribution
|
||||||
|
|
||||||
|
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
|
||||||
|
|
||||||
|
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
|
||||||
|
|
||||||
|
MariaDB [(none)]> SHOW DATABASES;
|
||||||
|
+--------------------+
|
||||||
|
| Database |
|
||||||
|
+--------------------+
|
||||||
|
| information_schema |
|
||||||
|
| inventory |
|
||||||
|
| mysql |
|
||||||
|
| performance_schema |
|
||||||
|
| sys |
|
||||||
|
| test |
|
||||||
|
+--------------------+
|
||||||
|
6 rows in set (0.002 sec)
|
||||||
|
|
||||||
|
MariaDB [(none)]> exit
|
||||||
|
Bye
|
||||||
|
1001@131c9fd936ba:/$ exit
|
||||||
|
[poduser@server1 user]$
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
5. Настроить systemd на автоматический запуск контейнера `inventorydb` при загрузке server1.
|
||||||
|
*создадим папку для пользовательского сервиса systemd, перейдём в эту папку и сгенерируем сервис на основе запущенного контейнера*
|
||||||
|
```bash
|
||||||
|
[poduser@server1 ~]$ mkdir -p ~/.config/systemd/user
|
||||||
|
[poduser@server1 ~]$ cd ~/.config/systemd/user/
|
||||||
|
[poduser@server1 user]$ podman generate systemd --name inventorydb --files --new
|
||||||
|
/home/poduser/.config/systemd/user/container-inventorydb.service
|
||||||
|
|
||||||
|
```
|
||||||
|
*после того, как сервис будет сгенерирован, необходимо остановить и удалить запущенный контейнер, иначе сервис не сможет стартовать, т.к. имена запущенного вручную и создаваемого с помощью systemd контейнеров совпадают*
|
||||||
|
```bash
|
||||||
|
[poduser@server1 user]$ podman stop inventorydb
|
||||||
|
98e07615544e5f899b9534fbaf84507c71beb87b27b116c1ca1a632f0b767a2c
|
||||||
|
[poduser@server1 user]$ podman rm inventorydb
|
||||||
|
98e07615544e5f899b9534fbaf84507c71beb87b27b116c1ca1a632f0b767a2c
|
||||||
|
```
|
||||||
|
*активируем и запустим созданный пользовательский сервис systemd*
|
||||||
|
```bash
|
||||||
|
[poduser@server1 user]$ systemctl --user daemon-reload
|
||||||
|
[poduser@server1 user]$ systemctl --user enable --now container-inventorydb.service
|
||||||
|
Created symlink /home/poduser/.config/systemd/user/default.target.wants/container-inventorydb.service → /home/poduser/.config/systemd/user/container-inventorydb.service.
|
||||||
|
```
|
||||||
|
*необходимо обеспечить автозагрузку пользовательского сервиса без необходимости авторизации в системе самого пользователя*
|
||||||
|
```bash
|
||||||
|
[poduser@server1 user]$ loginctl enable-linger
|
||||||
|
```
|
||||||
|
|
||||||
|
[вверх](#top)
|
||||||
|
|
||||||
|
***
|
||||||
|
|
Loading…
Reference in New Issue