для работы в оболочке 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 Мб изменений в каждом
Я считаю что докер прекрасный инструмент для многих проэктов, безопасная площадка
для тестинга и хороший помошник к виртуальной машине. Кто еще не в теме, присоединяйтесь.
Если было интересно то еще можно зайти сюда
