Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Регистрируясь, я даю согласие на обработку данных и условия почтовых рассылок.
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр Модное кулинарное Шоу! Игра в ресторан, приготовление блюд, декорирование домов и преображение внешности героев.

Кулинарные истории

Казуальные, Новеллы, Симуляторы

Играть

Топ прошлой недели

  • Oskanov Oskanov 9 постов
  • Animalrescueed Animalrescueed 44 поста
  • Antropogenez Antropogenez 18 постов
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая «Подписаться», я даю согласие на обработку данных и условия почтовых рассылок.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Маркет Промокоды Пятерочка Промокоды Aroma Butik Промокоды Яндекс Путешествия Промокоды Яндекс Еда Постила Футбол сегодня
0 просмотренных постов скрыто
4
epimetheus84
epimetheus84

C просторов⁠⁠

4 года назад
C просторов

Невольный перевод:
Почему, скажите мне, почему ваш Docker *ругается по-русски* \ работает нестабильно на Винде?
Чтобы нормально запустить этого монстра требуется от 3 до 5 упражнений по перезапуску, переустановка системы, удаление всех контейнеров, потом важно еще поспать недельку, помолиться дней 10, повторить процедуру перезапуска и только потом ВОЗМОЖНО оно заработает.

З.Ы.: При сочетании слов windows и docker Клубничка нужна?

Показать полностью 1
Docker Windows Форум Github
15
36
AlexKoc

Linkedin рекомендует)⁠⁠

5 лет назад
Linkedin рекомендует)
[моё] LinkedIn IT юмор Рекомендации IT Docker
5
89
varper
varper
IT-юмор

Научитесь принимать себя⁠⁠

5 лет назад
Научитесь принимать себя
[моё] IT юмор Docker Программирование
14
NeAdminPikabu
NeAdminPikabu
IT-юмор

Когда не можешь позволить себе SSD⁠⁠

5 лет назад
Когда не можешь позволить себе SSD
Показать полностью 1
[моё] Docker Linux IT юмор
50
389
EHOTnOTACKYH
EHOTnOTACKYH
IT-юмор

Порекомендуете другу?⁠⁠

6 лет назад
Порекомендуете другу?

— Какая вероятность, что вы порекомендуете Docker Desktop другу или коллеге?

— 2 из 10. Если бы у меня был хотя бы один из них, тогда, возможно...

Профессиональный юмор Разработка Docker Рекомендации Опрос
59
5
wbln
wbln

Скрипты сборки (DevOps)⁠⁠

6 лет назад

Потребовалось на днях, для не большой команды разработки, поднять окружение.

В качестве основы, были взяты бесплатные версии приложений от JetBrains: Hub UpSource YouTrack TeamCity (+ 3 билд агента). Так же в сборку запилил Portainer для манипуляций/мониторинга состояния контейнеров.

в качестве виртуалки - VirtualBox оракловыый + Vagrant

на виртуалке стоит арч + докер и докер-компоуз (не юзается по определенным причинам, а выпилить забыл)

В общем, если кому понадобится - выложил на гитхаб, пользуйтесь

Коментарии приветствуются, правки готов вносить.

[моё] DevOps Командная оболочка bash Virtualbox Docker Текст
3
107
corvuscor
GNU/Linux

Немного о Docker.⁠⁠

7 лет назад
Решил написать еще один небольшой пост. Возможно, будет немного позначательно.

Думаю, многие неофиты мира GNU/Linux слышали модное нынче словцо - Docker.

Опять же, постараюсь кратко и доходчиво объяснить, что это, с чем его едят и для чего это может быть нужно неспециалисту вроде меня. И да, это не руководство для новичка, ибо их полно.

Вот такой синий голубой кит.


Для начала немного о контейнерной виртуализации. В ядре Linux есть технология разделения ресурсов под названием cgroups. Она может управлять доступом приложения к ресурсам - памяти, процессору, дискам. Несколько контор и просто неравнодушных ребят собрались и запилили LXC - систему управления контейнерами. Так же как в случае с chroot, это лишь виртуальное окружение - но без ядра. Сама по себе система LXC - мощная вещь, но и того оказалось мало.


Но это все присказка. На основе этого добра ребята из Docker Inc сделали сделали свой продукт.

