docker run -it ubuntu bash

apt update
apt install mc
exit
  • образы - для создания контейнеров. read only. базовая конфигурация авто
  • реестры
  • контейнеры

Образы расположены в реестре (public, private)

Docker Hub: hub.docker.com

Контейнеры - директории (создаются из образа).

Каждый контейнер изолирован.

  • create
  • start
  • stop
  • movied
  • deleted
docker compose

# запуск. файл с инструкцией в директории
docker compose up

Основные команды для работы с контейнерами

Чтобы работать без sudo:

sudo usermod -aG docker username
sudo service docker restart

Посмотреть все запущенные и остановленные контейнеры:

docker ps -a

Заново запустить контейнер

docker start NAME

ВЕЗДЕ В КОНСПЕКТЕ NAME - это имя контейнера

Остановить:

docker stop NAME

Запустить и указать имя хоста в -h

docker run -h foobar -it ubuntu bash

Информация о контейнере:

docker inspect NAME
docker inspect NAME | grep IPAddress

Запустить контейнер со своим именем:

docker run --name FooBarBaz -it ubuntu bash

Посмотреть, какие файлы в контейнере добавили и изменили:

docker diff NAME

Просмотр всех событий внутри контейнера:

docker logs NAME

Удаление контейнера:

docker rm NAME

Удалить все остановленные контейнеры:

docker rm -v $(docker ps -aq -f status=exited)

Запустить в фоновом режиме:

docker run -d

Apache:

sudo docker run -it bitnami/apache

Проброс портов (8000 - локальный порт, 8080 - порт в контейнере):

sudo docker stop NAME
sudo docker run -d -p 8000:8080 bitnami/apache

Откроем в браузере: 0.0.0.0:8000

Список образов:

docker images

Справка:

docker

Создание собственного образа

Контейнер -> Образ

docker run -it --name foobar --hostname foobar ubuntu bash
apt update
apt install cowsay
ln -s /usr/games/cowsay /usr/bin/cowsay
exit

docker commit NAME krdprog/foobar

NAME - имя контейнера, krdprog - docker ID, foobar - имя образа

Вернут sha256

Наберём и посмотрим список образов, там и наш новый:

docker images
docker run krdprog/foobar cowsay "Foo!"

Отправка образа на Docker Hub:

docker push krdprog/foobar

Можно указать tag:

docker push krdprog/foobar:tagname

Удалить образ локально:

docker rmi IMAGE_ID
docker images

Создание образов с использованием Dockerfile