====== Docker ====== ===== Установка ===== After installing Docker: A user needs to be added to the docker group. $> sudo usermod -aG docker The docker daemon needs to be started $> sudo service docker start You can set the daemon to start at boot $> sudo chkconfig docker on You can verify the docker service is running $> service docker status And one last final check $> docker run hello-world Запуск демона $ sudo service docker start service docker start Проверяем что всё получилось $ sudo docker run hello-world Автозапуск sudo systemctl enable docker ===== Команды ===== |docker ps|Показывает все запущенные контейнеры| |docker images|Список образов| |docker commit <имя образа>| Закоммитить контейнер в образ | |docker save имя_образа > ~/transfer.tar|Сохранить контейнер в файл| |docker load < /tmp/transfer.tar| извлечь контейнер из файла| |docker run -it <имя образа>|Запустить контейнер| |docker run -itd <имя образа>|Запустить контейнер как демон| |docker exec -it bash|Подключиться к контейнеру по ssh| |docker rmi -f |Удалить Image| |docker history ubuntu-nginx|История| |docker build -t <Имя образа> <путь папке скриптов докера>|Создаёт образ из скрипта| ===== Скрипт докера ===== |FROM | указывает название образа (image), который будет взят за основу.| |ENV | устанавливает переменную среды| |RUN | запустить команду в контейнере (все команды исполняются с полными правами в пределах контейнера)| |ADD | добавить файл в контейнер| |VOLUME | указать монтируемые директории (их можно монтировать на хост машину или на другие контейнеры)| |EXPOSE | указать транслируемые порты (их можно транслировать на хост машину или на другие контейнеры)| |CMD | запустить процесс (это и будет процесс, вокруг которого построен контейнер)| ===== Docker compose ===== ==== Конфиг ==== |build|Компиляет образ| |devices|Пробрасывает девайсы| |depends_on|Зависимости| |expose|Пробрасывает порт наружу для других сервисов, не затрагивая основной сервер| |extend|Потомок от лругого девайса другого конфига| |links|Ссылки на другие контейнеры| |external_links|Внешняя ссылка на другой конфиг наружу| |extra_hosts|Добавляет описание хостов в конфиг| |image|Образ кторой можно подтянуть из внешнего репозитория| * [[https://docs.docker.com/compose/]] ===== Готовые тома ===== ==== php ==== ==== nginx ==== front: image: nginx ports: - "8081:80" links: - "engine:engine" volumes: - "./source:/home/docker:ro" - "./docker/front/default.conf:/etc/nginx/conf.d/default.conf:ro" ==== mysql ==== db: image: mysql:5.7 ports: - "1306:3306" environment: - "MYSQL_ROOT_PASSWORD=your_root_password" - "MYSQL_USER=your_user" - "MYSQL_PASSWORD=your_user_password" - "MYSQL_DATABASE=your_database_name" ==== Postgress ==== ==== Node.js ==== ===== Ссылки ===== * [[https://vsupalov.com/cleaning-up-after-docker/|чистка докера]] * [[https://xakep.ru/2015/06/01/docker-usage/]] * [[https://ast.rocks/blog/docker-create-container]] * * [[https://ru.wikipedia.org/wiki/Docker]] * [[https://habrahabr.ru/post/267441/]] * [[http://eax.me/docker/]] * [[https://docs.docker.com/engine/installation/linux/ubuntulinux/]] * [[https://infoboxcloud.ru/community/blog/virtuozzo/149.html]] * [[https://infoboxcloud.ru/community/blog/virtuozzo/149.html]] * [[http://www.tothenew.com/blog/setting-up-sendmail-inside-your-docker-container/|почта]]