add 16
parent
1a9d33f3aa
commit
ae0024be9b
|
@ -18,7 +18,7 @@
|
|||
13. [Планирование будущих задач. - Лабы нет.](#chapter13)
|
||||
14. [Доступ к NFS (Network-Attached Storage).](#chapter14)
|
||||
15. [Управление сетевой безопасностью.](#chapter15)
|
||||
16. [](#chapter16)
|
||||
16. [Запуск контейнеров.](#chapter16)
|
||||
17. [](#chapter17)
|
||||
|
||||
***
|
||||
|
@ -225,9 +225,28 @@ DNS | 192.168.10.9
|
|||
**Запуск контейнеров.**
|
||||
|
||||
Для выполнения этой лабораторной работы необходимо создать учётную запись на 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)
|
||||
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
13. [Планирование будущих задач. - Лабы нет.](#chapter13)
|
||||
14. [Доступ к NFS (Network-Attached Storage).](#chapter14)
|
||||
15. [Управление сетевой безопасностью.](#chapter15)
|
||||
16. [](#chapter16)
|
||||
16. [Запуск контейнеров.](#chapter16)
|
||||
17. [](#chapter17)
|
||||
|
||||
***
|
||||
|
@ -1162,3 +1162,131 @@ Welcome to VHOST on SERVER1
|
|||
[вверх](#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