ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 11.12.2023
Просмотров: 41
Скачиваний: 1
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
СОДЕРЖАНИЕ
nexus_1 | Started Sonatype Nexus OSS 3.2.0-01
nexus_1 |
nexus_1 |
-------------------------------------------------
Создание Docker репозитория
Как только контейнер с Nexus запустится, вы можете подключиться к Docker Engine на порт 8081. В моем случае (OS X, Docker for Mac) — это адрес .
Для того, чтобы настроить репозиторий, необходимо зайти под учетной записью администратора (меню
«Sign In» в верхнем правом углу экрана):
Учетная запись администратора:
•
Логин: admin
•
Пароль: admin123
После прохождения процедуры аутентификации, зайдите в настройки:
Выберите «Repositories»
Нажмите на кнопку «Create repository«:
nexus_1 |
nexus_1 |
-------------------------------------------------
Создание Docker репозитория
Как только контейнер с Nexus запустится, вы можете подключиться к Docker Engine на порт 8081. В моем случае (OS X, Docker for Mac) — это адрес .
Для того, чтобы настроить репозиторий, необходимо зайти под учетной записью администратора (меню
«Sign In» в верхнем правом углу экрана):
Учетная запись администратора:
•
Логин: admin
•
Пароль: admin123
После прохождения процедуры аутентификации, зайдите в настройки:
Выберите «Repositories»
Нажмите на кнопку «Create repository«:
В списке доступных репозиториев выберите «docker (hosted)«:
Укажите имя репозитория (Name), выставьте порт 8123 (второй экспортированный порт в docker- compose.yml), а также поставьте галочку «Allow clients to use the V1 API to interact with this
Repository«, если вам нужна поддержка протокола репозитория V1:
Нажмите на кнопку «Create repository«, чтобы сохранить изменения.
Поздравляю, вы только что установили ваш приватный репозиторий на Nexus!
Работа с приватным репозиторием
Подключение к приватному репозиторию
Для того, чтобы подключиться к вашему только что созданному репозиторию, выполните команду:
$ docker login -u admin -p admin123 127.0.0.1:8123
Login Succeeded
Напомню, что 127.0.0.1 — адрес моего Docker Engine, на котором запущен мой контейнер.
Сохранение Docker образа в приватный репозиторий
Сохранение образа будет демонстрироваться на базе образа nginx:latest. Если такого образа в вашем репозитории нет, выполните команду:
$ docker pull nginx:latest
Для того, чтобы сохранить ваш образ в приватном репозитории, необходимо так же как и в публичном создать для него тег. Для этого выполните следующую команду:
$ docker tag nginx:latest 127.0.0.1:8123/my_nginx:latest
После этого можно смело сохранять образ:
$ docker push 127.0.0.1:8123/my_nginx:latest
The push refers to a repository [127.0.0.1:8123/my_nginx]
7d530616ebc2: Pushed
db07381cb585: Pushed a2ae92ffcd29: Pushed latest: digest: sha256:a5a0cadd0a8a9d2f42c0cd03a55cd0c610f6cc1466a6f9f9f96b4ae6513e9907 size: 948
Также сохраненный образ можно увидеть в Web-интерфейсе репозитория, перейдя в меню
«Components» и выбрав ваш созданный репозиторий:
Загрузка Docker образа из приватного репозитория
Для того, чтобы скачать необходимый образ из приватного репозитория необходимо пройти на нем аутентификацию и выполнить команду docker pull:
$ docker login -u admin -p admin123 127.0.0.1:8123
$ docker pull 127.0.0.1:8123/my_nginx:latest
На сегодня все. Успехов с Docker!
Обновление Docker
-
Андрей Максимов
0 комментариев
Одна из самых частых и важных операций в IT — это своевременное обновление программного обеспечения. Обновление Docker не исключение.
Узнать актуальную версию установленного на физическом или виртуальном сервере Docker можно при помощи команды
$ docker-machine ls
NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS
builder.avmaksimov.ru - generic Running tcp://81.23.10.76:2376 v1.12.3
default - virtualbox Running tcp://192.168.99.100:2376 v1.12.1
manager-1.avmaksimov.ru - generic Running tcp://185.12.28.58:2376 v1.12.3
manager-2.avmaksimov.ru - generic Running tcp://185.12.28.7:2376 v1.12.3
manager-3.avmaksimov.ru - generic Running tcp://185.12.28.39:2376 v1.12.3
node-1.avmaksimov.ru - generic Running tcp://81.23.10.217:2376 v1.12.3
node-2.avmaksimov.ru - generic Running tcp://185.12.28.80:2376 v1.12.3
node-3.avmaksimov.ru - generic Running tcp://185.12.29.107:2376 v1.12.3
vpn.avmaksimov.ru * digitalocean Running tcp://45.55.235.195:2376 v1.12.4
Также сохраненный образ можно увидеть в Web-интерфейсе репозитория, перейдя в меню
«Components» и выбрав ваш созданный репозиторий:
Загрузка Docker образа из приватного репозитория
Для того, чтобы скачать необходимый образ из приватного репозитория необходимо пройти на нем аутентификацию и выполнить команду docker pull:
$ docker login -u admin -p admin123 127.0.0.1:8123
$ docker pull 127.0.0.1:8123/my_nginx:latest
На сегодня все. Успехов с Docker!
Обновление Docker
-
Андрей Максимов
0 комментариев
Одна из самых частых и важных операций в IT — это своевременное обновление программного обеспечения. Обновление Docker не исключение.
Узнать актуальную версию установленного на физическом или виртуальном сервере Docker можно при помощи команды
$ docker-machine ls
NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS
builder.avmaksimov.ru - generic Running tcp://81.23.10.76:2376 v1.12.3
default - virtualbox Running tcp://192.168.99.100:2376 v1.12.1
manager-1.avmaksimov.ru - generic Running tcp://185.12.28.58:2376 v1.12.3
manager-2.avmaksimov.ru - generic Running tcp://185.12.28.7:2376 v1.12.3
manager-3.avmaksimov.ru - generic Running tcp://185.12.28.39:2376 v1.12.3
node-1.avmaksimov.ru - generic Running tcp://81.23.10.217:2376 v1.12.3
node-2.avmaksimov.ru - generic Running tcp://185.12.28.80:2376 v1.12.3
node-3.avmaksimov.ru - generic Running tcp://185.12.29.107:2376 v1.12.3
vpn.avmaksimov.ru * digitalocean Running tcp://45.55.235.195:2376 v1.12.4
Как видно из вывода команды самая новая версия Docker установлена на моей виртуальной машине, находящейся в
Облаке DigitalOcean
(v1.12.4). В
Облаке КРОК
у меня развернут Swarm кластер на версии Docker v1.12.3. И самая старая версия Docker установлена на моем ноутбуке в VirtualBox-е
(v1.12.1). Именно ее мы сейчас и обновим.
Важно! Помните о том, что при обновлении Docker происходит перезагрузка сервиса Docker управляющего всеми запущенными на вашем хосте контейнерами. При этом все контейнеры на обновляемом хосте будут остановлены и перезапущены автоматически только в том случае, если у них настроена политика автоматической перезагрузки. Проверить политику автоматической перезагрузки можно при помощи команды
$ docker inspect -f {{ .HostConfig.RestartPolicy.Name }} 'ID вашего контейнера';
Установить политику перезагрузки контейнера можно при помощи команды
$ docker update --restart=always 'ID вашего контейнера';
Опция —restart может принимать следующие значения:
•
no — перезапуск контейнера производиться не будет
•
on-failure[:max-retries] — перезапуск контейнера будет происходить max-retries раз в случае любого сбоя
•
always — перезапуск контейнера будет происходить всегда
•
unless-stopped — перезапуск контейнера будет происходить всегда до тех пор, пока вы явно не остановите контейнер
Процедура обновления сервера с Docker достаточно простая и выполняется всего одной командой
$ docker-machine upgrade default
Waiting for SSH to be available...
Detecting the provisioner...
Upgrading docker...
Stopping machine to do the upgrade...
Upgrading machine "default"...
Default Boot2Docker ISO is out-of-date, downloading the latest release...
Latest release for github.com/boot2docker/boot2docker is v1.12.4
Downloading /Users/amaksimov/.docker/machine/cache/boot2docker.iso from https://github.com/boot2docker/boot2docker/releases/download/v1.12.4/boot2
docker.iso.
0%....10%....20%....30%....40%....50%....60%....70%....80%....90%....100%
Copying /Users/amaksimov/.docker/machine/cache/boot2docker.iso to
/Users/amaksimov/.docker/machine/machines/default/boot2docker.iso...
Starting machine back up...
(default) Check network to re-create if needed...
(default) Waiting for an IP...
Restarting docker...
Специализированные средства обеспечения безопасности Docker
Как только выросла популярность Docker, так сразу же и начали появляться инструменты для обеспечения безопасности контейнеров.
Одним из важных инструментов являются сканеры образов. На данный есть несколько проектов:
Clair от
CoreOS
и
Docker Security Scanning
, которые интегрированы в
Docker
Hub и могут проверить наличие уязвимостей в образах автоматически, что экономит массу времени. Они могут также отправляют уведомления по электронной почте, когда уязвимость обнаружена и самостоятельно ищут доступные исправления.
Есть еще один пакет для обеспечения безопасности контейнеров —
Twistlock
. Он обеспечивает всесторонний подход к этому вопросу и охватывает множество областей безопасности. Он не только защищает контейнеры приложений, но и обеспечивает мониторинг, анализ и своевременное реагирование на угрозы. Twistlock является одним из немногих коммерчески доступных решений, которое сосредоточилось исключительно на обеспечении безопасности Docker.
Усилия Docker сообщества по защите контейнеров
Docker выпустил ряд обновлений для системы безопасности в течение последних нескольких лет, что решило множество вопросов безопасности, которые не позволяли предприятиям решиться использовать его в 2013 году. Эти разработки позволили облегчить использование Docker среди
Enterprise и обеспечили стабильный рост популярности этой технологии.
Основные вопросы в области безопасности, которые отталкивали от Docker в первые дни были namespaces и cgroups. Namespaces обеспечивают наиболее простую форму изоляции между контейнерами, предотвращая их взаимодействия друг с другом. Namespaces дают возможность использовать различные привилегии, которые могут быть назначены различным пользователям.
Cgroups же ограничивают количество ресурсов, которые разрешено использовать каждому отдельному контейнеру. Они дают ограничить доступность к ресурсам, таким как память и процессор для каждого контейнера. К контейнерам можно применить жесткие ограничения, чтобы быть уверенным в том, что процессы будут убиты, если они начинают требовать слишком много ресурсов. Эта мера обеспечивает защиту от эксплуатации от внешнего источника.
В сообществе Docker также разработали
Docker Bench
, сценарий, который может проверить контейнеры и конфигурации безопасности своих хостов на соответствие с набором лучших практик, предоставленных
Center for Internet Security
Docker Swarm по состоянию на версию Docker 1.12 встроенный в Docker, также предоставляет некоторые функции безопасности. Он обеспечивает узлы, на которых установлен Docker поддержкой сертификатов Transport Layer Security (TLS) и шифрует обмен данными между ними.
И, наконец, поддержка в Docker функций доверия к содержимому контейнеров — очень элегантное решение обеспечения возможности проверки достоверности содержимого контейнеров.
Использование Docker от поставщиков услуг
Еще один способ увеличить безопасность Docker (особенно для организаций без большого опыта работы с Docker) — это использовать управляемые хостинг платформы для запуска Docker контейнеров.
Данный подход обеспечивает удобство упрощенного управления и некоторые встроенные функции безопасности (в зависимости от поставщика конечной услуги).
Наилучшим примером является
EC2
контейнерный сервис от
Amazon
(сокращенно
ECS
), который обеспечивает работу контейнеров Docker добавляя к вышеперечисленным функциям обеспечения безопасности дополнительные, такие как Управление идентификацией и доступом (
IAM
), а также запуск ваших контейнеров только на принадлежащих вам виртуальных машинах.
Azure и
Cloud также предлагают свои собственные услуги, управляющие Docker с интегрированными в услугу всеми передовыми практиками обеспечения безопасности.
Помимо этого, у самого Docker есть коммерческий продукт
Docker Datacenter
(или Docker cloud product), который по заявлениям разработчиков является лучшим способом для запуска контейнеров, принадлежащих предприятию, если есть необходимость обеспечить дополнительную защиту Docker контейнеров, разместив их в ЦОД организации и закрыв их брандмауэром, управляемым самой организацией.
Выводы
В целом, глядя на то, как Docker улучшился за последние годы, можно смело сказать, что он значительно более безопасен сегодня по сравнению с тем, каким он был впервые увидя свет. Вообще говоря, опасения на тему безопасности Docker на ранних этапах его развития были разумными, однако, в настоящее время в Docker реализован целый ряда мер по обеспечению безопасности, которые делают его готовым для любого типа Enterprise предприятия.