Архив рубрики: Docker

Docker is a computer program that performs operating-system-level virtualization, also known as «containerization».

Linux: systemd сервис для Docker Compose

14 августа 2018

Есть Docker Compose файл, который запускает Prometheus стек. Рабочий каталог Prometheus — /opt/prometheus, в котором находится Compose файл prometheus-compose.yml. Для управления им через systemd — создаём файл /etc/systemd/system/prometheus.service: [Unit] Description=Prometheus stack Requires=docker.service After=docker.service [Service] Restart=always WorkingDirectory=/opt/prometheus ExecStart=/usr/local/bin/docker-compose -f prometheus-compose.yml up ExecStop=/usr/local/bin/docker-compose -f prometheus-compose.yml down [Install] WantedBy=multi-user.target Проверяем. Запускаем: [simterm] # systemctl start prometheus.service [/simterm] Проверяем… Читать далее »

Docker: настройка tzdata и timezone во время билда

14 июля 2018

При сборке образа — билд останавливается с запросом на настройку tzdata. Dockerfile выглядит сейчас так: FROM ubuntu:18.04 RUN apt update && apt install -y python-pip python-dev ssh python-boto3 RUN pip install ansible==2.4.3.0 Запускаем сборку: [simterm] admin@jenkins-production:~$ docker build -t proj/proj-ansible:1.1 . Sending build context to Docker daemon 29.62MB Step 1/3 : FROM ubuntu:18.04 —> 113a43faa138… Читать далее »

CircleCI: обзор Continuous Integration сервиса

31 мая 2018

CircleCI — система для сборки и деплоя, аналогичная Travis CI (Github), и работающая по тем же принципам — к CircleCI-аккаунту подключаются репозитории (в отличи от Travis — к CircleCI можно добавить любой репозиторий, в т.ч. Bitbucket), билды выполняются в контейнерах или вирутальных машинах, уведомления о результатах билда можно получить на почту или через интеграцию со Slack/HipChat etc, а… Читать далее »

Jenkins: запуск Jenkins в Docker и подключение SSH Slave

8 мая 2018

Имеется две EC2, на одной будет запущен Jenkins, который будет мастером, второй EC2 надо настроить и подключить как slave для Jenkins. Для этого — на второй машине потребуется Java, настроенная SSH авторизация по ключам, и отдельный пользователь. На Jenkins потребуется SSH Slaves Plugin. Начинаем со слейва. Настройка Jenkins Unix slave Установка Java Подключаемся на слейв, устанавливаем… Читать далее »

Prometehus: обзор — federation, мониторинг Docker Swarm и настройки Alertmanager

9 апреля 2018

Задача — настроить Proof of Concept мониторинга, используя Prometheus, что бы показать основные его возможности. Используется Prometheus 2.2.1 (между 1.* и 2.* существенные различия в синтаксисе). Чего не добавлено в этот пост — это работа с Prometheus API, и хотелось подробнее остановиться на Grafana и её шаблонах, но уже отдельным постом. Кроме того, в самом тексте… Читать далее »

Docker: PHP Composer и multi-stage билды Docker образов

2 апреля 2018

Задача — подготовить Docker образ с PHP Composer. Ниже рассмотрим сначала сам Composer (от PHP далёк, и с Composer дела раньше не имел, хотя сам PHP потрогать довелось), потом — пример сборки Docker контейнера и его использование под разными пользователями. Результат можно посмотреть в Github. PHP Composer Composer предназначен для установки общих библиотек при создании… Читать далее »

What is: Linux namespaces, примеры PID и Network namespaces

10 марта 2018

Данный пост обединяет в себе два других замечательных (на мой взгляд) поста на тему Namespaces в Linux — A Tutorial for Isolating Your System with Linux Namespaces и Introduction to Linux namespaces — Part 1: UTS, с небольшими дополнениями и изменениями. Тем не менее — крайне рекомендую к прочтению оба поста выше, и ознакомиться с другими ссылками из… Читать далее »

Docker: Swarm — REPLICAS 0/1

28 декабря 2017

Имеется приложение, в Docker Swarm. Окружение работает в MS Azure, четыре виртуальных машины/ноды — один Swarm-менеджер и три воркера. После очередного деплоя — не появляется ни одной реплики: [simterm] $ docker service ls ID NAME MODE REPLICAS IMAGE PORTS 7hcoo66khzzp jm_website_api_layer replicated 0/1 jm/jm-api-layer:v2.0.3 *:4004->4004/tcp mlejgw5pgen9 jm_website_proxy replicated 0/1 jm/jm-website-proxy:latest *:80->80/tcp,*:443->443/tcp jv9t1pk50ui3 jm_website_transform replicated 0/1… Читать далее »

Docker: запуск Jenkins в Docker и Docker private registry

23 ноября 2017

Задача — развернуть Jenkins и Docker Private registry в Китае, на AWS. Аналогичные посты — тут>>> и тут>>>, только в этом посте всё собрано в одно целое и упорядочено. К EC2 будут подключены два EBS — один с данными Jenkins, второй — с данными Docker. Для Docker registry в качестве хранилища используем AWS S3. Далее в посте: создадим… Читать далее »

Docker: save и load — скопировать образ между хостами

22 ноября 2017

Имеется Docker контейнер с Jenkins на EC2 в Китае, необходимо обновить версию Jenkins. Что бы не тянуть весь образ напрямую в Китай (скорость иногда падала до 3-4 кб/с) — можно скачать его на рабочую машину в Киеве, а потом скопировать архив в Китай с помощью scp. Используем docker save для создания архива с образом и docker… Читать далее »