Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
system:docker [2018/06/23 04:20] – [Образы] mirocowsystem:docker [2026/01/12 20:37] (текущий) 192.168.1.159
Строка 1: Строка 1:
-{{tag>vagrant chef shell puppet salt ansible docker devops virtual}}+{{tag>vagrant chef shell puppet salt ansible docker devops virtual alpine}}
  
 ====== Docker ====== ====== Docker ======
Строка 5: Строка 5:
 {{https://habrastorage.org/files/67f/73a/551/67f73a551a254c19854adf3b4665a7bb.png?300}} {{https://habrastorage.org/files/67f/73a/551/67f73a551a254c19854adf3b4665a7bb.png?300}}
  
-| VIRTUAL MACHINES                                                                                                                                                  | CONTAINERS                                                                                                                                                                                                                                                                                                                 | 
-| {{https://www.docker.com/sites/default/files/WhatIsDocker_2_VMs_0-2_2.png?200}}                                                                                   | {{https://www.docker.com/sites/default/files/WhatIsDocker_3_Containers_2_0.png?200}}                                                                                                                                                                                                                                       | 
-| Virtual machines include the application, the necessary binaries and libraries, and an entire guest operating system -- all of which can amount to tens of GBs.   | Containers include the application and all of its dependencies --but share the kernel with other containers, running as isolated processes in user space on the host operating system. Docker containers are not tied to any specific infrastructure: they run on any computer, on any infrastructure, and in any cloud.   | 
  
-===== Установка =====+====== Установка ======
  
-  * https://docs.docker.com/engine/installation/linux/debian/ +===== Ubuntu =====
- +
-nano /etc/apt/sources.list +
-<code> +
- deb https://apt.dockerproject.org/repo debian-stretch main +
-</code>+
  
 <code bash> <code bash>
-$ apt autoremove --purge "lxc-docker*" "docker.io*docker-engine docker-compose +$ apt update && \ 
-apt install docker-engine docker-compose +apt install ca-certificates curl gnupg lsb-release -y && \ 
-$ docker run hello-world +mkdir -p /etc/apt/keyrings && \ 
-$ cd ./project/ +curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg && \ 
-docker-compose up+echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null && \ 
 +apt update && \ 
 +apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin -y
 </code> </code>
  
-  * Запуск производится от root +===== Debian =====
-  * [[system:docker#компаненты|docker]] - клиент для управления docker-engine +
-  * [[system:docker#компаненты|docker-engine]] - движок ситемы docker +
-  * [[system:docker#компаненты|docker-compose]] - Если установлен компоновщик/композитор, то контейнеры следует запускать docker-compose up +
-  * [[system:docker#компаненты|docker-machine]] - https://github.com/docker/machine +
- +
-=== Запуск от пользователя ===+
  
 <code bash> <code bash>
-sudo groupadd docker +apt update && \ 
-sudo gpasswd -${USER} docker +apt install ca-certificates curl gnupg lsb-release -y && \ 
-$ sudo service docker restart+mkdir -p /etc/apt/keyrings && \ 
 +curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc && \ 
 +echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null && \ 
 +apt update && \ 
 +apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y
 </code> </code>
-==== Mac OS ==== 
  
-<code bash> +====== Docker ======
-$ brew install docker docker-machine docker-compose docker-machine-driver-xhyve +
-</code> +
-Подробнее: https://github.com/zchee/docker-machine-driver-xhyve +
-==== Установить последнюю версию ==== +
- +
-<note tip><code bash> +
-$ curl -L "https://github.com/docker/compose/releases/download/1.9.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose +
-$ chmod +x /usr/local/bin/docker-compose +
-</code> +
-Работает с docker-compose.yml файлом</note> +
-Подробнее: https://docs.docker.com/compose/install/\\ +
-Пример: https://docs.docker.com/compose/gettingstarted/ +
-===== Настройка ===== +
- +
-==== Dockerfile ==== +
- +
-  * FROM — указывает название образа (image), который будет взят за основу. +
-  * ENV — устанавливает переменную среды +
-  * RUN — запустить команду в контейнере (все команды исполняются с полными правами в пределах контейнера) +
-  * ADD — добавить файл в контейнер +
-  * VOLUME — указать монтируемые директории (их можно монтировать на хост машину или на другие контейнеры) +
-  * EXPOSE — указать транслируемые порты (их можно транслировать на хост машину или на другие контейнеры) +
-  * CMD — запустить процесс (это и будет процесс, вокруг которого построен контейнер) +
- +
-  * [[system:vagrant:docker:Dockerfile]] +
-  * [[system:vagrant:docker:supervisord.conf]] +
-==== docker-compose ==== +
- +
-  * docker-compose - средство сборки и настройки контейнеров +
-    * docker-compose up - поднять контейнеры с учетом правил сборки docker-compose.yml +
-    * -d - Для запуска сервисов в фоне (for "detached" mode)+
  
 <code bash> <code bash>
-$ docker-compose config +sudo groupadd docker 
-$ docker-compose up+$ sudo usermod -aG docker $USER 
 +newgrp docker
 </code> </code>
  
-Отдельно стоит запомнить команду docker-compose up. Она представляет собой упрощенный вызов docker-compose build && docker-compose run+====== Docker Swarm ======
  
-Сборочные контейнеры в связке с docker-compose удобно использовать в окружении разработчика, когда требуется, например, производить некоторые действия при изменении исходников. +Если Docker Swarm создается
- +
-<note tip>С docker-compose все просто, но есть нюансы. Использовать one shot контейнеры возможно только, если docker-compose up выполняется с опцией “-d”, в противном случае по завершении работы такого контейнера, compose останавливает все остальные контейнеры.</note>  +
- +
-=== Рабочий процесс === +
- +
-Определение Dockerfile для каждого из сервисов +
-Определение связей между сервисами при помощи [[system:docker:docker-compose.yml|docker-compose.yml]] +
-Запус системы при помощи docker-compose up +
- +
-== Документация == +
- +
-  * https://ast.rocks/blog/docker-orchestration +
- +
-==== docker-compose-mixer ==== +
- +
-Содержание конфигурационного docker-compose-mixer.yml файла по своей сути является небольшим конфигом, который описывает как именно два или более проектов будут стартовать вместе.  +
- +
-<note tip><code bash> +
-$ wget https://github.com/paunin/docker-compose-mixer/blob/master/dist/dc-mixer?raw=true -O /usr/local/bin/docker-compose-mixer +
-$ chmod +x /usr/local/bin/docker-compose-mixer +
-</code> +
-Работает с docker-compose-mixer.yml файлом</note> +
- +
-Решает проблемы: +
- +
-  * Конфликты имен контейнеров c обновлением всего дерева конфигурации +
-  * Конфликты портов пробрасываемых на хост-машину +
-  * Переопределение свойств сервиса +
-  * Разрешение относительных путей +
-  * Удаление лишних или дублирующихся сервисов +
- +
-Подробнее: https://habrahabr.ru/post/274581/ +
- +
-==== docker-machine ==== +
- +
-В GitHub-репозитории Docker Machine можно найти три bash-сценария, которые упрощают работу команд docker и docker-machine. Они отвечают за выполнение команд и пользовательские настройки командной строки bash. +
- +
-=== Использование === +
- +
-== создания нового хоста == +
- +
-<code bash>$ docker-machine create --driver virtualbox machine-name</code> +
- +
-  * -d --driver задаёт драйвер ([[https://docs.docker.com/machine/drivers/|список доступных драйверов]]) +
-    * generic  +
-    * [[https://github.com/zchee/docker-machine-driver-xhyve|xhyve]] - (Используется для MacOs) +
-    * virtualbox +
-    * [[https://github.com/Parallels/docker-machine-parallels|parallels]] +
- +
-**generic**+
 <code bash> <code bash>
-$ docker-machine create \ +$ docker swarm init 
-  --driver generic \ +# В вответ docker swarm join --token SWMTKN-1-54k2k418tw2j0juwm3inq6crp4ow6xogswihcc5azg7oq5qo7e-a3rfeyfwo7d93heq0y5vhyzod 172.31.245.104:2377 
-  --generic-ip-address=203.0.113.81 \ +# Эту команду необходимо будет выполнить на каждой присоединяймой ноде
-  --generic-ssh-key ~/.ssh/id_rsa \ +
-  machine-name+
 </code> </code>
  
-  * где machine-name - название создаваемой машины +Если необходимо присоеденить к уже существующему
- +
-== запустить == +
- +
-<code bash>$ docker-machine start machine-name</code> +
- +
-== выполнение команд на удаленном хосте == +
- +
-<code bash>$ docker-machine ssh machine-name cat /etc/hosts</code> +
- +
-или подключится к удаленному хосту +
- +
-<code bash>$ docker-machine ssh machine-name</code> +
- +
-== просмотреть список доступных хостов == +
- +
-<code bash>$ docker-machine ls</code> +
- +
-== получить подробную информацию о хосте == +
- +
-<code bash>$ docker-machine inspect machine-name</code> +
- +
-== настройки соединения хоста, == +
- +
-<code bash>$ docker-machine config machine-name</code> +
- +
-== отображает IP-адрес хоста == +
- +
-<code bash>$ docker-machine ip machine-name</code> +
- +
-== отключение == +
- +
-<code bash>$ docker-machine stop machine-name</code> +
- +
-== удаление == +
- +
-<code bash>$ docker-machine rm machine-name</code> +
- +
-== список удаленных хостов == +
- +
-<code bash>$ docker-machine ls</code> +
- +
-=== Сценарии === +
- +
-== 1 Сценарий == +
- +
-<code bash>$ wget https://raw.githubusercontent.com/docker/machine/master/contrib/completion/bash/docker-machine-prompt.bash -O /etc/bash_completion.d/docker-machine-prompt.bash</code> +
- +
-Чтобы завершить установку этого файла, нужно  установить пользовательское значение переменной PS1 в файле .bashrc. PS1 – это специальная переменная оболочки, которая используется для редактирования командной строки bash. Откройте файл: +
- +
-<code>nano ~/.bashrc</code> +
- +
-Этот файл содержит три строки, которые начинаются с PS1: +
- +
-<code>PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ ' +
-PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ ' +
-PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"</code> +
- +
-В конец каждой строки нужно вставить <text>$(__docker_machine_ps1 " [%s]")</text>. Должно получиться следующее: +
- +
-<code>PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]$(__docker_machine_ps1 " [%s]")\$ ' +
-PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w$(__docker_machine_ps1 " [%s]")\$ ' +
-PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$(__docker_machine_ps1 " [%s]")$PS1"</code> +
- +
-Теперь имя активной машины будет отображаться в командной строке оболочки. +
- +
-== 2 Сценарий == +
- +
-Второй сценарий называется docker-machine-wrapper.bash. Он добавляет к команде docker-machine подкоманду use, которая позволяет быстро переключаться между машинами Docker. Чтобы загрузить этот сценарий, наберите: +
- +
-<code bash>$ wget https://raw.githubusercontent.com/docker/machine/master/contrib/completion/bash/docker-machine-wrapper.bash -O /etc/bash_completion.d/docker-machine-wrapper.bash</code> +
- +
-== 3 Сценарий == +
- +
-Последний сценарий называется docker-machine.bash. Он отвечает за завершение команд docker-machine. +
- +
-<code bash>$ wget https://raw.githubusercontent.com/docker/machine/master/contrib/completion/bash/docker-machine.bash -O /etc/bash_completion.d/docker-machine.bash</code> +
- +
-Чтобы активировать внесённые изменения, закройте и снова откройте терминал. Если вы находитесь в сессии SSH, закройте и снова откройте сессию. Теперь завершение команд docker и docker-machine включено. +
-===== Контейнер ===== +
- +
-==== О контейнере ==== +
 <code bash> <code bash>
-$ docker info +$ docker swarm join-token worker 
- +# В вответ docker swarm join --token SWMTKN-1-54k2k418tw2j0juwm3inq6crp4ow6xogswihcc5azg7oq5qo7e-a3rfeyfwo7d93heq0y5vhyzod 172.31.245.104:2377 
-Containers: 9 +# Эту команду необходимо будет выполнить на каждой присоединяймой ноде
- Running:+
- Paused:+
- Stopped:+
-Images: 28 +
-Server Version: 1.12.5 +
-Storage Driver: aufs +
- Root Dir: /var/lib/docker/aufs +
- Backing Filesystem: extfs +
- Dirs: 90 +
- Dirperm1 Supported: true +
-Logging Driver: json-file +
-Cgroup Driver: cgroupfs +
-Plugins: +
- Volume: local +
- Network: null overlay host bridge +
-Swarm: inactive +
-Runtimes: runc +
-Default Runtime: runc +
-Security Options: seccomp +
-Kernel Version: 3.16.0-4-amd64 +
-Operating System: Debian GNU/Linux stretch/sid +
-OSType: linux +
-Architecture: x86_64 +
-CPUs: 2 +
-Total Memory: 7.8 GiB +
-Name: nas.ztc +
-ID: 6JPA:SQDY:WJRJ:F2R7:NDTL:SIYE:Z6UK:AVIH:3EZS:7GJM:UCXZ:KPDU +
-Docker Root Dir: /var/lib/docker +
-Debug Mode (client): false +
-Debug Mode (server): false +
-Registry: https://index.docker.io/v1/ +
-WARNINGNo memory limit support +
-WARNING: No swap limit support +
-WARNING: No kernel memory limit support +
-WARNING: No oom kill disable support +
-WARNING: No cpu cfs quota support +
-WARNING: No cpu cfs period support +
-Insecure Registries: +
- 127.0.0.0/8+
 </code> </code>
  
-==== Статус ====+====== Настройки ======
  
-<code bash> +=== Log drivers: управление логами ===
-$ docker stats+
  
-CONTAINER           CPU %               MEM USAGE LIMIT   MEM %               NET I/O               BLOCK I/O             PIDS +nano /etc/docker/daemon.json 
-c8d1eb7a8f7a        0.02%               0 B / 0 B           0.00%               38.07 kB / 649.1 kB   258 kB / 0 B          0 +<code json> 
-271073504ac9        0.10%               0 B / 0 B           0.00%               6.517 kB / 648 B      0 B / 4.096 kB        0 +{ 
-462c8942181f        0.00%               0 B / 0 B           0.00%               7.701 kB / 648 B      0 B / 0 B             0 +  "log-driver": "local", 
-94e2422ce234        0.33%               0 B / 0 B           0.00%               22.98 MB / 558.9 kB   1.798 MB / 314.8 MB   0 +  "log-opts": { 
-6a43329858d9        18.18%              0 B / 0 B           0.00%               7.431 kB / 648 B      249.9 kB / 20.62 GB   0 +    "max-size": "10m", 
-404d5b6bf024        0.08%               0 B / 0 B           0.00%               7.959 kB / 648 B      0 B / 0 B             0+    "max-file": "3" 
 +  } 
 +}
 </code> </code>
  
-==== Работа с контейнером ==== +====== API ======
- +
-<code bash> +
-$ docker exec -it security-mysql /bin/bash +
-$ docker exec -it security-mysql cat /etc/passwd +
-</code> +
- +
-==== Список контейнеров (запущенных и нет) ==== +
- +
-<code bash> +
-$ docker ps -a +
-CONTAINER ID        IMAGE                               COMMAND                  CREATED             STATUS                   PORTS                                                NAMES +
-c8d1eb7a8f7a        teratek_web                         "/usr/bin/supervisord"   About an hour ago   Up 57 minutes            443/tcp, 0.0.0.0:80->80/tcp, 9000/tcp                security-web +
-271073504ac9        stefobark/sphinxdocker              "sh -c '/bin/sleep 5 "   About an hour ago   Up 57 minutes            0.0.0.0:9306->9306/tcp, 0.0.0.0:9312->9312/tcp       security-sphinx +
-462c8942181f        imkulikov/docker-grand-ambassador   "/usr/bin/grand-ambas"   About an hour ago   Up 57 minutes                                                                 security-proxy +
-94e2422ce234        mvertes/alpine-mongo                "/root/run.sh mongod"    About an hour ago   Up 57 minutes            0.0.0.0:27017->27017/tcp, 0.0.0.0:28017->28017/tcp   security-mongo +
-6a43329858d9        mysql                               "docker-entrypoint.sh"   About an hour ago   Up 57 minutes            0.0.0.0:3306->3306/tcp                               security-mysql +
-404d5b6bf024        redis:alpine                        "docker-entrypoint.sh"   About an hour ago   Up 57 minutes            6379/tcp                                             security-redis +
-</code> +
- +
-  * -a - Позволяет увидеть не запущенные контейнеры +
-  * -l - Выведет список недавно созданных контейнеров +
-  * где docker-grand-ambassador прокси для 2-ух направленной связи контейнеров +
-    * curl -L http://security-web/sphinx_yiic/products +
- +
-==== Остановка контейнера ==== +
- +
-<code> +
-$ docker stop 7d0eb5cd3b3b +
-</code> +
- +
-==== Удаление контейнера ==== +
- +
-<code bash> +
-$ docker rm 7d0eb5cd3b3b +
-</code> +
- +
-===== Образы ===== +
- +
- +
-<note tip>Для MacOs устанавливается в отдельную виртуальную машину. К которой можно законектится с помощью tty. \\ +
-**screen ~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/tty**</note> +
- +
-==== Расположение ==== +
- +
-<code bash> +
-$ -la /var/lib/docker/containers +
-total 200 +
-drwx------   50 root     root          4096 Jun 23 04:04 . +
-drwx--x--x   14 root     root          4096 Jun 21 23:53 .. +
-drwx------    4 root     root          4096 Jun 21 23:53 02e4d3d474defd8006033dc9eae454c4d34887587ce37c84beeaf5eda1980774 +
-</code> +
-==== Поиск образов ==== +
- +
-<code bash>$ docker search alpine</code> +
- +
-==== Загрузка образа в систему ==== +
- +
-<code bash> +
-$ docker pull alpine +
-$ docker pull alpine:latest +
-</code> +
-==== Чистые образы ==== +
- +
-  * https://hub.docker.com/_/busybox/ +
-  * https://hub.docker.com/_/alpine/ +
-  * https://hub.docker.com/_/debian/ +
- +
-==== Готовые сервисы ==== +
- +
-  * https://hub.docker.com/r/mvertes/alpine-mongo/ (mvertes/alpine-mongo) 78 MB +
-  * https://hub.docker.com/r/vinsonzou/alpine-mariadb/ (vinsonzou/alpine-mariadb) 48.7 MB +
-  * https://hub.docker.com/r/yobasystems/alpine-mariadb/ (yobasystems/alpine-mariadb) 47.9 MB +
-  * https://hub.docker.com/r/jaskipper/alpine-mariadb/ (jaskipper/alpine-mariadb) 8.5 MB +
-  * https://hub.docker.com/_/php/ (php, php:7.1-alpine, php:7-alpine, php:alpine, php:5.6-alpine, 5-alpine итд) +
-  * https://hub.docker.com/r/matriphe/alpine-php/ (matriphe/alpine-php:fpm, matriphe/alpine-php:cli, matriphe/alpine-php:fpm7) <50 MB +
-  * https://hub.docker.com/_/redis/ (redis:alpine) ~5 MB + redis +
-  * https://hub.docker.com/r/stefobark/sphinxdocker/ (stefobark/sphinxdocker) +
-  * https://hub.docker.com/_/nginx/ (nginx:alpine) ~5 MB + nginx +
-  * https://hub.docker.com/_/memcached/ - (memcached:alpine) ~5 MB + memcached  +
- +
-==== Готовые сборки ==== +
- +
-  * https://hub.docker.com/r/matriphe/alpine-nginx/ (matriphe/alpine-nginx) +
-  * https://github.com/kost/docker-alpine (kost/docker-alpine) +
-  * https://hub.docker.com/r/leanlabs/npm-builder/ (leanlabs/npm-builder) +
-  * https://hub.docker.com/r/imega/composer/ (imega/composer) 43 MB +
-  * https://hub.docker.com/r/leanlabs/kanban/ (leanlabs/kanban) - Аналог Trello +
-==== Создание образа ==== +
- +
-<code bash> +
-$ docker build -t image-name . +
-</code> +
- +
-  * Где . папка, где расположен Dockerfile +
-  * container-name - название создаваемого контейнера +
- +
-==== Вывод списка образов ==== +
- +
-<code bash> +
-$ docker images +
-</code> +
- +
-==== Запуск образа ==== +
- +
-<code bash> +
-$ docker run -d -p 80:80 -t image-name +
-$ docker run -d --publish 8080:80 -t image-name +
-</code> +
- +
-  * 8080 - Порт хост машины +
-  * 80 - Порт контейнера +
-  * -i - откроет интерактивную оболочку контейнера (лучше не использова, а подключаться с помощью docker exec) +
-  * -t - название запускаемого контейнера +
- +
- +
-===== Пример управления контейнером из другого контейнера ===== +
- +
-<code bash>$ docker run -v /var/run/docker.sock:/var/run/docker.sock \ +
-       -v $(which docker):/bin/docker \ +
-       -ti nachine_name</code> +
- +
-===== Пространства ===== +
- +
-Применяется для монтирования пространств из внешних источников. К примеру virtualbox +
- +
-  * https://docs.docker.com/engine/extend/plugins_volume/ +
- +
-===== Сетевые драйверы ===== +
- +
-  * https://docs.docker.com/engine/extend/plugins_network/ +
- +
-===== Логирование ===== +
- +
-  * https://docs.docker.com/engine/admin/logging/overview/ +
- +
-====== Рецепты ====== +
- +
-  * [[system:docker:recepts:yii2]] +
-  * https://github.com/gusnips/vagrant-yii2 +
-  * https://github.com/trntv/yii2-starter-kit +
-  * https://github.com/highestgoodlikewater/yii2-appliance-docker-vagrant +
-  * https://github.com/acorncom/yii2-advanced-with-vagrant +
- +
-====== Проблемы и их решения ====== +
- +
-===== Circular import between fpm and nginx ===== +
- +
-Возникает при циклическом связывании контейнеров (2-ух сторонее связывание) +
-В качестве решенияпроблемы, на данный момент, можно воспользоваться прокси сервером/контейнером docker-grand-ambassador +
- +
-<code yaml> +
-fpm: +
-  build: ./build/fpm +
-  links: +
-    - ambassador:nginx +
-nginx: +
-  build: ./build/nginx +
-  links: +
-    - ambassador:fpm +
-ambassador: +
-  image: cpuguy83/docker-grand-ambassador +
-  volumes: +
-    - "/var/run/docker.sock:/var/run/docker.sock" +
-  command: "-name testapp_fpm_1 -name testapp_nginx_1" +
-</code> +
- +
-===== ERROR: Couldn't connect to Docker daemon - you might need to rundocker-machine start default` ===== +
- +
-скорее всего вам потребуется сделать следующее: +
-<code bash>$ docker-machine create --driver=xhyve dev --xhyve-experimental-nfs-share</code> +
-====== Компоненты ====== +
- +
-  * [[https://docs.docker.com/|Docker]] +
-  * [[https://docs.docker.com/compose/|docker-compose]] - Компановщик контейнеров +
-  * [[https://docs.docker.com/machine/|docker-machine]] - Это инструмент, позволяющий управлять удалёнными хостами Docker с локального компьютера. +
-  * [[https://www.docker.com/products/docker-toolbox|Docker Toolbox]] - Комплект необходимых программ для Windows или MacOs (Внимание!!! ставит VirtualBox ) +
-  * [[https://www.weave.works/products/weave-scope/|Weave Scope]] - Это очень удобный и наглядный сервис для мониторинга Docker контейнеров. +
-  * [[https://github.com/google/cadvisor|cAdvisor]] - Система мониторинга за контейнерами +
- +
-====== Документация / Статьи ====== +
- +
-  * [[https://habr.com/post/261415/|Свой облачный хостинг за 5 минут. Часть 1: Ansible, Docker, Docker Swarm]] +
-  * [[http://habrahabr.ru/post/262397/|Свой облачный хостинг за 5 минут. Часть 2: Service Discovery]] +
-  * [[https://habr.com/post/264269/|Свой облачный хостинг за 5 минут. Часть 3: Consul, Registrator, Consul-Template]] +
-  * [[https://habrahabr.ru/post/277699/|о технологии]] +
-  * https://habrahabr.ru/post/253877/ :!: +
-  * https://habrahabr.ru/post/309556/ :!: +
-  * http://ru.stackoverflow.com/questions/tagged/docker-compose +
-  * https://habrahabr.ru/post/263083/ +
-  * https://blog.amartynov.ru/docker-mysql/ +
-  * http://onedev.net/post/579 +
-  * https://dou.ua/lenta/articles/vagrant/ +
-  * https://ast.rocks/blog/docker-create-container +
-  * https://xakep.ru/2015/06/04/docker-faq/ +
-  * http://dotsandbrackets.com/quick-intro-to-docker-compose-ru/ +
-  * https://toster.ru/q/200627 +
-  * http://devacademy.ru/posts/ustanovka-i-ispol-zovaniie-docker-compose-na-ubuntu-14-04/ +
-  * https://ast.rocks/blog/docker-orchestration +
-  * https://docs.docker.com/docker-for-mac/#uninstall-or-reset+
  
-====== Другие системы виртуализации ======+  * [[docker-socket|Docker Socket]]
  
-{{topic>[virtual]}}+====== Мониторинг ======
  
 +  * [[software:monitoring:promtail-loki-grafana]]
 +  * [[software:monitoring:fluent-bit-loki-grafana]]
 +  * [[software:monitoring:fluent-bit-fluentd-loki-grafana]]