[Быстрое изучение Docker] Быстрое создание контейнеров, общие команды для контейнеров

Docker

предисловие

Контейнеры — одна из трех основных концепций 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>

Где — команда, которую нужно выполнить, например, выполнение команды /bin/bash в контейнере my_ubuntu:

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, контейнеры имеют множество операций.В этой статье сложно перечислить их все, но перечислены только некоторые команды, которые, как мне кажется, используются чаще.