<?xml version="1.0" encoding="utf-8" ?><rss version="2.0" xmlns:tt="http://teletype.in/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:media="http://search.yahoo.com/mrss/"><channel><title>@ekaterina_tebenkova</title><generator>teletype.in</generator><description><![CDATA[@ekaterina_tebenkova]]></description><link>https://teletype.in/@ekaterina_tebenkova?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=ekaterina_tebenkova</link><atom:link rel="self" type="application/rss+xml" href="https://teletype.in/rss/ekaterina_tebenkova?offset=0"></atom:link><atom:link rel="next" type="application/rss+xml" href="https://teletype.in/rss/ekaterina_tebenkova?offset=10"></atom:link><atom:link rel="search" type="application/opensearchdescription+xml" title="Teletype" href="https://teletype.in/opensearch.xml"></atom:link><pubDate>Fri, 17 Apr 2026 06:27:10 GMT</pubDate><lastBuildDate>Fri, 17 Apr 2026 06:27:10 GMT</lastBuildDate><item><guid isPermaLink="true">https://teletype.in/@ekaterina_tebenkova/Jpx5jjOOYSg</guid><link>https://teletype.in/@ekaterina_tebenkova/Jpx5jjOOYSg?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=ekaterina_tebenkova</link><comments>https://teletype.in/@ekaterina_tebenkova/Jpx5jjOOYSg?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=ekaterina_tebenkova#comments</comments><dc:creator>ekaterina_tebenkova</dc:creator><title>Docker</title><pubDate>Sat, 04 Mar 2023 11:50:28 GMT</pubDate><media:content medium="image" url="https://img1.teletype.in/files/82/bb/82bb1bee-e7bb-48b5-8f13-ba1b61636d0d.png"></media:content><description><![CDATA[<img src="https://img2.teletype.in/files/57/b1/57b13de7-c989-4017-9477-ef0eb1574d0c.png"></img>Краткий конспект по курсу на Stepik]]></description><content:encoded><![CDATA[
  <p id="m7wv">Краткий конспект по курсу на <a href="https://stepik.org/course/123300/syllabus" target="_blank">Stepik</a></p>
  <p id="TDEd">Контейнеры в docker - это полностью изолированные среды, в них свои процессы и службы, собственные сетевые интерфейсы, собственные средства монтирования.</p>
  <p id="bBs9">Docker образ - это пакет или шаблон, аналогичный шаблону виртуальной машины. Он используется для создания одного или нескольких контейнеров. Docker запускает экземпляры образов, которые изолированы и имеют собственные среды и процессы.</p>
  <p id="ex8Z"></p>
  <h2 id="T7pN">Установка Docker на Linux (Ubuntu)</h2>
  <p id="tMda">Ссылка на официальную документацию по установке на<a href="https://docs.docker.com/engine/install/ubuntu/" target="_blank"> Ubuntu</a></p>
  <p id="qLQ9">Перед установкой необходимо удалить старые версии докера. Для этого в терминале вводим команду</p>
  <pre id="msNz" data-lang="bash">sudo apt-get remove docker docker-engine docker.io containerd runc</pre>
  <p id="MlVL">Установка репозитория и зависимостей Docker</p>
  <pre id="7H0R" data-lang="bash">curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh</pre>
  <p id="LpKu">Если не установлен curl, то установить командой</p>
  <pre id="4DT6" data-lang="bash">sudo apt install -y curl</pre>
  <p id="U4VJ">Добавить своего пользователя в группу Docker, чтобы работать с образами и контейнерами без sudo</p>
  <pre id="lKNH" data-lang="bash">sudo usermod -aG docker @USER</pre>
  <p id="CI5h">Убеждаемся, что установка Docker прошла успешно</p>
  <pre id="nxOp" data-lang="bash">service docker start
