You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
В [Vagrantfile](Vagrantfile) обычная ВМ без каких-либо специфических настроек, но с дополнительной внешней сетью на физическом интерфейсе хоста. Это совершенно необязательно, но сделано для удобства тестирования контейнера с nginx с хоста. Файлы для сборки docker-образа находятся в каталоге [docker](docker).
3
+
## Задача:
4
+
5
+
> Основное задание:
6
+
> Создайте свой кастомный образ nginx на базе alpine. После запуска nginx должен
7
+
> отдавать кастомную страницу (достаточно изменить дефолтную страницу nginx)
8
+
> Определите разницу между контейнером и образом
9
+
> Вывод опишите в домашнем задании.
10
+
> Ответьте на вопрос: Можно ли в контейнере собрать ядро?
11
+
> Собранный образ необходимо запушить в docker hub и дать ссылку на ваш
12
+
> репозиторий.
13
+
>
14
+
> Дополнительное задание:
15
+
> Создайте кастомные образы nginx и php, объедините их в docker-compose.
16
+
> После запуска nginx должен показывать php info.
17
+
> Все собранные образы должны быть в docker hub
18
+
19
+
## Решение:
20
+
21
+
## Основное задание
22
+
23
+
Все файлы по основному заданию расположены в каталоге [basic](basic).
24
+
25
+
В [Vagrantfile](basic/Vagrantfile) обычная ВМ без каких-либо специфических настроек, но с дополнительной внешней сетью на физическом интерфейсе хоста. Это совершенно необязательно, но сделано для удобства тестирования контейнера с nginx с хоста. Файлы для сборки docker-образа находятся в каталоге [docker](basic/docker).
## Последовательность действий при сборке docker-образа:
22
44
23
-
Из простецкого [Dockerfile](docker/Dockerfile) собираем образ с именем otus-nginx
45
+
Из простецкого [Dockerfile](basic/docker/Dockerfile) собираем образ с именем otus-nginx
24
46
25
-
```
47
+
```bash
26
48
docker build -t otus-nginx .
27
49
```
28
50
29
51
Запускаем контейнер на основе образа otus-nginx
30
52
31
-
```
53
+
```bash
32
54
docker run --rm -d -p 80:80 otus-nginx
33
55
```
34
56
35
57
Подключиться к этому контейнеру можно так
36
58
37
-
```
59
+
```bash
38
60
docker exec -it id_контейнера_или_его_имя bash
39
61
```
40
62
41
-
Логинимся на https://hub.docker.com
63
+
Логинимся на [https://hub.docker.com](https://hub.docker.com)
42
64
43
-
```
65
+
```bash
44
66
docker login
45
67
```
46
68
47
69
Задаем тэг нашему образу
48
70
49
-
```
50
-
docker tag otus-nginx:latest timlok/otus:otus01
71
+
```bash
72
+
docker tag 2b205e6d45d3 timlok/otus-nginx:latest
51
73
```
52
74
53
75
Пушим образ
54
76
77
+
```bash
78
+
docker push timlok/otus-nginx:latest
55
79
```
56
-
docker push timlok/otus:otus01
57
-
```
58
80
59
-
[Ссылка на репозиторий с образом на docker hub.](https://hub.docker.com/r/timlok/otus)
81
+
[Ссылка на репозиторий с образом на docker hub.](https://hub.docker.com/r/timlok/otus-nginx)
82
+
83
+
## Дополнительное задание
84
+
85
+
Все файлы по дополнительному заданию расположены в каталоге [advanced(*)](advanced(*)). Файлы для сборки docker-образов находятся в каталогах [otus-nginx2](advanced(*)/compose/otus-nginx2) и [otus-php-fpm](advanced(*)/compose/otus-php-fpm).
86
+
87
+
Для проверки домашнего задания необходимо скачать файл [docker-compose.yml](advanced(*)/compose/docker-compose.yml) и выполнить ```docker-compose up```. После этого нужно отрыть [http://ip_хоста_с_docker-compose](http://ip_хоста_с_docker-compose) или [http://localhost](http://localhost) и можно будет увидеть страницу с информацией о версии php в образе otus-php-fpm.
88
+
89
+
При этом, в конфиге nginx настроено, что любые символы после [http://ip_хоста_с_docker-compose](http://ip_хоста_с_docker-compose) или [http://localhost](http://localhost) будут открывать страницу с информацией о версии php. Это поведение можно изменить и включить раздельную обработку html и php, отредактировав [конфиг-файл nginx](advanced(*)/otus-nginx2/default-php-fpm.conf). В каждом образе установлен bash.
90
+
91
+
Ссылки на соответствующие репозитории с образами [timlok/otus-nginx2](https://hub.docker.com/r/timlok/otus-nginx2) и [timlok/otus-php-fpm](https://hub.docker.com/r/timlok/otus-php-fpm).
0 commit comments