English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Клиент Docker очень прост, мы можем напрямую вводить команду docker, чтобы увидеть все параметры команды клиента Docker.
w3codebox@w3codebox:~# docker
Через команду docker command --help Более подробное понимание метода использования指定的 команды Docker.
Например, чтобы увидеть docker stats Конкретное использование команды:
w3codebox@w3codebox:~# docker stats --help
Если у нас нет локальной копии镜像 ubuntu, мы можем использовать команду docker pull для загрузки镜像 ubuntu:
$ docker pull ubuntu
Следующие команды используют镜像 ubuntu для запуска контейнера, параметры позволяют входить в контейнер в командном режиме:
$ docker run -it ubuntu /bin/bash
Объяснение параметров:
-i: Интерактивная операция.
-t: Терминал.
ubuntu:/ubuntu
/bin/bashКоманда,放在镜像名后面的是命令,в данном случае мы хотим интерактивную Shell, поэтому используем /bin/bash.
Чтобы выйти из терминала, введите exit:
root@ed09e4490c57:/# exit
Команда для просмотра всех контейнеров:
$ docker ps -a
Нажмите на изображение, чтобы увидеть его в放大镜е:
Использование docker start для запуска остановленного контейнера:
$ docker start b750bbbcfd88
В большинстве случаев мы хотим, чтобы сервис docker работал в фоновом режиме, и мы можем использовать опцию -d для указания режима работы контейнера.
$ docker run -itd --name ubuntu-test ubuntu /bin/bash
Нажмите на изображение, чтобы увидеть его в放大镜е:
Примечание:Если использовать параметр -d, по умолчанию в контейнер не войти, чтобы войти в контейнер, нужно использовать команду docker exec(об этом будет рассказано позже).
Команда для остановки контейнера如下:
$ docker stop <ID контейнера>
Остановленные контейнеры можно перезапустить с помощью docker restart:
$ docker restart <ID контейнера>
При использовании -d Если использовать параметр, контейнер запустится в фоновом режиме. Чтобы войти в контейнер, можно использовать следующую команду:
docker attach
docker execРекомендуется использовать команду docker exec, так как при выходе из контейнера терминала контейнер не останавливается.
Команда attach
Ниже показан пример использования команды docker attach.
$ docker attach 1e560fca3906
Внимание: Если из этого контейнера выйти, это приведет к остановке контейнера.
Команда exec
Ниже показан пример использования команды docker exec.
docker exec -it 243c32535da7 /bin/bash
Внимание: Если из этого контейнера выйти, контейнер не остановится, поэтому рекомендуется использовать docker exec причина.
Более подробную информацию можно получить, используя команду docker exec --help.
Экспортировать контейнер
Если нужно выгрузить локальный контейнер, можно использовать docker export Команда.
$ docker export 1e560fca3906 > ubuntu.tar
Экспортировать снимок контейнера 1e560fca3906 в локальный файл ubuntu.tar.
Таким образом, снимок контейнера будет выгружен в локальный файл.
Импорт снимка контейнера
Используя docker import, можно импортировать из файла снимка контейнера в образ, следующий пример импортирует файл снимка ubuntu.tar в образ test/ubuntu:v1:
$ cat docker/ubuntu.tar | docker import - test/ubuntu:v1
Кроме того, контейнеры можно импортировать, указав URL или某个 каталог, например:
$ docker import http://example.com/exampleimage.tgz example/imagerepo
Использование для удаления контейнеров docker rm Команда:
$ docker rm -f 1e560fca3906
Эта команда может удалить все контейнеры, находящиеся в состоянии остановки.
$ docker container prune
Прежде чем мы запустили контейнер, у него не было особого значения.
Давайте попробуем использовать Docker для создания веб-приложения.
Мы будем запускать приложение Python Flask в контейнере Docker для запуска веб-приложения.
w3codebox@w3codebox:~# docker pull training/webapp # загрузить изображение w3codebox@w3codebox:~# docker run -d -P training/webapp python app.py
Объяснение параметров:
-d:Запуск контейнера в фоновом режиме.
-P:Рандомно настроить сетевые порты внутри контейнера на порт хоста, который мы используем.
Используйте docker ps, чтобы увидеть запущенные контейнеры:
w3codebox@w3codebox:~# docker ps CONTAINER ID IMAGE COMMAND ... PORTS d3d5e39ed9d3 training/webapp "python app.py" ... 0.0.0.0:32769->5000/tcp
Здесь добавлена информация о портах.
PORTS 0.0.0.0:32769->5000/tcp
Docker открыл порты 5000 (по умолчанию порт Python Flask) для маппинга на порт 32769 хоста.
В этом случае мы можем访问 WEB приложение через браузер
Мы также можем настроить другой порт с помощью параметра -p:
w3codebox@w3codebox:~$ docker run -d -p 5000:5000 training/webapp python app.py
docker psПросмотр запущенных контейнеров
w3codebox@w3codebox:~# docker ps КОНТЕЙНЕР ИД ИЗОБРАЖЕНИЕ ПОРТЫ ИМЯ bf08b7f2cd89 training/webapp ... 0.0.0.0:5000->5000/tcp wizardly_chandrasekhar d3d5e39ed9d3 training/webapp ... 0.0.0.0:32769->5000/tcp xenodochial_hoov
внутренний порт 5000 контейнера настроен на порту 5000 локального хоста.
через docker ps Команда может показать портовую маппинг контейнераdocker также предоставляет другой快捷 способ docker portиспользуя docker port Позволяет просмотреть, как определенный порт (ID или имя) контейнера карта на порту хоста.
Верхняя созданная нами контейнер web приложения ID bf08b7f2cd89 Имя wizardly_chandrasekhar.
Я могу использовать docker port bf08b7f2cd89 или docker port wizardly_chandrasekhar, чтобы просмотреть карту портов контейнера.
w3codebox@w3codebox:~$ docker port bf08b7f2cd89 5000/tcp -> 0.0.0.0:5000
w3codebox@w3codebox:~$ docker port wizardly_chandrasekhar 5000/tcp -> 0.0.0.0:5000
docker logs [ID или имя] позволяет просмотреть стандартный вывод контейнера.
w3codebox@w3codebox:~$ docker logs -f bf08b7f2cd89 * Запущено на http://0.0.0.0:5000/ (Нажмите CTRL+C, чтобы выйти) 192.168.239.1 - - [09/May/2016 16:30:37] "GET / HTTP/1.1" 200 - 192.168.239.1 - - [09/May/2016 16:30:37] "GET /favicon.ico HTTP/1.1" 404 -
-f: Позвольте docker logs Как использовать tail -f Так же выводить стандартный вывод контейнера.
Из вышеупомянутого мы можем увидеть, что приложение использует порт 5000 и мы можем увидеть лог доступа к приложению.
Мы также можем использовать docker top, чтобы просмотреть процессы, выполняющиеся в контейнере
w3codebox@w3codebox:~$ docker top wizardly_chandrasekhar UID PID PPID ... ВРЕМЯ CMD root 23245 23228 ... 00:00:00 python app.py
использование docker inspect ПРИМЕНЯЕМ ДЛЯ ПОСМОТРА ВНУТРЕННИХ ИНФОРМАЦИЙ Дocker. ОН ВРАЩАЕТ JSON ФАЙЛ, ЗАПИСЫВАЮЩИЙ КОНФИГУРАЦИЮ И СОСТОЯНИЕ КОНТЕЙНЕРА.
w3codebox@w3codebox:~$ docker inspect wizardly_chandrasekhar [ { "Id": "bf08b7f2cd897b5964943134aa6d373e355c286db9b9885b1f60b6e8f82b2b85", "Created": "2018-09-17T01:41:26.174228707Z", "Path": "python", "Args": [ "app.py" ], "State": { "ExitCode": 0, "Error": "", "StartedAt": "2018-09-17T01:41:26.494185806Z", "FinishedAt": "0001-01-01T00:00:00Z" , ......
w3codebox@w3codebox:~$ docker stop wizardly_chandrasekhar wizardly_chandrasekhar
ОСТАНОВЛЕННЫЙ КОНТЕЙНЕР, МЫ МОЖЕМ ИСПОЛЬЗОВАТЬ КОМАНДУ docker start ДЛЯ ЕГО ЗАПУСКА.
w3codebox@w3codebox:~$ docker start wizardly_chandrasekhar wizardly_chandrasekhar
docker ps -l ИЗВЛЕЧАЕТ ПОСЛЕДНЕЙСОЗДАННЫЙ КОНТЕЙНЕР:
# docker ps -l КОНТЕЙНЕР ИД ИЗОБРАЖЕНИЕ ПОРТЫ ИМЯ bf08b7f2cd89 training/webapp ... 0.0.0.0:5000->5000/tcp wizardly_chandrasekhar
Работающий контейнер, мы можем использовать команду docker restart, чтобы перезапустить его.
Мы можем использовать команду docker rm, чтобы удалить ненужные контейнеры
w3codebox@w3codebox:~$ docker rm wizardly_chandrasekhar wizardly_chandrasekhar
При удалении контейнера, контейнер должен быть в停止ованном состоянии,否则 появится следующая ошибка
w3codebox@w3codebox:~$ docker rm wizardly_chandrasekhar Ошибочный ответ от демона: Вы не можете удалить работающий контейнер bf08b7f2cd897b5964943134aa6d373e355c286db9b9885b1f60b6e8f82b2b85. Остановите контейнер перед попыткой удаления или强制 удалите