Только вот сам по себе Docker - это не система виртуализации, как многие считают, а система объектно-ориентированной доставки софта. Т.е. изначально оно ориентированно на то, чтобы "поднять настроенный апач одной строкой в терминале".


А теперь простой пример. Скачаем образ Ubuntu Bionic (это бетка) и запустим его.

username$: sudo docker pull ubuntu:bionic

bionic: Pulling from library/ubuntu

c5cc0d8681c1: Pull complete

25992ae88689: Pull complete

92b293e28b63: Pull complete

5e97fb8c1b1b: Pull complete

e89d6de98e44: Pull complete

Digest: sha256:4decfd6e336e1cf246127151753d2a24a3185b5f667b91b925e8b38e7ea903a0

Status: Downloaded newer image for ubuntu:bionic

Образ выкачался. Проверим.

username$: sudo docker images

REPOSITORY TAG IMAGE ID CREATED SIZE

ubuntu  bionic 02f9d6707661 5 weeks ago 88.3 MB

Ну так как-то. Форматирование текста с консоли тут едет, так что немного не наглядно.

Сказать сразу - образов в репозитории море, но об этом позже.


А теперь самое интересное - стартанем его:

username$: sudo docker run -it --rm --name temp_ubuntu -v /home/user/test1:/home/ ubuntu:bionic /bin/bash

И нас выплюнет в консольку контейнера с этой убунтой.

Отсюда поподробнее: -it - это интерактивный(i) терминал(t), --rm - удалить контейнер после останова, -v - проброс "внутрь" папки с хоста.

Можно что-то протестировать, собрать, а потом тормознуть контейнер через Control-D - и все чисто как в аптеке.


Но вообще, откровенно говоря, Docker нужен не для этого.

Как я уже говорил выше, это скорее система доставки софта, чем виртуализации. Вообще, на изоляцию силами cgroups я бы не полагался, но как "еще одна запертая дверь" она сойдет.

Так вот, о чем я - Docker позволяет "упаковать" какой либо сервак со всеми потрахами внутрь готового образа, и переносимость от хоста к хосту будет почти стопроцентная. Можно push-нуть уже готовый образ в репозиторий, и потом его так-же играючи обратно залить.

В результате в репозиториях уже можно найти огромное количество универсальных рецептов.

Но есть и более специализированный вариант - сборка образа с помощью Dockerfile.

Если просто - это такой сценарий, что нужно сделать и что запустить. Есть у меня один, которым я иногда пользуюсь - это Jupyter (сервер с IPython, блекджеком и шлюхами для научных расчетов). Так выглядит Dockerfile:

FROM debian:sid

ENV DEBIAN_FRONTEND noninteractive

RUN apt-get update && apt-get install -y python3 python3-pip python3-fann2

RUN pip3 install --upgrade pip && pip3 install jupyter sympy numpy scipy matplotlib pandas networkx

EXPOSE 8888

CMD jupyter notebook --allow-root --ip 0.0.0.0 --no-browser --notebook-dir=/home

Что он, чьорт побьери, делает?

Ну Debian Sid - это понятно, надеюсь.

ENV DEBIAN_FRONTEND noninteractive - переменная, чтобы apt не спрашивал да/нет у бездушной машины.

Далее идут команды установки всего и вся через RUN. Да, их следует делать поменьше раз, поэтому команды длинные.

EXPOSE "выпячивает" порт наружу.

Ну и CMD - конечная команда запуска.

Также стоит отметить, что обычно лучше юзать ENTRYPOINT, но это вам гуглить самим.


Теперь собираем образок:

username$: sudo docker build -f /path/to/dockerfile -t name_of_image

И все. Почти что серебряная пуля для ленивых админов.

Этот образ можно переносить с машины на машину, а можно просто отправить dockerfile через вконтактик))

Еще какие бонусы?


Так как Docker использует OverlayFS (ранее был aufs) - а это про copy-on-write - он не создает контейнеры с нуля, а только послойно записывает разницу между контейнером и изначальным образом. Так что таких контейнеров можно поднять с десяток при сравнительно небольших накладных затратах.

В общем, писать про это можно очень много и долго, но надобности за обилием написанных мануалов нет. Если интересно - просто попробуйте.

Показать полностью 2
[моё] Linux Gnulinux Docker IT Виртуализация Длиннопост Текст
68
134
megavolt0
megavolt0

