Предыдущий обзор:
Создав основу образа, приступим к созданию контейнера. Контейнеры Docker очень легкие, их можно создавать и удалять в любой момент, что очень удобно.
Создайте и запустите контейнер
использоватьdocker run
команда для создания и запуска контейнера:
$ docker run -it centos /bin/echo 'hello world'
hello world
-t
Параметр указывает Docker выделить псевдотерминал и привязать его к стандартному вводу контейнера,-i
Параметр сохраняет открытым стандартный ввод контейнера.
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
df84684c3888 centos "/bin/echo 'hello wo…" 10 seconds ago Exited (0) 7 seconds ago admiring_noyce
docker ps
Команда перечисляет текущие контейнеры.Вы можете видеть, что только что выполненный контейнер закрывается сразу после вывода информации. Есть ли способ заставить контейнер работать в фоновом режиме? Ответ, конечно, да.
использовать-d
Параметр разрешает выполнение контейнера в фоновом режиме в качестве процесса-демона, что также наиболее часто используется в работе.
$ docker run -d centos /bin/sh -c "while true; do echo hello world; sleep 1; done"
fcb07a324388d58883e212ff5675ad7947a22c731f677d1a37ff7bc3d8bfa9a7
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
fcb07a324388 centos "/bin/sh -c 'while t…" 6 seconds ago Up 5 seconds beautiful_northcutt
Таким образом, контейнер работает в фоновом режиме.
Другой способ - использоватьdocker create
команда для создания контейнера, а затем используйтеdocker start
Для запуска контейнера две команды эквивалентныdocker run
Во-первых, этот метод обычно не используется, поэтому я не буду вводить его дальше.
Давай поговоримdocker run
История, стоящая за этим, что Docker делает для нас за этой командой?
- Проверить, существует ли указанное зеркало локально, и загрузить его из публичного репозитория, если оно не существует;
- Создайте и запустите контейнер с помощью образа;
- Выделите файловую систему и смонтируйте слой для чтения и записи вне зеркального слоя, доступного только для чтения;
- Мост виртуального интерфейса от интерфейса моста, настроенного на хост-узле, к контейнеру;
- Настроить IP-адрес из пула адресов в контейнер;
- выполнять указанные пользователем команды или приложения;
- Контейнер завершается после выполнения.
в контейнер
Когда контейнер выполняется в фоновом режиме, используйтеdocker exec
Команда попадает в контейнер.
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
fcb07a324388 centos "/bin/sh -c 'while t…" 6 seconds ago Up 5 seconds beautiful_northcutt
$ docker exec -it fcb07a324388 /bin/bash
[root@fcb07a324388 /]# ls
bin dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var
[root@fcb07a324388 /]#
После входа в контейнер это система Linux.Команды, поддерживаемые Linux, в основном поддерживаются контейнером.
Эта команда очень важна, иногда возникает проблема с нашим приложением, если мы не можем увидеть проблему просто по логам, нам нужно войти в контейнер, чтобы увидеть реальную ситуацию.
Если вы хотите бросить, простоexit
команда сделает.
Другая командаdocker attach
, но у него есть недостаток. Когда к одному контейнеру одновременно подключено несколько окон, все окна будут отображаться синхронно.Когда окно заблокировано командой, другие окна не могут выполнять операции.
Итак, эта команда сейчас практически бесполезна.
стоп-контейнер
использоватьdocker stop
команда для остановки контейнера.
$ docker stop fcb
fcb
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
fcb07a324388 centos "/bin/sh -c 'while t…" 23 minutes ago Exited (137) 4 seconds ago beautiful_northcutt
Если вы хотите начать заново, используйтеdocker start
.
Посмотреть контейнеры
Как описано выше, используйтеdocker ps
команда для просмотра текущего контейнера.
использоватьdocker logs
Просмотр вывода журнала контейнера.
использоватьdocker container inspect
Команда для просмотра сведений о контейнере.
использоватьdocker top
Команда для просмотра информации о процессе в контейнере аналогична команде top в Linux.
использоватьdocker stats
Команда для просмотра процессора контейнера, памяти, хранилища и другой информации.
использоватьdocker container port
Проверьте сопоставление портов контейнера.
Импорт и экспорт контейнеров
использоватьdocker export
команда для экспорта контейнера в файл.
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
fcb07a324388 centos "/bin/sh -c 'while t…" 34 minutes ago Up 9 minutes beautiful_northcutt
$ docker export -o centos.tar fcb
$ ls
centos.tar
использоватьdocker import
команда для импорта файла контейнера в качестве локального образа.
$ docker import centos.tar test/centos
sha256:f994c062dae063ffb8c97191d951b9beaac73d99023120191dbbc9741d725578
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
test/centos latest f994c062dae0 6 seconds ago 237MB
В предыдущей статье А.docker load
Команда также предназначена для импорта файла на локальное зеркало, так в чем же между ними разница?
В файлах моментальных снимков контейнера будет удалена вся история и метаданные, а в файлах хранения изображений будет сохранена полная запись, но они будут больше.
удалить контейнер
использоватьdocker rm
команда для удаления остановленного контейнера, если контейнер запущен, вы можете добавить-f
Параметр принудительно удален.
Справочная документация:
Книга "Введение и практика технологии Docker"
woohoo.dock и info.net/docker% ой 5% ах…
Прошлые основные моменты:
Технический блог:
GitHub.com/Делайте это с душой/Особые…
В то же время, вы также можете обратить внимание на мой публичный аккаунт WeChat.AlwaysBeta, вас ждет еще больше захватывающего контента.