Образ - шаблон только для чтения Реестры хранилище образов hub.docker.com Контейнеры - создаются из образа и содержут все что надо для работы приложения Установка docker sudo yum install -y yum-utils \ device-mapper-persistent-data \ lvm2 yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo yum install docker-ce docker-ce-cli containerd.io systemctl enable docker systemctl start docker Установка Docker compose curl -L "https://github.com/docker/compose/releases/download/1.25.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose chmod +x /usr/local/bin/docker-compose ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose docker-compose --version Настройка системы usermod -aG docker kirill основные команды docker docker run -it debian bash - создание контейнера с интерактивным терминалом на базе образа debian и запустить интерпритатор bash (-it интерактив терминал ) docker run -it -h container.mkm debian bash - создание контейнера с указанным hostname docker run -it -h container.mkm --name container_kirilla debian bash docker ps -a - просмотр всех контейнеров, в том числе и остановленных docker images - посмотреть список всех образов docker start name_conainer - запуск созданного контейнера по имени docker start id_container запуск созданного контейнера по id docker inspect container_name получение информации о контейнере по имени docker inspect container_id получение информации о контейнере по id docker diff container_name - посмотерть изменения в котейнере docker logs container_name - вывсти список событий контейнера docker exec -it container_kirilla bash - зайти в контейнер установим mc внутри контейнера проверим чем отличаются нынешнее состояние контейнера от оригинального образа docker diff blissful_tharp docker ps -aq -f status=exited - вывод всех котнейнеров со стетусом exited docker rm container_name/container_id -удаление контейнера docker rm $(docker ps -aq -f status=exited) - подстановка всех остановленных контейнеров в удаление docker run -d bintami/apache -запускаем в фоновом режиме контейнер из образа bintami/apache с docker hub docker run -d httpd -запускаем в фоновом режиме контейнер из образа bintami/apache с docker hub docker ps -a смотрим испрльзуемые порты docker stop container_name/container_id docker run -d -p 80:80 httpd - запуск с пробросом портов проброс порта осуществляется только при создании контейнера если там уже что-то переделано сохраняем в image и раскатываем заново docker exec -i -t создание собственного образа в hub.docker.com регистрируемся и создаем публичный или приватный репозиторий создадим контейнер с правильными названием и хостнеймом docker run -it --name mc --hostname mc.localhost centos bash Внутри него установим и настроим нужный софт превращаем контейнер в образ docker commit mc kmmorozov/mc логинимся на hub.docker.com docker login - логинимся docker push kmmorozov/mc - заливаем образ для проверки удаляем все контейнеры и образы docker stop $(docker ps -a -q) docker rm $(docker ps -a -q) docker rmi $(docker images -a -q) docker run -it kmmorozov/mc bash работа с dockerfile создадим каталог с для проекта mkdir myfirstapp создадим файл с инструкциями touch Dockerfile #!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! FROM centos RUN yum -y update && yum install mc -y #!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! docker build -t kmmorozov/centosmc . инструкция ENTRYPOINT создадим папку для проекта counter mkdir echo1 touch Dockerfile #!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! MAINTAINER Kirill Morozov RUN yum -y update ENTRYPOINT ["echo"] #!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! docker build -t kmmorozov/echo1 Синтаксис файла https://dker.ru/docs/docker-engine/engine-reference/dockerfile-reference/ пример с апачем mkdir apache cd apache touch Dockerfile в папке проекта создаем папку ./public-html/ и там index.html с текстом #!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! FROM httpd:2.4 MAINTAINER Kirill Morozov COPY ./public-html/ /usr/local/apache2/htdocs/ #!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! docker build -t kmmorozov/apache связка двух контейнеров phpmyadmin и mysql найдем mysql на dockerhub docker run --name mymysql -e MYSQL_ROOT_PASSWORD=123qaz -d mysql docker run --name mymyadmin -d --link mymysql:db -p 8080:80 phpmyadmin/phpmyadmin