docker run hello-world</pre>
  <p id="Dhp5">Должно появится следующее окно</p>
  <figure id="Dvs0" class="m_original">
    <img src="https://img2.teletype.in/files/57/b1/57b13de7-c989-4017-9477-ef0eb1574d0c.png" width="738" />
  </figure>
  <p id="qJCU">Чтобы проверить какая версия докера установлена, нужно набрать команду:</p>
  <pre id="kPqQ" data-lang="bash">docker version</pre>
  <p id="dwwI">Чтобы обновить Docker, нужно повторить всю процедуру сначала, то есть удалить старую версию и установить новую. В этом случае данную инструкцию повторить сначала.</p>
  <p id="B0XD">Если необходимо удалить без переустановки, то действовать по следующим шагам, описаны ниже.</p>
  <p id="wAHH">Удаление Docker, CLI, контейнеров и Docker Compose:</p>
  <pre id="2Vsj" data-lang="bash">sudo apt-get purge docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras</pre>
  <p id="ErEx">Удаление images, containers и volumes из пользовательских библиотек</p>
  <pre id="7dJu" data-lang="bash">sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd</pre>
  <p id="qpA3"></p>
  <h2 id="aFGn">Команды Docker</h2>
  <p id="LFZr">docker run <em>название образа</em> - используется для запуска контейнера из образа</p>
  <p id="K8OD">docker ps - просмотреть список запущенных контейнеров и информацию о них</p>
  <p id="9iJ4">docker ps -a - показывает весь список контейнеров и запущенных и нет</p>
  <p id="v4Kv">docker stop <em>id контейнера или его имя</em> - остановить работающий контейнер</p>
  <p id="QCdo">docker rm <em>название контейнера</em> - удалить существующий контейнер (rm сокращенно от remove)</p>
  <p id="Dgbw">docker images - показывает все доступные на хосте образы, их id, теги и размеры</p>
  <p id="7DX8">docker rmi <em>название образа</em> - удаление образов</p>
  <p id="C1Dc">docker pull <em>название образа</em> - скачает образ, но не будет его запускать</p>
  <p id="LiYc">docker exec <em>название или id контейнера</em> cat /etc/<em>название образа</em> - используется для выполнения команд в работающем докер контейнере</p>
  <p id="7uPi">ctrl + c - для выхода (для остановки работы контейнера)</p>
  <p id="qn2N">docker run -d <em>название контейнера</em> - для запуска контейнера в фоновом режиме</p>
  <p id="0SpS">docker attach <em>id или имя контейнера</em> - прикрепить контейнер к консоли</p>
  <p id="eCHr">docker stats - посмотреть статистику по контейнерам (какой объем памяти потребляют и т.п.)</p>
  <p id="N1oy">docker run -it --name webserver nginx - запустить контейнер с названием <code>webserver</code> с образом <code>nginx</code> в интерактивном режиме</p>
  <p id="lgp2">docker update --restart always redis - используется для обновления restart policy контейнера redis в значение <code>always</code></p>
  <p id="m4MB">docker container cp webapp:/etc/nginx /tmp/ - скопировать директорию <code>nginx</code> из контейнера <code>webapp</code> на хост по пути <code>/tmp/</code></p>
  <p id="BncJ">docker system info - проверить драйвер логирования по умолчанию</p>
  <p id="CXYa">docker run -it -d --log-driver none redis - запустить контейнер <code>redis</code> и быть уверенным, что для него не будет настроено логов</p>
  <p id="R8Qj">sudo systemctl status docker - проверить статус службы <code>docker</code> на хосте</p>
  <p id="prOr">-p 8080:80/udp - настроит Docker на проброс порта 80 UDP в контейнере на порт 8080 докер-хоста</p>
  <p id="IOKa">docker run -p 80:5000 nginx/webapp - пользователи смогут получить доступ по <a href="http://10.0.0.13:80" target="_blank">http://10.0.0.13:80</a> весь трафик, полученный на порт 80 будет маршрутизироваться на порт контейнера(5000).</p>
  <p id="ZKhv">docker inspect webapp - получить сводку важной информации о контейнере <code>webapp</code> (например сетевые адреса, переменные окружения, политику рестарта и т.д.)</p>
  <p id="AM4B">docker logs -f my-app - получить поток логов контейнера <code>my-app</code></p>
  <p id="KXE4">docker run -v /opt/datadir/:/var/lib/mysql mysql - хранение специальных данных в контейнере. Нужно для того, чтобы при удалении контейнера не потерялись необходимые данные. В примере данные не будут храниться в контейнере, а будут подключены из вне, в данном случае из директории /opt/datadir/.</p>
  <p id="zuFc"></p>
  <p id="ogkw">Список доступных образов для запуска можно посмотреть на сайте <a href="https://hub.docker.com/search?q=" target="_blank">dockerhub</a></p>
  <p id="11sT">Создание контейнера с образом redis и именем redis без запуска:</p>
  <pre id="EjoH" data-lang="bash">docker create --name redis redis</pre>
  <p id="nnLi">Чтобы запустить образ набираем команду</p>
  <pre id="xW9q" data-lang="bash">docker run название образа</pre>
  <pre id="rX5u" data-lang="bash">docker run redis - запуск redis</pre>
  <pre id="25EH" data-lang="bash">docker run ansible - запуск ansible</pre>
  <pre id="L0BR" data-lang="bash">docker run redis:5.0 - запуск определенной версии образа</pre>
  <p id="NVnQ">Чтобы войти в контейнер, используем параметр -it. Пример, запускаем контейнер с операционной системой alpine, с помощью параметра -it входим внутрь контейнера, sh - для запуска оболочки shell. С помощью приведенной ниже команды запустилась операционная система alpine и оболочка shell. Теперь мы можем работать с операционной системой alpine через терминал. Чтобы выйти из терминала alpine, нужно набрать exit.</p>
  <pre id="3Ltn" data-lang="bash">docker run -it alpine sh</pre>
  <p id="cePk">Чтобы запустить приложение в фоне нужно добавить в команду параметр -d.</p>
  <pre id="NOdp" data-lang="bash">docker run -d alpine</pre>
  <p id="xhs3">Команда для запуска контейнера с образом и определенным именем. В примере мы запускаем контейнер с именем webapp из образа nginx:1.14-alpine: </p>
  <pre id="SqWh" data-lang="bash">docker run --name webapp nginx:1.14-alpine</pre>
  <p id="IBAQ">Прежде чем удалять докер образ, необходимо удалить его контейнеры.</p>
  <pre id="Yjo1" data-lang="bash">docker stop $(docker ps -q) - остановить все контейнеры</pre>
  <pre id="1Rng" data-lang="bash">docker rm название контейнера - удаление контейнера</pre>
  <pre id="uaWP" data-lang="bash">docker rm $(docker ps -aq) - удаление всех контейнеров
