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

Материал из megapuper
Перейти к: навигация, поиск
Строка 19: Строка 19:
 
       '''rm''' - удаление остановленного контейнера
 
       '''rm''' - удаление остановленного контейнера
  
docker container create my_repo/my_image:my_tag - создание контейнера
+
# docker container create my_repo/my_image:my_tag - создание контейнера
docker container start my_container - запуск существующего контейнера
+
# 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 не подключён<br>
 +
'''-t''' - благодаря этому флагу выделяется псевдотерминал, который соединяет используемый терминал с потоками STDIN и STDOUT контейнера<br>
 +
Для того чтобы получить возможность взаимодействия с контейнером через терминал нужно совместно использовать флаги -i и -t
  
docker container run my_image - создать и запустить контейнер
+
'''-p''' - это интерфейс(порт), благодаря которому контейнер взаимодействует с внешним миром. Конструкция 1000:8000 перенаправляет порт Docker 8000 на порт 1000 компьютера, на котором выполняется контейнер<br>
docker container run -it -p 1000:8000 --rm my_image
+
'''-d''' - флаг запускающий контейнер в фоновом режиме (как демон)<br>
docker run --link mysqlserver:db -p 8080:8080 adminer - соединение двух контейнеров м/у собой. в данном случае php-приложения с базой
+
'''--rm''' - флаг автоматически удаляет контейнер после того, как его выполнение завершится<br>
 +
'''--name''' - имя контейнера<br>
  
 +
# 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) - тоже самое
  
-i - благодаря этому флагу поток STDIN поддерживается в открытом состоянии даже если контейнер к STDIN не подключён
 
-t - благодаря этому флагу выделяется псевдотерминал, который соединяет используемый терминал с потоками STDIN и STDOUT контейнера
 
Для того чтобы получить возможность взаимодействия с контейнером через терминал нужно совместно использовать флаги -i и -t.
 
  
-p - это интерфейс(порт), благодаря которому контейнер взаимодействует с внешним миром. Конструкция 1000:8000 перенаправляет порт Docker 8000 на порт 1000 компьютера, на котором выполняется контейнер
+
'''Команды для управления образами'''
 
+
* docker image my_command
--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 my_command
 
  
 
    build — сборка образа
 
    build — сборка образа

Версия 14:02, 13 ноября 2020

https://docs.docker.com/engine/reference/commandline/cli/

https://habr.com/ru/company/flant/blog/336654/

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


  • docker container my_command
      create - создание контейнера из образа
      run - создание контейнера и его запуск
      start - запуск существующего контейнер
      stop - остановка работающего контейнера с отправкой главному процессу контейнера сигнала SIGTERM, и, через некоторое время, SIGKILL
      ls - вывод списка работающих контейнеров
      kill - остановка работающего контейнера с отправкой главному процессу контейнера сигнала SIGKILL
      rm - удаление остановленного контейнера
      inspect - вывод подробной информации о контейнере
      logs - вывод логов
      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 компьютера, на котором выполняется контейнер
-d - флаг запускающий контейнер в фоновом режиме (как демон)
--rm - флаг автоматически удаляет контейнер после того, как его выполнение завершится
--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 my_command

build — сборка образа

       pull - скачать образ

push — отправка образа в удалённый реестр ls — вывод списка образов history — вывод сведений о слоях образа inspect — вывод подробной информации об образе, в том числе — сведений о слоях rm — удаление образа

docker image build -t my_repo/my_image:my_tag . - собрать образ Docker

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

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


В исследовании образа хорошо помогает утилита dive


Создание томов

docker volume create —-name my_volume - создать самостоятельный том docker volume ls - просмотреть список томов Docker docker volume inspect my_volume - исследовать конкретный том docker volume rm my_volume - удалить том docker 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 - монтирует том, который предназначен только для чтения. Использовать этот ключ необязательно, значение ему не назначают

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

docker run -d -P --name web -v /webapp training/webapp python app.py - подключение одиночного тома к контейнеру docker run -d -P --name web -v /fuck:/tmp training/webapp python app.py - монтируем каталог хоста fuck в контейнер в каталог tmp Тома Docker по умолчанию монтируются в режиме RW, установить режим только для чтения можно так -v /fuck:/tmp:ro docker run --rm -it -v /root/fuck:/tmp/fuck outlander/debian:v1 /bin/bash - смонтировать файл fuck в контейнер, в папку /tmp/


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



Разные команды 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 - список файлов изменённых в работающем контейнере


docker ps - отобразить запущенные контенйеры 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