Cozy Cloud. Свой уютный уголок Интернета⁠⁠

8 лет назад

На сегодняшний день существует множество сервисов, позволяющих перенести ваши данные в облако. Несомненный лидер тут конечно-же Google. Тут вам и почта, и календарь, и контакты, и облачное хранилище, и редактор документов и много другое. Похожие решения, хоть и с меньшей функциональностью, предлагают и другие Интернет-компании. Например, много из перечисленного можно получить у Yandex. Но мы же с вами понимаем, что если нам что-то дают бесплатно, то это не альтруизм. Просто в данном случае товар — это мы и наши данные.


Но нельзя не согласится, что облачное хранение это удобно. Вы имеете доступ к вашей информации из любой точки планеты, где есть Интернет. Вы можете синхронизировать свои данные на разных устройствах. Вы можете делится фотографиями, документами и другими файлами с друзьями и коллегами.Нужно искать приемлемый компромисс.


Одна группа разработчиков решила, что лучшим компромиссом будет запилить своё собственное персональное облако с блекджеком и шлюхами календарём и контактами. В результате появился Cozy Cloud — решение с открытым исходным кодом, доступное любому желающему.


Cozy можно перевести, как «уютный». Это действительно этакий уютный личный кабинет в котором вы можете:

- хранить и синхронизировать свои контакты;

- хранить и синхронизировать свои документы, фотографии и иные файлы;

- публиковать файлы, документы, фотографии;

- хранить и делиться своими визитными карточками;

- вести список дел (органайзер);

- вести календарь;

- управлять своими финансами;

- управлять своей почтой;

- и многое другое — просто подключите нужный плагин.

И это все будет на вашем личном сервере. Никто не будет сканировать ваши данные, чтобы таргетировать рекламу. Вы можете разместить свои данные в той стране, в которой захотите, в том дата-центе и у того хостера, которому доверяете.


Для Cozy Cloud есть клиенты под все распространенные платформы.

Проект активно живёт, обновляется и дополняется. К нему уже написано множество плагинов на все случаи жизни с возможностью установки в один клик.

Кроме того, разработчики готовят к релизу обновлённый Cozy Cloud, который будет и красивее, и функциональнее. Обещают, что обновится можно будет из текущей версии.


Если вы захотели попробовать, что это такое, то вот вам простая пошаговая инструкция.


Разворачивать Cozy мы будем в Docker. Это решит сразу несколько задач:


1. Проще установка, мы скачаем официальный готовый образ от разработчиков и будем его использовать, лишь немного допилив по Let’s Encrypt. Если ставить всё руками, то статья будет далека от понимания и повторения не подготовленным человеком.

2. Рано или поздно встанет задач перенести свой Cozy Cloud на другой сервер. Нет ничего легче, чем перенести образ с одного сервера на другой.

3. Пора уже моим читателям потрогать докер руками 🙂 Некоторые простые операции мы не будем автоматизировать, а выполним руками, чтобы попробовать работу с докером.


Нам понадобится VPS с Ubunru 14.04 x86_64. Как выбрать и арендовать VPS читайте здесь. Необходимо учесть следующие требования:

- Виртуализация KVM или XEN. Вам не подойдёт OpenVZ.

- Оперативной памяти не менее 512МБ, но это совсем впритык. Лучше 1ГБ и более.

- Если вы будете использовать Cozy Cloud как хранилище файлов (фото, документы и пр.), а также консолидировать свои ящики электронной почты, то вам понадобится много дискового пространства. Тут уж сами смотрите.


Ещё нам понадобиться доменное имя. Не важно, какого уровня. Возможно у вас уже есть какой-нибудь домен. Тогда вы можете сделать поддомен вида, например, cozy.example.com

Как получить бесплатный домен, написано в статье про ownCloud.


Мы будем использовать cozy.mydomen.ml

Итак,займёмся VPS. Вы получили его IP-адрес и логин-пароль. Сразу настроим SSH вход по сертификату по этой инструкции (вместо yum используйте apt-get. Остальное всё также.)

Установим необходимые для докера пакеты:

apt-get -y install \
linux-image-extra-$(uname -r) \
linux-image-extra-virtual

