Skip to content
/ Docker Public

Учебный проект по работе с Doker

Notifications You must be signed in to change notification settings

Selloni/Docker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 

Repository files navigation

В начале работы нам нужно разобраться с уже готовым докер образом для сервера. Наш выбор пал на довольно простой nginx.

  1. Готовый докер
  2. Операции с контейнером
  3. Мини веб-сервер

Part-1.

img Берем из официального репозитория docker, образ nginx.

img Проверяем наличие докер образа через docker images

img img Запускаем образ и следом проверям, какие образы у нас заупщены. *-d - ключ, обозначающий запуск контейнера в режиме службы.

img Смотрим информацию о контейнере, выходит список, расшифруем некоторые элементы

-размер контейнера "Size": 141812353 -список замапленных портов "ExposedPorts": "80/tcp" -ip контейнера "IPAddress": "172.17.0.2"

Далее мы отсанавливаем образ, проверяем что нет активных сесий в докере.

img

И следом, снова запускаем докер с замапленными портами 80 и 443 :docker container run -p 80:80 -p 443:443 -d nginx первый аргумент это локальный порт, второй это порт который мы хотим замапить в докер контрейне

img Пороверям что обращаясь к порту 443 мы выходим на страницу nginx

img Перезапускаем докер, и видим что у нас на данный момент активны два образа.

Part-2.

Докер образ и контейнер готовы. Теперь можно покопаться в конфигурации nginx и отобразить статус страницы.

img Прочитать конфигурационный файл nginx.conf внутри докер контейнера через команду exec.

img Создать на локальной машине файл nginx.conf

img Скопировать созданный файл nginx.conf внутрь докер образа через команду docker cp. Перезапустить nginx внутри докер образа через команду docker exec name_container nginx -s reload Открываем браузер http://localhost/status и получаем инормацию

Active connections: 2 server accepts handled requests 13 13 21 Reading: 0 Writing: 1 Waiting: 1

img Экспортировать контейнер в файл container.tar через команду export, останавливаем его и следом принудительно удалим (docker rmi -f images), но остались сохраненые контейнеры

img иправляем это.....Ох блин, я оплашал, мне для чего нужно веруть мой image, благо мы отавили архив который имортируем обратно, c помощью команды "docker import container.tar name_image".

img После приведенных команд, востанавливаем наш image, через команду import, запускаем nginx командой docker exec -it image_id service nginx start.

Part-3.

Написать мини сервер на C и FastCgi, который будет возвращать простейшую страничку

img Окозалось не так много писать, но почемуто тяжело было найти информацию.

  • запускаем контейнер за портами docker run -р 81:81 -d nginx
  • копируем послностью паку с кодом docker cp server name_container:/
  • заходим в контейнер, docker exec -it name bash
  • устанавливаем все необходимое: apt install gcc, libfcgi-dev, spawn-fcgi. img
  • так же изменяем последнии строчки файла конфигруции

server { listen 80 default_server; server_name localhost; location / { fastcgi_pass 127.0.0.1:8080; include fastcgi_params; } }

Перезапускаем (docker exec name nginx -s reload) и проверяем

img

Part-4.

  • Создаем Dokerfile
  • Собираем Dockerfile командой docker build -t grandpat:latest .
  • Запускаем контейнер командой docker run --rm -p 80:81 -d --name server grandpat
  • Или скриптом sh build.sh
Если по каким то причинам страничка не выходит, заходим в докер и запускаем скопированный скрипт:
  • docker exec -it server bash
  • попадая в оболочку контейнера sh run.sh img

Part-5.

  • Устанавливаем brew install dockle
  • Выполянем команду dockle -ak NGINX_GPGKEY grandpat:latest

Part-6.

  • Прописываем docker-compose.yaml файл
  • Выполняем команду docker-compose build
  • docker-compose up

About

Учебный проект по работе с Doker

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published