Команды — различия между версиями

Материал из megapuper
Перейти к: навигация, поиск
(Новая страница: «https://docs.docker.com/engine/reference/commandline/cli/ https://habr.com/ru/company/flant/blog/336654/ Команды для управления конте…»)
 
 
(не показано 47 промежуточных версий этого же участника)
Строка 1: Строка 1:
https://docs.docker.com/engine/reference/commandline/cli/
+
'''<font color=blue>Команды управления образами</font>'''
 
 
https://habr.com/ru/company/flant/blog/336654/
 
 
 
 
 
Команды для управления контейнерами
 
 
docker container my_command
 
 
 
create — создание контейнера из образа
 
    start — запуск существующего контейнера
 
    run — создание контейнера и его запуск
 
    ls — вывод списка работающих контейнеров
 
    inspect — вывод подробной информации о контейнере
 
    logs — вывод логов
 
    stop — остановка работающего контейнера с отправкой главному процессу контейнера сигнала SIGTERM, и, через некоторое время, SIGKILL
 
    kill — остановка работающего контейнера с отправкой главному процессу контейнера сигнала SIGKILL
 
    rm — удаление остановленного контейнера
 
 
 
docker container create my_repo/my_image:my_tag - создание контейнера
 
docker container start my_container - запуск существующего контейнера
 
 
 
docker container run my_image - создать и запустить контейнер
 
docker container run -it -p 1000:8000 --rm my_image
 
docker run --link mysqlserver:db -p 8080:8080 adminer - соединение двух контейнеров м/у собой. в данном случае php-приложения с базой
 
 
 
 
 
-i - благодаря этому флагу поток STDIN поддерживается в открытом состоянии даже если контейнер к STDIN не подключён
 
-t - благодаря этому флагу выделяется псевдотерминал, который соединяет используемый терминал с потоками STDIN и STDOUT контейнера
 
Для того чтобы получить возможность взаимодействия с контейнером через терминал нужно совместно использовать флаги -i и -t.
 
 
 
-p - это интерфейс(порт), благодаря которому контейнер взаимодействует с внешним миром. Конструкция 1000:8000 перенаправляет порт Docker 8000 на порт 1000 компьютера, на котором выполняется контейнер
 
 
 
--rm - флаг автоматически удаляет контейнер после того, как его выполнение завершится
 
 
 
-d -  флаг запускающий контейнер в фоновом режиме (как демон)
 
 
 
--name - имя контейнера
 
 
 
docker container logs -f my_container - вывести логи контейнера
 
docker top my_container - процессы в контейнере
 
 
 
docker container ls - список запущенных контейнеров
 
docker container ls -a - отобразит не запущенные контейнеры
 
docker container run -d my_image - контейнер запустится в фоновом режиме
 
docker container stop my_container - завершение работы контейнера(у контейнера есть, по умолчанию, 10 секунд, на то, чтобы завершить работу)
 
docker container kill my_container - остановить контейнер быстро, не заботясь о корректном завершении его работы
 
docker container kill $(docker ps -q) - быстро остановить все работающие контейнеры
 
docker container rm my_container - удаление остановленного контейнера
 
docker container rm $(docker ps -a -q) - удалить все контейнеры, которые на момент вызова этой команды не выполняются
 
docker container rm $(docker ps -aq -f status=exited) - тоже самое
 
  
 +
* '''docker image''' ''command''
 +
      '''build''' — сборка образа
 +
      '''pull''' - скачать образ
 +
      '''push''' — отправка образа в удалённый реестр
 +
      '''ls''' — вывод списка образов
 +
      '''rm''' — удаление образа
 +
      '''history''' — вывод сведений о слоях образа
 +
      '''inspect''' — вывод подробной информации об образе, в том числе — сведений о слоях
 +
     
  
Команды для управления образами
+
# docker image build --no-cache -t my_repo/my_image:my_tag . - собрать образ Docker
docker image my_command
+
'''--no-cache''' - отключить кеширование<br>
 +
'''-t''' - флаг указывает Docker на то, что создаваемому образу надо назначить предоставленный в команде тег. В данном случае это my_tag. Точка в конце команды указывает на то, что образ надо собрать с использованием файла Dockerfile, находящегося в текущей рабочей директории
  
    build — сборка образа
+
# docker image push my_repo/my_image:my_tag - отправить образ в реестр Docker Hub, предварительно надо залогиниться (docker login)
        pull - скачать образ
+
# docker image rm my_image - удалить образ, если образ хранится в удалённом репозитории, он оттуда удалён не будет(docker rmi my_image - аналог)
    push — отправка образа в удалённый реестр
+
# docker image rm $(docker images -aq) - удалить все локальные образы
    ls — вывод списка образов
+
Перед удалением образа надо удалить контейнер который использует этот образ<br>
    history — вывод сведений о слоях образа
+
'''-f''' - удалит даже если к образу привязан контейнер
    inspect — вывод подробной информации об образе, в том числе — сведений о слоях
 
    rm — удаление образа
 
  
docker image build -t my_repo/my_image:my_tag . - собрать образ Docker
+
Есть полезная утилита для исследования образов - '''dive'''
  
-t - флаг указывает Docker на то, что создаваемому образу надо назначить предоставленный в команде тег. В данном случае это my_tag
 
Точка в конце команды указывает на то, что образ надо собрать с использованием файла Dockerfile, находящегося в текущей рабочей директории
 
  
docker image push my_repo/my_image:my_tag - отправить образ в реестр Docker Hub, предварительно надо залогиниться (docker login)
+
'''<font color=blue>Команды управления контейнерами</font>'''
docker image rm my_image - удалить образ(если образ хранится в удалённом репозитории, он оттуда удалён не будет)
 
docker image rm $(docker images -a -q) - удалить все локальные образы
 
Перед удалением надо удалить контейнер который пользует этот образ
 
-f - удалит даже если к образу привязан контейнер
 
  
 +
* '''docker container''' ''command''
 +
      '''create''' - создание контейнера из образа
 +
      '''run''' - создание контейнера и его запуск
 +
      '''start''' - запуск существующего контейнера
 +
      '''stop''' - остановка работающего контейнера с отправкой главному процессу контейнера сигнала SIGTERM, и, через некоторое время, SIGKILL
 +
      '''ls''' - вывод списка работающих контейнеров
 +
      '''kill''' - остановка работающего контейнера с отправкой главному процессу контейнера сигнала SIGKILL
 +
      '''rm''' - удаление остановленного контейнера
 +
      '''inspect''' - вывод подробной информации о контейнере
 +
      '''logs''' - вывод логов
  
В исследовании образа хорошо помогает утилита dive
+
# docker container create my_repo/my_image:my_tag - создание контейнера
 +
# docker container start my_container - запуск существующего контейнера
 +
# docker container run -h docker.site.ru --name first_container my_image - создать и запустить контейнер
 +
# docker container run -it -p 8080:8000 -e TZ=Europe/Moscow --rm my_image
 +
# docker run --link mysqlserver:db -p 8080:8080 adminer - соединение двух контейнеров м/у собой. в данном случае php-приложения с базой, в контейнере adminer ссылка на контейнер mysqlserver должна быть обозначена именем db. для этого в контейнере adminer будет создана запись в /etc/hosts
 +
'''-i''' - благодаря этому флагу поток STDIN поддерживается в открытом состоянии даже если контейнер к STDIN не подключён<br>
 +
'''-t''' - благодаря этому флагу выделяется псевдотерминал, который соединяет используемый терминал с потоками STDIN и STDOUT контейнера<br>
 +
Для того чтобы получить возможность взаимодействия с контейнером через терминал нужно совместно использовать флаги -i и -t
  
 +
'''-p''' - это интерфейс(порт), благодаря которому контейнер взаимодействует с внешним миром. Конструкция 8080:8000, перенаправляет порт 8080 хоста на порт 8000 Docker-а, на котором выполняется контейнер<br>
 +
'''-d''' -  флаг запускающий контейнер в фоновом режиме (как демон)<br>
 +
'''-e''' - флаг передаёт переменные окружения<br>
 +
'''-h(--hostname)''' - задаёт имя хоста<br>
 +
'''--rm''' - флаг автоматически удаляет контейнер после того, как его выполнение завершится<br>
 +
'''--name''' - имя контейнера<br>
 +
'''--memory=100m''' - ограничить использование памяти до 100mb<br>
 +
'''--cpus=".2"''' - ограничить использование cpu, от целой секунды будет использоваться 0.2(1cpu это 1сек использования cpu)
  
 +
# docker container logs -f my_container - вывести логи контейнера
 +
# docker top my_container - процессы в контейнере
 +
# docker container ls - список запущенных контейнеров
 +
# docker container ls -a - отобразит не запущенные контейнеры
 +
# docker container run -d my_image - контейнер запустится в фоновом режиме
 +
# docker container stop my_container - завершение работы контейнера(у контейнера есть, по умолчанию, 10 секунд, на то, чтобы завершить работу)
 +
# docker container kill my_container - остановить контейнер быстро, не заботясь о корректном завершении его работы
 +
# docker container kill $(docker ps -q) - быстро остановить все работающие контейнеры
 +
# docker container rm my_container - удаление остановленного контейнера (docker rm my_container - аналог)
 +
# docker container rm $(docker ps -aq) - удалить все контейнеры, которые на момент вызова этой команды не выполняются
 +
# docker container rm $(docker ps -aq -f status=exited) - тоже самое
  
Создание томов
 
  
docker volume create -name my_volume - создать самостоятельный том
+
'''<font color=blue>Команды управления томами</font>'''
docker volume ls - просмотреть список томов Docker
+
* '''docker volume''' ''command''
docker volume inspect my_volume - исследовать конкретный том
+
      '''create''' --name my_volume - создать самостоятельный том(в Debian тома создаются в /var/lib/docker/volumes)
docker volume rm my_volume - удалить том
+
      '''ls''' - просмотреть список томов Docker
docker volume prune - удалить все тома, которые не используются контейнерами
+
      '''inspec'''t my_volume - исследовать конкретный том
 +
      '''rm''' my_volume - удалить том
 +
      '''prune''' - удалить все тома, которые не используются контейнерами
 +
Если том связан с каким-либо контейнером, такой том нельзя удалить до тех пор, пока не удалён соответствующий контейнер. При этом, даже если контейнер удалён, Docker не всегда это понимает. Если это случилось - надо воспользоваться командой: ''docker system prune''. Она предназначена для очистки ресурсов Docker. После выполнения этой команды, должна появиться возможность удалить тома, статус которых до этого определялся неправильно.
  
Если том связан с каким-либо контейнером, такой том нельзя удалить до тех пор, пока не удалён соответствующий контейнер. При этом,даже если контейнер удалён, Docker не всегда это понимает. Если это случилось — можете воспользоваться следующей командой: docker system prune
+
# docker container run --mount source=my_volume, target=/container/path/for/volume my_image - создать том во время создания контейнера
Она предназначена для очистки ресурсов Docker. После выполнения этой команды у вас должна появиться возможность удалить тома, статус которых до этого определялся неправильно.
 
 
 
docker container run --mount source=my_volume, target=/container/path/for/volume my_image - создать том во время создания контейнера
 
 
параметры --mount
 
параметры --mount
    type - тип монтирования. Значением для соответствующего ключа могут выступать bind, volume или tmpfs. Мы тут говорим о томах, то есть нас интересует значение volume
+
* type - тип монтирования. Значением для соответствующего ключа могут выступать bind, volume или tmpfs. Мы тут говорим о томах, то есть - нас интересует значение volume
    source - источник монтирования. Для именованных томов это — имя тома. Для неименованных томов этот ключ не указывают. Он может быть сокращён до src
+
* source - источник монтирования. Для именованных томов это — имя тома. Для неименованных томов этот ключ не указывают. Он может быть сокращён до src
    destination - путь, к которому файл или папка монтируется в контейнере. Этот ключ может быть сокращён до dst или target
+
* destination - путь, к которому файл или папка монтируется в контейнере. Этот ключ может быть сокращён до dst или target
    readonly - монтирует том, который предназначен только для чтения. Использовать этот ключ необязательно, значение ему не назначают
+
* readonly - монтирует том, который предназначен только для чтения. Использовать этот ключ необязательно, значение ему не назначают
  
-v - добавить том данных к контейнеру
+
# docker run -d -P --name web -v /webapp training/webapp python app.py - подключение одиночного тома к контейнеру
 
+
# docker run -d -P --name web -v /srv/webapp/:/tmp/ training/webapp python app.py - монтируем каталог хоста webapp в директорию /tmp контейнера
docker run -d -P --name web -v /webapp training/webapp python app.py - подключение одиночного тома к контейнеру
+
# docker run -d -P --name web -v /srv/test:/tmp/test training/webapp python app.py - смонтировать файл test в директорию /tmp контейнера
docker run -d -P --name web -v /fuck:/tmp training/webapp python app.py - монтируем каталог хоста fuck в контейнер в каталог tmp
+
'''-v''' - добавить том данных к контейнеру<br>
Тома Docker по умолчанию монтируются в режиме RW, установить режим только для чтения можно так -v /fuck:/tmp:ro
 
docker run --rm -it -v /root/fuck:/tmp/fuck outlander/debian:v1 /bin/bash - смонтировать файл fuck в контейнер, в папку /tmp/
 
  
 +
Тома Docker по умолчанию монтируются в режиме RW, установить режим только для чтения можно так
 +
-v /webapp:/tmp:ro
  
 
Если есть какие-то постоянные данные которые надо сделать доступными для контейнеров, или использовать из временных контейнеров, то лучше всего создать контейнер с именованным томом данных, а затем монтировать данные из него.
 
Если есть какие-то постоянные данные которые надо сделать доступными для контейнеров, или использовать из временных контейнеров, то лучше всего создать контейнер с именованным томом данных, а затем монтировать данные из него.
docker create -v /dbdata --name dbstore training/postgres /bin/true - создаём именовынный контейнер(dbstore)
+
# docker create -v /dbdata --name dbstore training/postgres /bin/true - создаём именованный контейнер(dbstore)
docker run -d --volumes-from dbstore --name db1 training/postgres - монтируем том /dbstore к другому контейнеру(db1) используя флаг --volumes-from
+
# docker run -d --volumes-from dbstore --name db1 training/postgres - монтируем том /dbstore к контейнеру(db1) используя флаг --volumes-from
docker run -d --volumes-from dbstore --name db2 training/postgres - ещё к одному(db2)
+
# docker run -d --volumes-from dbstore --name db2 training/postgres - ещё к одному(db2)
запихнув данные в /dbdata увидим их в контейнерах db1 и db2
+
Поместив данные в /dbdata увидим их в контейнерах db1 и db2
  
  
 +
'''<font color=blue>Команды работы с сетью</font>'''
 +
* '''docker network''' ''command''
 +
      '''ls''' - список сетей
 +
      '''create -d bridge my-bridge-network''' - создать сеть типа bridge
 +
      '''inspect bridge''' - посмотреть параметры сети, в данном случае bridge
 +
      '''disconnect bridge my_container''' - отключить контейнер от сети
  
 +
# docker run -d --name my_container --network my-bridge-network my_image - добавление контейнера в сеть
 +
# docker inspect --format='<nowiki>{{json .NetworkSettings.Networks}}</nowiki>' my_container - сетевые параметры контейнера
  
Работа с сетью
 
docker network ls - список сетей
 
docker network inspect bridge - посмотреть параметры сети, в данном случае bridge
 
docker network disconnect bridge my_container - отключить контейнер от сети
 
docker network create -d bridge my-bridge-network - создать сеть типа bridge
 
docker run -d --name my_container --network my-bridge-network my_image - добавление контейнера в сеть
 
docker inspect --format='{{json .NetworkSettings.Networks}}' my_container - сетевые параметры контейнера
 
  
 +
'''<font color=blue>Разные команды</font>'''
 +
# docker search <image> - искать образ
 +
# docker login - вход в реестр Docker Hub. Понадобятся логин/пароль
 +
# docker logout - выход из Docker Hub
 +
# docker system prune — удаление неиспользуемых контейнеров, сетей и образов, которым не назначено имя и тег
 +
# docker container ls -s - узнать примерный размер выполняющегося контейнера
 +
# docker container ls -a -s - выводит список выполняющихся контейнеров и снабжает этот список некоторыми полезными сведениями о них
 +
# docker exec -it my_container bash - подключиться к терминалу контейнера
 +
# docker tag outlander:1 outlander:copy - сделать копию образа
 +
# docker diff container - список файлов изменённых в работающем контейнере
 +
# docker rename name1 name2 - переименование контейнера
 +
 +
# docker ps - отобразить запущенные контейнеры
 +
# docker ps -a - отобразить все контейнеры
 +
# docker ps -l - информация о последнем запущенном контейнере
 +
# docker ps -aq - отобразить айдишники всех контейнеров
  
  
 +
Создание нового образа из модифицированного контейнера
 +
# docker commit myapp outlander/myapp
 +
# docker commit -m "add mc" -a "onopriyko" df0d33cd4b54 outlander/debian_stretch:v1
 +
'''-m ''' - описание коммита<br>
 +
'''-a''' - автор коммита
  
Разные команды
 
docker search <image> - искать образ
 
docker login - вход в реестр Docker Hub. Понадобятся логин/пароль
 
docker logout - выход из Docker Hub
 
docker system prune — удаление неиспользуемых контейнеров, сетей и образов, которым не назначено имя и тег
 
docker container ls -s - узнать примерный размер выполняющегося контейнера
 
docker container ls -a -s - список выполняющихся контейнеров и снабжает этот список некоторыми полезными сведениями о них
 
docker image ls - список образов
 
docker image history my_image:my_tag - размер промежуточных образов, из которых собран некий образ
 
docker image inspect my_image:tag - подробные сведения об образе
 
docker exec -it my_container bash - подключиться к терминалу контейнера
 
docker tag outlander:1 outlander:copy - сделать копию образа
 
docker diff container - список файлов изменённых в работающем контейнере
 
  
 +
Use the Docker command line<br>
 +
https://docs.docker.com/engine/reference/commandline/cli/
  
 
+
Шпаргалка с командами Docker<br>
docker ps - отобразить запущенные контенйеры
+
https://habr.com/ru/company/flant/blog/336654/
docker ps -a - отобразить все контейнеры
 
docker ps -l - инфа о последнем запущенном контейнере
 
docker ps -a -q - отобразить все незапущенные контейнеры
 
 
 
Создание нового образа из модифицированного контейнера
 
docker commit -m "add mc" -a "onopriyko" df0d33cd4b54 outlander/debian_stretch:v1
 
Запуск
 
docker run -t -i outlander/debian_stretch:v1
 
 
 
 
 
usermod -aG docker jenkins
 

Текущая версия на 16:55, 18 сентября 2023

Команды управления образами

  • docker image command
      build — сборка образа
      pull - скачать образ
      push — отправка образа в удалённый реестр
      ls — вывод списка образов
      rm — удаление образа
      history — вывод сведений о слоях образа
      inspect — вывод подробной информации об образе, в том числе — сведений о слоях
      
# docker image build --no-cache -t my_repo/my_image:my_tag . - собрать образ Docker

--no-cache - отключить кеширование
-t - флаг указывает Docker на то, что создаваемому образу надо назначить предоставленный в команде тег. В данном случае это my_tag. Точка в конце команды указывает на то, что образ надо собрать с использованием файла Dockerfile, находящегося в текущей рабочей директории

# docker image push my_repo/my_image:my_tag - отправить образ в реестр Docker Hub, предварительно надо залогиниться (docker login)
# docker image rm my_image - удалить образ, если образ хранится в удалённом репозитории, он оттуда удалён не будет(docker rmi my_image - аналог)
# docker image rm $(docker images -aq) - удалить все локальные образы

Перед удалением образа надо удалить контейнер который использует этот образ
-f - удалит даже если к образу привязан контейнер

Есть полезная утилита для исследования образов - dive


Команды управления контейнерами

  • docker container command
      create - создание контейнера из образа
      run - создание контейнера и его запуск
      start - запуск существующего контейнера
      stop - остановка работающего контейнера с отправкой главному процессу контейнера сигнала SIGTERM, и, через некоторое время, SIGKILL
      ls - вывод списка работающих контейнеров
      kill - остановка работающего контейнера с отправкой главному процессу контейнера сигнала SIGKILL
      rm - удаление остановленного контейнера
      inspect - вывод подробной информации о контейнере
      logs - вывод логов
# docker container create my_repo/my_image:my_tag - создание контейнера
# docker container start my_container - запуск существующего контейнера
# docker container run -h docker.site.ru --name first_container my_image - создать и запустить контейнер
# docker container run -it -p 8080:8000 -e TZ=Europe/Moscow --rm my_image
# docker run --link mysqlserver:db -p 8080:8080 adminer - соединение двух контейнеров м/у собой. в данном случае php-приложения с базой, в контейнере adminer ссылка на контейнер mysqlserver должна быть обозначена именем db. для этого в контейнере adminer будет создана запись в /etc/hosts

-i - благодаря этому флагу поток STDIN поддерживается в открытом состоянии даже если контейнер к STDIN не подключён
-t - благодаря этому флагу выделяется псевдотерминал, который соединяет используемый терминал с потоками STDIN и STDOUT контейнера
Для того чтобы получить возможность взаимодействия с контейнером через терминал нужно совместно использовать флаги -i и -t

-p - это интерфейс(порт), благодаря которому контейнер взаимодействует с внешним миром. Конструкция 8080:8000, перенаправляет порт 8080 хоста на порт 8000 Docker-а, на котором выполняется контейнер
-d - флаг запускающий контейнер в фоновом режиме (как демон)
-e - флаг передаёт переменные окружения
-h(--hostname) - задаёт имя хоста
--rm - флаг автоматически удаляет контейнер после того, как его выполнение завершится
--name - имя контейнера
--memory=100m - ограничить использование памяти до 100mb
--cpus=".2" - ограничить использование cpu, от целой секунды будет использоваться 0.2(1cpu это 1сек использования cpu)

# docker container logs -f my_container - вывести логи контейнера
# docker top my_container - процессы в контейнере
# docker container ls - список запущенных контейнеров
# docker container ls -a - отобразит не запущенные контейнеры
# docker container run -d my_image - контейнер запустится в фоновом режиме
# docker container stop my_container - завершение работы контейнера(у контейнера есть, по умолчанию, 10 секунд, на то, чтобы завершить работу)
# docker container kill my_container - остановить контейнер быстро, не заботясь о корректном завершении его работы
# docker container kill $(docker ps -q) - быстро остановить все работающие контейнеры
# docker container rm my_container - удаление остановленного контейнера (docker rm my_container - аналог)
# docker container rm $(docker ps -aq) - удалить все контейнеры, которые на момент вызова этой команды не выполняются
# docker container rm $(docker ps -aq -f status=exited) - тоже самое


Команды управления томами

  • docker volume command
      create --name my_volume - создать самостоятельный том(в Debian тома создаются в /var/lib/docker/volumes)
      ls - просмотреть список томов Docker
      inspect my_volume - исследовать конкретный том
      rm my_volume - удалить том
      prune - удалить все тома, которые не используются контейнерами

Если том связан с каким-либо контейнером, такой том нельзя удалить до тех пор, пока не удалён соответствующий контейнер. При этом, даже если контейнер удалён, Docker не всегда это понимает. Если это случилось - надо воспользоваться командой: docker system prune. Она предназначена для очистки ресурсов Docker. После выполнения этой команды, должна появиться возможность удалить тома, статус которых до этого определялся неправильно.

# docker container run --mount source=my_volume, target=/container/path/for/volume my_image - создать том во время создания контейнера

параметры --mount

  • type - тип монтирования. Значением для соответствующего ключа могут выступать bind, volume или tmpfs. Мы тут говорим о томах, то есть - нас интересует значение volume
  • source - источник монтирования. Для именованных томов это — имя тома. Для неименованных томов этот ключ не указывают. Он может быть сокращён до src
  • destination - путь, к которому файл или папка монтируется в контейнере. Этот ключ может быть сокращён до dst или target
  • readonly - монтирует том, который предназначен только для чтения. Использовать этот ключ необязательно, значение ему не назначают
# docker run -d -P --name web -v /webapp training/webapp python app.py - подключение одиночного тома к контейнеру
# docker run -d -P --name web -v /srv/webapp/:/tmp/ training/webapp python app.py - монтируем каталог хоста webapp в директорию /tmp контейнера
# docker run -d -P --name web -v /srv/test:/tmp/test training/webapp python app.py - смонтировать файл test в директорию /tmp контейнера

-v - добавить том данных к контейнеру

Тома Docker по умолчанию монтируются в режиме RW, установить режим только для чтения можно так

-v /webapp:/tmp:ro

Если есть какие-то постоянные данные которые надо сделать доступными для контейнеров, или использовать из временных контейнеров, то лучше всего создать контейнер с именованным томом данных, а затем монтировать данные из него.

# docker create -v /dbdata --name dbstore training/postgres /bin/true - создаём именованный контейнер(dbstore)
# docker run -d --volumes-from dbstore --name db1 training/postgres - монтируем том /dbstore к контейнеру(db1) используя флаг --volumes-from
# docker run -d --volumes-from dbstore --name db2 training/postgres - ещё к одному(db2)

Поместив данные в /dbdata увидим их в контейнерах db1 и db2


Команды работы с сетью

  • docker network command
     ls - список сетей
     create -d bridge my-bridge-network - создать сеть типа bridge
     inspect bridge - посмотреть параметры сети, в данном случае bridge
     disconnect bridge my_container - отключить контейнер от сети
# docker run -d --name my_container --network my-bridge-network my_image - добавление контейнера в сеть
# docker inspect --format='{{json .NetworkSettings.Networks}}' my_container - сетевые параметры контейнера


Разные команды

# docker search <image> - искать образ
# docker login - вход в реестр Docker Hub. Понадобятся логин/пароль
# docker logout - выход из Docker Hub
# docker system prune — удаление неиспользуемых контейнеров, сетей и образов, которым не назначено имя и тег
# docker container ls -s - узнать примерный размер выполняющегося контейнера
# docker container ls -a -s - выводит список выполняющихся контейнеров и снабжает этот список некоторыми полезными сведениями о них
# docker exec -it my_container bash - подключиться к терминалу контейнера
# docker tag outlander:1 outlander:copy - сделать копию образа
# docker diff container - список файлов изменённых в работающем контейнере
# docker rename name1 name2 - переименование контейнера

# docker ps - отобразить запущенные контейнеры
# docker ps -a - отобразить все контейнеры
# docker ps -l - информация о последнем запущенном контейнере
# docker ps -aq - отобразить айдишники всех контейнеров


Создание нового образа из модифицированного контейнера

# docker commit myapp outlander/myapp
# docker commit -m "add mc" -a "onopriyko" df0d33cd4b54 outlander/debian_stretch:v1

-m - описание коммита
-a - автор коммита


Use the Docker command line
https://docs.docker.com/engine/reference/commandline/cli/

Шпаргалка с командами Docker
https://habr.com/ru/company/flant/blog/336654/