о, что вы видите выше, это одна команда. Для удобства она разбита на строчки с помощью символа «\». Вы можете копировать и вставлять её в консоль в таком виде. Как обычно, все скрипты и конфиги в удобном форматированном виде в первоисточнике статьи.

На вот такой запрос

Выбираем первый вариант и жмём Enter.

Установим пакеты для работы с репозиториями через HTTPS

apt-get -y install \
apt-transport-https \
ca-certificates \
curl \
software-properties-common

Добавим ключ репозитория Docker:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add -

и сам репозиторий:

add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"

Обновим список пакетов с учётом добавленного репозитория

apt-get -y update

И установим сам докер

apt-get -y install docker-ce

Чтобы проверить корректность работы докера, используем тестовый образ Hello World

docker run --rm hello-world

В ответ получим:

Всё хорошо.

Теперь клонируем официальный образ Cozy Cloud к себе на сервер

cd /tmp
git clone https://github.com/cozy-labs/cozy-docker
cd cozy-docker

Нам нужно будет немного подправить его, чтобы научить получать сертификаты от Let’s Encrypt.

Если вы будете использовать для редактирования файлов WinSCP, обязательно сделайте в нём такую настройку:

Для начала откроем файл /tmp/cozy-docker/Dockerfile (это сценарий сборки образа для Docker). В нём найдем строчку

# Install NodeJS 4.2.X LTS

и перед ней вставим секцию следующего содержания:

# Install Certbot
RUN add-apt-repository ppa:certbot/certbot
RUN apt-get update --quiet
RUN apt-get --quiet --yes install python-certbot-nginx

Должно получиться так:

Сохраним и закроем файл. Тем самым мы предпишем докеру при сборке образа установить Certbot из соответствующего репозитория.

Теперь откроем для редактирования файл /tmp/cozy-docker/cozy-init

Найдём в нем секцию, начинающуюся на

# Regenerate SSL certificates

Вся секция выглядит так:

Как видите, здесь предусмотрены два варианта: доступ по http и https, в зависимости от переменной DISABLE_SSL. Причём, в случае с https генерируется самоподписанный сертификат на который будут ругаться все современные браузеры. Нам это всё не нужно. Мы будем использовать только https, а сертификаты получим от Let’s Encrypt. Поэтому убиваем почти всё содержимое этой секции (то, что нужно удалить, выделено на скриншоте выше). Вместо этих строк, вставим следующие:

rm -f /etc/nginx/sites-enabled/cozy
ln -sf /etc/nginx/sites-available/cozy-ssl /etc/nginx/sites-enabled/
if [ -z "$DOMAIN" ]; then
DOMAIN=localhost
fi
openssl dhparam -out /etc/cozy/dh2048.pem -outform PEM -2 2048
certbot certonly --standalone --noninteractive --agree-tos -n -d $LETSENCRYPT_HOST --standalone-supported-challenges tls-sni-01 --email $LETSENCRYPT_EMAIL
ln -s /etc/letsencrypt/live/$LETSENCRYPT_HOST/fullchain.pem /etc/cozy/server.crt
ln -s /etc/letsencrypt/live/$LETSENCRYPT_HOST/privkey.pem /etc/cozy/server.key
supervisorctl restart nginx
cozy-monitor restart home
cozy-monitor restart proxy

Сохраним и закроем файл. Как видите, здесь мы оставили только вариант с https и добавили команды по генерации сертификатов от Let’s Encrypt с помощью certbot. Для этого мы используем переменные LETSENCRYPT_HOST и LETSENCRYPT_EMAIL, значение которых передадим докеру при запуске контейнера.

Теперь соберём наш собственный образ:

docker build -t cozy/myimage /tmp/cozy-docker

Докер собирает образ, используя сценарий, который лежит в файле Dockerfile. В команде выше мы указали, что этот файл находится в папке /tmp/cozy-docker. Также мы указали, что наш новый образ должен называться cozy/myimage.


Процесс может занять весьма длительное время (на слабых VPS до двух часов), зависящее от производительности вашего сервера и каналов связи. Итоговый размер образа 1.3ГБ, и это всё будет скачиваться, распаковываться и собираться.


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

docker images

В ответ получим список образов

Теперь вы можете работать в консоли контейнера также, как до этого работали в консоли «родительской» хостовой машины. Чтобы вернуть назад в консоль хостовой машины введите команду:

exit

