предисловие
Контейнеры — одна из трех основных концепций Docker. Проще говоря, контейнер — это приложение или группа приложений, которые работают независимо, и их среда выполнения. Соответственно, под виртуальной машиной можно понимать полный набор операционных систем, имитирующих работу (предоставляя среду выполнения и другие системные среды) и приложений, работающих на ней. В этой статье мы поговорим о некоторых распространенных командах контейнеров Docker, таких как создание, остановка, перезапуск, пауза и т. д.
Создать контейнер
Новый контейнер
Команда выглядит следующим образом:
docker create <image>
Контейнер, созданный с помощью команды create, по умолчанию находится в остановленном состоянии, и нам нужно запустить контейнер вручную.
Создать и запустить контейнер
Команда выглядит следующим образом:
docker run <image>
Контейнер, созданный командой run, будет запущен по умолчанию.
Общие параметры следующие:
-i держать стандартный ввод контейнера открытым
-t выделяет псевдотерминал
-d контейнер работает как демон
--name установить имя контейнера
-p может сопоставить порт хоста с портом контейнера, например -p 8080:8081 , левая сторона — порт хоста, правая сторона — порт контейнера
-v может быть связан из каталога хоста с каталогом контейнера, например, -v /data:/tmp/data, левая сторона — это каталог хоста, а правая сторона — каталог контейнера.
E.G., контейнер на самом деле работает команду:
docker run -it -d --name my_ubuntu -p 8088:22 -v /root/ubuntu_data:/data ubuntu:latest /bin/bash
управление контейнерами
Посмотреть список контейнеров
Команда выглядит следующим образом:
docker ps
docker ps предназначен для просмотра запущенного контейнера, вы можете добавить параметр -a для просмотра информации обо всех контейнерах.
стоп-контейнер
Команда для остановки контейнера:
docker stop <container_name/id>
Стартовый контейнер
docker start <container_name/id>
перезапустить контейнер
docker restart <container_name/id>
удалить контейнер
Команда выглядит следующим образом:
docker rm <container_id/name>
Если это запущенный контейнер, он сообщит, что удаление не удалось.Вы можете принудительно удалить его с помощью параметра -f. Например, чтобы удалить работающий контейнер my_ubuntu:
docker rm -f my_ubuntu
журнал контейнера
Вы можете просмотреть журналы контейнера с помощью следующей команды:
docker logs <id/name>
Приостановить контейнер
docker pause <id/name>
Вы можете просмотреть статус контейнера с помощью команды docker ps
Возобновление приостановленного контейнера
docker unpause <id/name>
в контейнер
Если мы создадим контейнер с параметром -d, контейнер будет работать в фоновом режиме. Что ж, мы можем подключиться к контейнеру с помощью команды docker attach и команды docker exec.
команда подключения докера
Команда docker attach используется следующим образом:
docker attach <container_name/id>
Например, у меня здесь связь с именем My_ubuntu создал контейнер.
docker attach my_ubuntu
После входа в контейнер это на самом деле похоже на эффект сервера входа в систему ssh:
Присоединение Docker для подключения контейнеров имеет фатальный недостаток, то есть, когда несколько окон одновременно подключены к одному и тому же контейнеру, все окна будут отображаться синхронно, а когда окно заблокировано, все окна будут заблокированы. Например, если я присоединюсь к этому контейнеру my_ubuntu через два терминала, все операции будут синхронизированы:
Я печатаю что-то в одном окне, а другое окно синхронизируется.
Из-за этого команда attach используется редко.
команда выполнения докера
docker exec по сути не подключается к контейнеру, а выполняет команды в контейнере Его использование выглядит следующим образом:
docker exec -it <container_name/id> <exec>
Где
docker exec -it my_ubuntu /bin/bash
Результаты:
Команда /bin/bash фактически запускает терминал bash, поэтому мы можем подключиться к контейнеру, выполнив команду /bin/bash в контейнере.
Просмотр изменений контейнера
Контейнер также поддерживает просмотр измененного содержимого, команда выглядит следующим образом:
docker diff <name/id>
Например, чтобы увидеть изменения в my_ubuntu:
Есть три символа, они:
Отправить контейнер
Docker также может, как и git, фиксировать изменения как новые образы. Команда выглядит следующим образом:
docker commit <container_id/name> repo/name:tag
Например, я отправляю свой локальный my_ubuntu:
docker commit my_ubuntu test/ubuntu:personal
Затем посмотрите в зеркало:
Представленный образ можно отправить в хранилище для облегчения тестирования и развертывания.
Суммировать
Как одна из трех основных концепций Docker, контейнеры имеют множество операций.В этой статье сложно перечислить их все, но перечислены только некоторые команды, которые, как мне кажется, используются чаще.