docker rm -f(docker ps -aq) - остановить и удалить все контейнеры</pre>
  <pre id="0pnT" data-lang="bash">docker rmi название образа - удаление образа</pre>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@ekaterina_tebenkova/AMRPZIyf8kj</guid><link>https://teletype.in/@ekaterina_tebenkova/AMRPZIyf8kj?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=ekaterina_tebenkova</link><comments>https://teletype.in/@ekaterina_tebenkova/AMRPZIyf8kj?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=ekaterina_tebenkova#comments</comments><dc:creator>ekaterina_tebenkova</dc:creator><title>Agile - манифест</title><pubDate>Sat, 04 Mar 2023 06:44:58 GMT</pubDate><description><![CDATA[Набор 4 ценностей для разработчиков.]]></description><content:encoded><![CDATA[
  <p id="UdLC">Набор 4 ценностей для разработчиков.</p>
  <p id="S2yo"></p>
  <h3 id="lEMn">Ценности</h3>
  <p id="b53a">Люди и взаимодействие важнее процессов и технологий (инструментов). Это значит, что люди, и то, как они взаимодействуют друг с другом, определяет какими будут процессы и какие технологии при этом они будут использовать.</p>
  <p id="TyUA">Работающий продукт важнее исчерпывающей документации. Документация нужна и важна, при этом самое главное это работающий продукт. И уже он определит, какая необходима документация.</p>
  <p id="OFIV">Сотрудничество с заказчиком важнее согласования условий контракта. Самое важное получить от заказчика обратную связь, сделать так, чтобы он был доволен результатом. А согласование требований и условий контракта вторично, но тем не менее, тоже важно.</p>
  <p id="gUar">Готовность к изменениям важнее следованию по первоначальному плану. Очень важно вовремя остановиться, изменить план, скорректировать изменившиеся внешние факторы и остановиться делать то, что уже потеряло свою актуальность.</p>

]]></content:encoded></item></channel></rss>