systemctl start docker #Запустить докер
systemctl stop docker #Закрыть докер
systemctl restart docker #Перезапускаем докер
systemctl enable docker #Устанавливаем автозапуск при загрузке
systemctl status docker #Просмотр статуса работы докера
docker version #Просмотр информации о номере версии докера
docker info
docker --help #dockerЗаказнамекать
Название изображения состоит из:
Как показано на рисунке:
Mysql здесь — это репозиторий, 5.7 — это тег, и вместе они представляют собой имя образа, которое представляет версию 5.7 образа MySQL.
Общие команды управления зеркалом. Как показано на рисунке:
docker images #Посмотреть в зеркало
#Извлекаем изображение с сервера Извлекаем изображение
docker pull Название изображения #Извлекаем последнюю версию образа
docker pull Название изображения:tag #Вытаскиваем образ и указываем версию
#Отправляем изображение в сервис
docker push Название изображения
docker push Название изображения:tag
docker save -o Имя сохраненного целевого файла Название изображения #Сохраняем изображение как сжатый пакет
docker load -i имя файла #Загружаем сжатый пакет как изображение
#fromDocker Хаб Зеркало поиска/поиска
docker search [options] TERM
docker search -f STARS=9000 mysql #Поиск изображений MySQL с количеством звездочек не менее 10
#Удалить изображение. Текущее изображение не используется ни одним контейнером. удалить
docker rmi Название изображения/зеркалоID #Удалить изображение
docker rmi -f Название изображения/зеркалоID #Принудительное удаление
docker rmi -f Название изображения Название изображения Название изображения #Удалить несколько Идентификатор зеркала или зеркало могут быть разделены пробелами.
docker rmi -f $(docker images -aq) #Удалить все изображения, -a Это значит показать все, -q Это означает только отображаемый идентификатор
docker image rm Название изображения/зеркалоID #Принудительное удалениезеркало
#отметьте зеркало【Иногда это зависит от бизнеса нуждаться Если вам нужно классифицировать изображение или выполнить операции итерации версий, вам необходимо пометить изображение]
docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
Извлеките образ nginx из DockerHub и просмотрите его.
1) Сначала перейдите в хранилище образов и найдите образ nginx.,напримерDockerHub:
2) По названию просмотренного образа вытягиваем нужный вам образ через команду: docker pull nginx
3) Просмотрите полученное изображение с помощью команды: docker images.
Требование: используйте docker save, чтобы экспортировать образ nginx на диск, а затем загрузить его обратно через загрузку.
1) Используйте команду docker xx --help, чтобы просмотреть синтаксис сохранения и загрузки Docker.
Например, чтобы просмотреть использование команды сохранения, вы можете ввести команду:
docker save --help
Формат команды:
docker save -o [Имя сохраненного целевого файла] [Название изображения]
2) Используйте сохранение Docker, чтобы экспортировать изображение на диск.
Запустить команду:
docker save -o nginx.tar nginx:latest
3) Используйте загрузку докера для загрузки изображения.
Сначала удалите локальный образ nginx:
docker rmi nginx:latest
Затем запустите команду для загрузки локального файла:
docker load -i nginx.tar
Для запуска докер-контейнера требуется поддержка образа.
Команды для операций с контейнером. Как показано на рисунке:
Контейнеры защищают три состояния:
в:
docker ps #Показать работающие контейнеры
docker ps -a #-a,--all Показать все контейнеры, включая остановленные (по умолчанию отображаются только работающие контейнеры)
#Как получить контейнер? docker run Создайте и запустите контейнер в работающем состоянии.
#--name Имя, присвоенное запускаемому контейнеру; -p Сопоставьте порт хоста с портом контейнера. Левая часть двоеточия — это порт хоста, а правая часть — порт контейнера. -d Указывает, что контейнер можно запускать в фоновом режиме. (Операция «Страж»). См. конкретные примеры ниже.
docker run --name containerName -p 80:80 -d nginx
docker pause Имя контейнера/идентификатор контейнера # Приостановить работающий контейнер
docker unpause name #Возобновляем работу контейнера из приостановленного состояния
docker stop name #Остановить работающий контейнер (убить процесс, освободить память, оставить только файловую систему)
docker start name #Запускаем остановленный контейнер снова
docker restart name #Перезапустить контейнер
#docker стоп и докер Разница между kill: оба могут завершить работающий докер-контейнер. Похоже на: «убей и убей» в Linux -9 эти две команды, докер стоп похож на kill, докер убить и убить -9 подобных
docker kill Имя контейнера #Уничтожаем работающий контейнер
docker rename Имя контейнера новый Имя контейнера #заменять Имя контейнера
#Удалить контейнер
docker rm Имя контейнера/идентификатор контейнера #Удалить контейнер
docker rm -f CONTAINER #Принудительное удаление
docker rm -f Имя контейнера Имя контейнера Имя контейнера #Удалить несколькоконтейнер Разделяйте удаляемые поля пробелами. контейнераиликонтейнерID
docker rm -f $(docker ps -aq) #Удалить все контейнеры
docker logs Имя контейнера #Просмотр журналов работы контейнера
docker logs -f Имя контейнера #Непрерывный журнал отслеживания
docker logs -f --tail=20 Имя контейнера #Проверьте, сколько строк в конце
#Войдите в контейнер для выполнения команды двумя способами docker exec и docker прикрепить, порекомендовать докер exec
#метод1 docker exec。
docker exec -it Имя контейнера/идентификатор контейнера bash
#метод2 docker прикрепить, рекомендуется использовать докер exec
docker attach Имя контейнера/идентификатор контейнера
#Отходим из контейнера на свой сервер (ctrl+C использовать нельзя)
exit #Выходим напрямую. Не добавлять в-d (постоянно работающий контейнер), выполните этот параметр Контейнер будет закрыт
ctrl+p+q #Выйдите изящно. Добавлять или нет параметр в-d, контейнер не закроется при выполнении этой команды
#Устанавливаем автоматический запуск контейнера при загрузке
#Файи Создавайте контейнеры и используйте Docker runЗаказчас,добавить в Параметр --restart=always означает, что контейнер будет запускаться автоматически при запуске службы докеров.
docker run --name mysqlLatest -p 3307:3306 --restart=always -d mysql
#Если контейнер был запущен, вы хотите настроить его автоматический запуск при загрузке.
docker update Имя контейнера/идентификатор контейнера --restart=always
Команда для создания и запуска контейнера nginx:
docker run --name containerName -p 80:80 -d nginx
Интерпретация команды:
Вот-p
параметр,Он сопоставляет порт контейнера с портом хоста.
По умолчанию контейнер представляет собой изолированную среду. Если мы напрямую обратимся к порту 80 хоста, мы точно не сможем получить доступ к nginx в контейнере.
Теперь свяжите порт 80 контейнера с портом 80 хоста. Когда мы получим доступ к порту 80 хоста, он будет сопоставлен с портом 80 контейнера, чтобы мы могли получить доступ к nginx:
нуждаться:ВходитьNginxконтейнер,Изменить содержимое HTML-файла,добавить «Передовое развитие приветствует вас»
намекать:Входитьконтейнернужно использоватьdocker исполнительная команда.
шаг:
1) Войдите в контейнер. Команда для входа в только что созданный контейнер nginx:
docker exec -it mn bash
#docker exec -it mr redis-cli
Интерпретация команды:
2) Введите каталог, в котором находится HTML-код nginx, /usr/share/nginx/html (см. официальную документацию).
Внутри контейнера будет смоделирована независимая файловая система Linux, которая выглядит как Linux-сервер:
Окружающая среда, конфигурация и рабочие файлы nginx находятся в этой файловой системе, включая html-файл, который мы хотим изменить.
Просмотрите страницу nginx на веб-сайте DockerHub.,могу знатьnginxизhtmlМестоположение каталога/usr/share/nginx/html
Выполняем команду и входим в каталог:
cd /usr/share/nginx/html
Просмотрите файлы в каталоге:
3) Измените содержимое index.html.
В контейнере нет команды vi, и ее нельзя изменить напрямую. Для ее изменения мы используем следующую команду:
sed -i -e 's#Welcome to nginx#Продвинутая разработка приветствует вас#g' -e 's#<head>#<head><meta charset="utf-8">#g' index.html
#или
sed -i 's#Welcome to nginx#Продвинутая разработка приветствует вас#g' index.html
sed -i 's#<head>#<head><meta charset="utf-8">#g' index.html
Получите доступ к адресу вашей собственной виртуальной машины в браузере, например, у меня: http://10.169.112.153:85/, и вы увидите результат:
Остановить контейнер: выйти из контейнера
Каковы общие параметры команды запуска Docker?
Команда для просмотра логов контейнера:
Посмотреть статус контейнера:
В случае nginx 3.3 при изменении html-страницы nginx вам необходимо ввести nginx. А поскольку редактора нет, редактировать файлы тоже очень хлопотно.
Это следствие связи между контейнером и данными (файлами в контейнере).
Чтобы решить эту проблему, данные необходимо отделить от контейнера, что требует использования томов данных.
Объем данных (объем)это виртуальный каталог,Указывает на каталог в файловой системе хоста.
После монтирования тома данных все операции с контейнером будут применяться к каталогу хоста, соответствующему тому данных.
Таким образом, когда мы работаем с каталогом /var/lib/docker/volumes/html на хосте, это эквивалентно работе с каталогом /usr/share/nginx/html в контейнере.
Два файла монтируют один и тот же том данных, и данные являются общими; контейнер обновления удаляется, но том данных не удаляется, а каталог жесткого диска все еще существует.
При создании контейнера вы можете использовать параметр -v для подключения тома данных к каталогу в контейнере. Формат команды следующий:
docker run \
--name mn \
-v html:/root/html \
-p 8080:80
nginx \
Здесь -v — это команда для монтирования тома данных:
-v html:/root/htm
: поместить htmlобъем данные монтируются в каталог /root/html в контейнереСоздание, удаление и изменение файлов в контейнере — синхронизация каталогов, подключенная снаружи хоста.
Удаление контейнера — каталоги, смонтированные снаружи хоста, не будут синхронизироваться.【не из-задляконтейнеризудалить И удалите каталог, смонтированный на внешнем хосте]
docker volume [COMMAND]
Команда Docker Volume — это операция с объемом данных. Следующая операция определяется в соответствии с командой, следующей за командой:
Уведомление
1)docker inspect Точка монтирования, запрошенная имям тома означает, чтообъем данныхсуществоватьКакой каталог на хост-компьютере(Обычно нам не нужно устанавливать),объем данных——Каталог хоста
2)docker -v в запуске означает ВоляКаталог внутри контейнерамонтировать наобъем данных,объем данных——Каталог внутри контейнера
Контейнеры могут не только монтировать тома данных, но и напрямую монтировать их в каталог хоста. Связь следующая.
Как показано на рисунке:
грамматика:
Синтаксис монтирования каталога и тома данных аналогичен: [Ранее монтирование тома данных было -v имя_тома:/targetContainerPath, и файлы можно монтировать напрямую, перезаписывая файлы в контейнере].
Пример:
Создайте и запустите контейнер MySQL и смонтируйте каталог хоста непосредственно в контейнер.
1) Вытащите образ MySQL через Docker Pull MySQL: 5.7.25.
2) Создайте каталог /tmp/mysql/data.
3) Создайте каталог /tmp/mysql/conf, создайте в этом каталоге новый файл hmy.cnf и напишите следующее содержимое.
[mysqld]
skip-name-resolve
character_set_server=utf8
datadir=/var/lib/mysql
server-id=1000
4) Заходим в DockerHub, чтобы проверить информацию, создаем и запускаем контейнер MySQL, требования такие:
① Подключите /tmp/mysql/data к каталогу хранения данных в контейнере MySQL.
② Подключите /tmp/mysql/conf/hmy.cnf к файлу конфигурации контейнера MySQL.
③Установить пароль MySQL
docker run --name mm -e MYSQL_ROOT_PASSWORD=123 -p 3307:3306 -v /tmp/mysql/conf/hmy.cnf:/etc/mysql/conf.d/hmy.cnf -v /tmp/mysql/data:/var/lib/mysql -d mysql:5.7.25
Окончание .d указывает каталог, -e устанавливает переменную среды.
нуждаться:Создайтеобъем данных,и просмотретьобъем расположение каталога данных на хост-машине
① Создать том данных
docker volume create html
② Просмотр всех данных
docker volume ls
③ Просмотр сведений об объеме данных
docker volume inspect html
Как видите, HTML-код, который мы создали, имеет объем. данныхассоциацияиз Каталог хостадля/var/lib/docker/volumes/html/_data
Оглавление。
нуждаться:Создайтеnginxконтейнер,Измените содержимое index.html в каталоге html контейнера.
анализировать:3.3Случайсередина,Входим внутрь контейнера nginx,Уже знаюnginxизhtmlОглавление Местосуществовать Расположение/usr/share/nginx/html , нам необходимо смонтировать этот каталог к тому данных html, чтобы облегчить работу с его содержимым.
намекать:бегатьконтейнерчас使用 -v Параметры для подключения Fifer тома данных
шаг:
① Создайте контейнер и смонтируйте том данных в каталог HTML в контейнере.
docker run --name mn -v html:/usr/share/nginx/html -p 80:80 -d nginx
② Введите местоположение тома данных HTML и измените содержимое HTML.
# Посмотреть htmlобъем данныхиз Расположение
docker volume inspect html
# Войдите в этот каталог
cd /var/lib/docker/volumes/html/_data #объем данные здесь, контейнер выше -v справа
# Изменить файлы
vi index.html
Найден после тестирования
docker run -p 6379:6379 --name redis -v /mydata/redis/data:/data \
-v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf \
-d redis redis-server /etc/redis/redis.conf
#Используйте образ redis для выполнения команды redis-cli для подключения
docker exec -it redis redis-cli
Конфигурация Redis по умолчанию не сохраняется (на жестком диске). Все данные хранятся в памяти. Если вы перезапустите Redis (докер перезапустите Redis), данные исчезнут — добавьте в redis.conf только добавление (последняя версия). по умолчанию используется постоянство, в этой операции нет необходимости)