Skip to content

Изучение систем автоматизации развёртывания и управления приложениями на примере Docker

License

Notifications You must be signed in to change notification settings

uTakCouDeT/TiMP-lab-8

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 

Repository files navigation

Laboratory work VIII

Данная лабораторная работа посвещена изучению систем автоматизации развёртывания и управления приложениями на примере Docker

$ open https://docs.docker.com/get-started/

Tasks

  • 1. Создать публичный репозиторий с названием lab08 на сервисе GitHub
  • 2. Ознакомиться со ссылками учебного материала
  • 3. Выполнить инструкцию учебного материала
  • 4. Составить отчет и отправить ссылку личным сообщением в Slack

Tutorial

$ export GITHUB_USERNAME=<имя_пользователя>
$ cd ${GITHUB_USERNAME}/workspace
$ pushd .
$ source scripts/activate
$ git clone https://github.com/${GITHUB_USERNAME}/lab07 lab08
$ cd lab08
$ git submodule update --init
$ git remote remove origin
$ git remote add origin https://github.com/${GITHUB_USERNAME}/lab08
$ cat > Dockerfile <<EOF
FROM ubuntu:18.04
EOF
$ cat >> Dockerfile <<EOF

RUN apt update
RUN apt install -yy gcc g++ cmake
EOF
$ cat >> Dockerfile <<EOF

COPY . print/
WORKDIR print
EOF
$ cat >> Dockerfile <<EOF

RUN cmake -H. -B_build -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=_install
RUN cmake --build _build
RUN cmake --build _build --target install
EOF
$ cat >> Dockerfile <<EOF

ENV LOG_PATH /home/logs/log.txt
EOF
$ cat >> Dockerfile <<EOF

VOLUME /home/logs
EOF
$ cat >> Dockerfile <<EOF

WORKDIR _install/bin
EOF
$ cat >> Dockerfile <<EOF

ENTRYPOINT ./demo
EOF
$ docker build -t logger .
$ docker images
$ mkdir logs
$ docker run -it -v "$(pwd)/logs/:/home/logs/" logger
text1
text2
text3
<C-D>
$ docker inspect logger
$ cat logs/log.txt
$ gsed -i 's/lab07/lab08/g' README.md
$ vim .travis.yml
/lang<CR>o
services:
- docker<ESC>
jVGdo
script:
- docker build -t logger .<ESC>
:wq
$ git add Dockerfile
$ git add .travis.yml
$ git commit -m"adding Dockerfile"
$ git push origin master
$ travis login --auto
$ travis enable

Report

$ popd
$ export LAB_NUMBER=08
$ git clone https://github.com/tp-labs/lab${LAB_NUMBER} tasks/lab${LAB_NUMBER}
$ mkdir reports/lab${LAB_NUMBER}
$ cp tasks/lab${LAB_NUMBER}/README.md reports/lab${LAB_NUMBER}/REPORT.md
$ cd reports/lab${LAB_NUMBER}
$ edit REPORT.md
$ gist REPORT.md

Links

Copyright (c) 2015-2021 The ISC Authors

Выполнение работы

установка на Parrot OS

sudo apt install docker.io

основные команды и флаги

  -t - задать устройство, на котором запускается контейнер
  -i - запуск в интерактивном режиме
  build - сборка
  run - запуск контейнера
  -p - задать порт
  diff - показать разницу
  images - вывод всех образов
  image - вывод конкретного образа
  rm - удалить контейнер
  rmi - удалить образ
  logs - вывод логов контейнера
  inspect - вывод подробной информации по контейнеру

основные инструкции в Docker-файлах

  FROM - задает базовый класс
  LABEL - задает описание различных метаданных
  WORKDIR - задает рабочую директорию
  COPY - копирует файли и папки в контейнер
  RUN - выполняет команду однажды при сборке
  CMD - выполнение команды при каждом запуске, в нашем случае это 

Пример Docker-файла (основанного на репозиториях из 4-5 лаб)

vim Dockerfile
FROM ubuntu:18.04
RUN apt update
RUN apt install -yy gcc g++ cmake

COPY . print/
WORKDIR print

RUN cmake -H. -B_build -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=_install
RUN cmake --build _build
#RUN cmake --build _build --target install

ENV LOG_PATH /home/logs/log.txt

VOLUME /home/logs

WORKDIR _install/bin

ENTRYPOINT ./demo
docker build -t logger .

About

Изучение систем автоматизации развёртывания и управления приложениями на примере Docker

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published