А можно просто отправлять команды в контейнер и смотреть их выполнение, оставаясь в хостовой системе. Что мы сейчас и сделаем для первоначальной настройки Cozy. Выполним команду:

docker exec -it cozy-cloud /bin/bash /etc/init.d/cozy-init

Т.е мы запустили в контейнере командный интерпретатор bash, а ему, в свою очередь, передали в качестве параметра скрипт cozy-init. Вы можете наблюдать как генерируется ключ Диффи-Хелмана, запрашиваются сертификаты Let’s Encrypt.


После этого можете уже в браузере вводить свой DNS-адрес (в моём случае это cozy.mydomen.ml).

Дальше придумываете стойкий пароль для вашего кабинета. А на следующем шаге заполняем регистрационные данные.

Загрузится главная страничка Cozy. Сразу идём в настройки

И меняем язык

Страничка автоматически перезагрузится уже на русском. В самом низу страницы есть кнопка включения двухфакторной авторизации. Крайне рекомендую это сделать. Вам понадобиться Google Authenticator или аналогичное приложение на смартфоне.


Собственно всё. Дальше переходите на главную страницу, щёлкайте иконки, изучайте. Дополнительные плагины в разделе «Магазин». В 90% случаев всё будет на русском. Если что-то не переведено, можно поучаствовать в локализации. В общем пробуйте, пользуйтесь.


Мы же ещё немного поковыряем наш контейнер.


Вы можете устанавливать в контейнер пакеты и программы. Установим текстовый редактор nano:

docker exec -it cozy-cloud apt-get -y install nano

Nano установится именно в контейнер, на хостовой системе его не будет. Вот это одно из главных преимуществ докера: в контейнере вы можете делать что угодно, хостовая система останется не тронутой. Как только вы решите, что этот контейнер вам не нужен, просто убиваете его командой «docker rm». Например, чтобы убить наш контейнер с Cozy (команда для примера, не делайте этого без необходимости):

docker rm cozy-cloud

Чтобы удалить образ (команда для примера, не делайте этого без необходимости):

docker rmi cozy/myimage

Или можем настроить cron. Например, настроим обновление сертификатов (по аналогии, как мы это делали в статье про ownCloud). Выполним команду:

docker exec -it cozy-cloud crontab -e

Нас попросят выбрать редактор текста. Вы берем вариант 1 с редактором Nano. В открывшемся окне редактора допишем следующие строчки:

00 3 * * 1 certbot-auto renew >> /var/log/le-renew.log
10 3 * * 1 supervisorctl restart nginx

Получится так:

И нажмём CTRL+O для сохранения файла. На предложенное имя соглашаемся просто нажав Enter. Затем CTRL+X для выхода из Nano. Получим сообщение:

crontab: installing new crontab

Причем это задание крона будет существовать и исполняться только внутри контейнера.


В общем думаю понятно.


Теперь о возможных проблемах Cozy.


У Cozy есть утилита для проверки состояния сервера и исправления проблем. Это cozy-monitor. Например для проверки состояния модулей Cozy выполним команду:

docker exec -it cozy-cloud cozy-monitor status

В ответ получим примерно следующее:

Если Cozy перестал работать (например после обновления), починить можно следующей последовательностью команд:

docker exec -it cozy-cloud cozy-monitor uninstall data-system
docker exec -it cozy-cloud cozy-monitor install data-system
docker exec -it cozy-cloud cozy-monitor restart home
docker exec -it cozy-cloud cozy-monitor restart proxy

Если установка какого-либо модуля из магазина зависла (не часто, но бывает), то лечится командой:

docker exec -it cozy-cloud cozy-monitor reinstall-missing-app

Иногда с первого раза команда не лечит «битый» модуль. Тогда запустите её ещё раз.

Узнать все возможности утилиты cozy-monitor можно командой:

docker exec -it cozy-cloud cozy-monitor

Подключение клиентов тривиально и в описании не нуждается. Ссылка на клиентское ПО дана в начале статьи.

Показать полностью 17
[моё] Cozy cloud Облачное хранилище Облачное хранение Полезное Настройка Docker Инструкция Персональные данные Длиннопост
91
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Маркет Промокоды Пятерочка Промокоды Aroma Butik Промокоды Яндекс Путешествия Промокоды Яндекс Еда Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии