Внедрение самых передовых решений и технологий.
Поддержка и сопровождение ваших сервисов.
Выполнение работ под "ключ", от покупки сервера, до настройки автоматизации процессов. 8(977)608-78-62 adm@nixm.ru
Работа с контейнерами, установка docker.io в debian jessie
Работа с контейнерами, установка docker.io в debian jessie
для работы в оболочке ipython3. Мы только совсем недавно увидели релиз jessie,
но время не стоит на месте и с момента заморозки jessie-testing до сего дня
утекло как оказалось много воды. В стабильном репозитории дебиан есть два пакета
пригодные под наши цели это docker и lxc. Но мы пойдем другим путем и возмем версию
посвежее. В репозитории тестинг имеется пакет docker.io которым мы и воспользуемся,
для этого пропишем в /etc/apt/sources.list новый репозиторий
Код: Выделить всё
deb http://ftp.de.debian.org/debian/ testing main contrib non-free
Код: Выделить всё
Package: *
Pin: release a=stable
Pin-Priority: 700
Package: *
Pin: release a=testing
Pin-Priority: 650
Package: *
Pin: release a=unstable
Pin-Priority: 600
приоритетом, естественно что бы ей можно было воспользоваться следует добавить
еще одну строчку и в sources.list
Обновляемся
Код: Выделить всё
apt update
с опцией -t
Код: Выделить всё
apt install -t testing paket
apt install paket/testing
Код: Выделить всё
apt-cache policy paket
man apt_preferences
Код: Выделить всё
apt search docker.io
мы сможем установить его без явного указания репы при помощи опции -t
Код: Выделить всё
apt install docker.io
в группу
Код: Выделить всё
adduser nez docker
systemctl reboot
Что бы одновременно загрузить минимальный образ системы из публичного реестра docker,
создать контейнер с именем brick1, запустить его и подключится из терминала,
выполним всего лишь одну команду
Код: Выделить всё
docker run --name brick1 -it debian:8 /bin/bash
и удостоверившись в его отсутствии скачает его по сети.
Образ дебиана с самым необходимым в нутри весит всего около 125Мб и долго ждать
не придется и даже мне с мобильным интернетом, если б кто научил достаточно было
просто покурить в сторонке. Образ с убунту весит не на много больше.
Судя по строке приглашения в нашем терминале мы находимся в нутри созданного контейнера.
Сразу необходимо обновить его
Код: Выделить всё
apt update && apt upgrade
Код: Выделить всё
apt install vim-tiny w3m
Браузер установим для примера что бы наглядно проверить работоспособность сети
Код: Выделить всё
w3m google.ru
Код: Выделить всё
apt install ipython3
управлять виртуальными машинами с той лишь большой разницей что в каждом
госте вируальной мшины используется свой образ системы, а здесь мы используем
один образ со множеством изменений и добавлений в разных к нему контейнерах.
Удобно? Для многих задачь очень.
Что бы просмотреть список образов
Код: Выделить всё
docker images
Код: Выделить всё
docker ps
Код: Выделить всё
docker ps -a
Остановить работу контейнера
Код: Выделить всё
docker stop brick1
Код: Выделить всё
docket start brick1
Код: Выделить всё
docker exec -it brick1 bash
Код: Выделить всё
docker commit brick1 deb_ipython
уже будут существовать и vim-tiny и w3m и ipython3.
Советую установить например русскую локалку сохранить контейнер в новом образе,
а старый удалить комндой
Код: Выделить всё
docker rmi debian:8
Код: Выделить всё
docker rm brick1
(Дико извиняюсь, следует заметить, что нужно сперва удалить контейнер,
а потом уже привязанный к нему образ.)
Заслуживает внимание создание контейнеров с общими директориями с целевым хостом
Код: Выделить всё
docker run --name brick1 -v /tmp/dir_brick1:/mnt -it debian:8 /bin/bash
автоматически создана. После этого работая в контейнере все что вы поместите
в директорию /mnt будет автоматически доступно и в /tmp/dir_brick1 целевой машины.
Далее, если вы захотите остановить контейнер, а потом опять запустить
и подсоединится к нему с помощью команды
Код: Выделить всё
docker attach brick1
в том числе и общая между хостом и контейнером директория.
Еще одна интересная опция -p
Код: Выделить всё
docker run --name -p 222:22 -it debian:8 /bin/bash
и ему будет соответствовать открытый 22-ой в контейнере 172.17.0.?.
Узнать последнюю цифру ip адреса контейнера
Код: Выделить всё
ip a
Код: Выделить всё
apt install openssh-server
adduser nez
service ssh start
Код: Выделить всё
ssh -p 222 nez@localhost
Очень удобно и безопасно работать в изолированном контейнере и самое главное
при желании можно поделится своей работой, перенести на другой хост или просто
клонировать. Практически мы получаем мобильную версию вашего проэкта.
Да и еще, докер прекрасно работает во вложенных системах тоесть вы можете создавать
контейнеры в виртуальных машинах, уменьшая чрезмерное количество виртуалок и
уменьшая тем самым нагрузку на процессор хоста. Например имея свой любимый дебиан
на целевом хосте с гостем на виртуалке с centos, вы можете создать кучу виртуальных сереверов в отдельных контейнерах. Разве это не здорово? Сравните например 10 отдельных виртуальных машин и одну виртуалку с установленным одним образом с десятком
контейнеров весом ну пусть в 20 Мб изменений в каждом
Я считаю что докер прекрасный инструмент для многих проэктов, безопасная площадка
для тестинга и хороший помошник к виртуальной машине. Кто еще не в теме, присоединяйтесь.
Если было интересно то еще можно зайти сюда
Re: Работа с контейнерами, установка docker.io в debian jess
- Oleg65
- Местный говорун
- Сообщения: 859
- Зарегистрирован: 18 янв 2015, 10:56
- Откуда: г.Коломна Моск.обл.
Re: Работа с контейнерами, установка docker.io в debian jess
Объясните - почему? Хочется знать о "подводных" камняхSunderland93 писал(а):Дырявое дерьмо этот докер
Re: Работа с контейнерами, установка docker.io в debian jess
Потому что уязвимостей там дохрена, и ошибок в дизайне. За подробностями в гугл.Oleg65 писал(а):Объясните - почему? Хочется знать о "подводных" камняхSunderland93 писал(а):Дырявое дерьмо этот докер
- Oleg65
- Местный говорун
- Сообщения: 859
- Зарегистрирован: 18 янв 2015, 10:56
- Откуда: г.Коломна Моск.обл.
Re: Работа с контейнерами, установка docker.io в debian jess
Достойный ответ ! Спасибо, что напомнили про Goooogle! ЛОР - в стороне курит!Sunderland93 писал(а):Потому что уязвимостей там дохрена, и ошибок в дизайне. За подробностями в гугл.Oleg65 писал(а):Объясните - почему? Хочется знать о "подводных" камняхSunderland93 писал(а):Дырявое дерьмо этот докер
Re: Работа с контейнерами, установка docker.io в debian jess
Может мне ещё прочитать за вас? Если лень пройтись по поиску "уязвимости Docker" - ваши проблемы.Oleg65 писал(а):Достойный ответ ! Спасибо, что напомнили про Goooogle! ЛОР - в стороне курит!
- Oleg65
- Местный говорун
- Сообщения: 859
- Зарегистрирован: 18 янв 2015, 10:56
- Откуда: г.Коломна Моск.обл.
Re: Работа с контейнерами, установка docker.io в debian jess
...Форточками пахнуло...Sunderland93 писал(а):Может мне ещё прочитать за вас? Если лень пройтись по поиску "уязвимости Docker" - ваши проблемы.Oleg65 писал(а):Достойный ответ ! Спасибо, что напомнили про Goooogle! ЛОР - в стороне курит!
- Oleg65
- Местный говорун
- Сообщения: 859
- Зарегистрирован: 18 янв 2015, 10:56
- Откуда: г.Коломна Моск.обл.
Re: Работа с контейнерами, установка docker.io в debian jess
Заинтересовался, что же за беда с Докер... все подробности из Гугл (по совету). Так что же получил и какие выводы сделал:Sunderland93 писал(а):Потому что уязвимостей там дохрена, и ошибок в дизайне. За подробностями в гугл.Oleg65 писал(а):Объясните - почему? Хочется знать о "подводных" камняхSunderland93 писал(а):Дырявое дерьмо этот докер
- Да, в официальных репозиториях в шаблонах Докер полно уязвимостей!!! Но это еще не повод не пользоваться докер... Смотрим:
- как работает Докер:
Он состоит из слоёв. Первый слой(base image, директива FROM) — обычно ubuntu/debian/centos. Если у вас запущено несколько контейнеров с одинаковым base image, то при новом запуске контейнера докер делает следующие вещи:
1. Проверяет, что локальный base image имеет такой же хэш, как и тот, что в репозитории.
2. Если нет, тогда заново собирает слой, который имеет неверный хэш и все ниже.
3. Если да, тогда просто запускает из этого слоя.
Таким образом, для того, чтобы обновить ВСЕ приложения, запущенные на одном base image, вам нужно всего лишь перезапустить контейнеры. Даже apt-get install не придется делать. (Это при условии, что в base image стоит пропатченная либа.) Так как base image собирается в нормальных компаниях автоматически каждые определенные времени и сразу же после выпуска патча безопасности, то дыры после перезапуска контейнера уже не будет.
Если вы собираете свой base image, то можете сделать apt-get update и docker pull перед рестартом всех контейнеров.
К сведению: Докер образ для ubuntu собирают как раз ребята из canoncial. За основу берут cloud-версию убунты(емнип)!!!!
- Далее, мы не задумываясь качаем из сторонних реп. Не заботясь ни о какой безопасности и не сравнивая контрольные суммы. Почему мы считаем, что шаблон из сторонней репы без вложенного вредителя?
- Ну и самое главное: Большинство не умеет и не хочет уметь собрать свой контейнер! Вот Ваша безопасность!... в сделанном своими руками и мозгами.
- Ну и, кроме контейнеров, существуют еще и песочницы.
Выводы, ЛИЧНО МОИ:
1. "Если на небе зажигаются звезды, то это кому-нибудь нужно" Сен-Экзюпери. От меня: А уж если и существуют... то не зря.
2. Самая главная уязвимость любого ПО - ЭТО МЫ и НАША ЛЕНЬ ВНИКАТЬ В СМЫСЛ ПРОДУКТА и что-то изучать, что бы было СВОЕ мнение и суждение о продукте. ( В ядрах Линукс обнаруживается гораздо больше уязвимостей, так что - Линукс это "дырявое дерьмо"?
3. Отличие Линукс от "антипода" - это учится и сделать под себя, забыть Мелкософтовскую идеологию: "Скачал - не пошло, скорее всего это фигня, а не ПО. Настоящее сразу работает на моей машине."
Как тут не вспомнить выражение Булгаковского профессора Преображенского: "Следовательно, разруха не в клозетах, а в головах."...
Вот такое у меня сложилось мнение о Докер...