Общие команды докера

задняя часть Docker
Общие команды докера

Это 3-й день моего участия в августовском испытании обновлений, узнайте подробности события:Испытание августовского обновления

Docker - это контейнер приложения с открытым исходным кодом на основеПерейти на языкИ следуйте протоколу Apache2.0 с открытым исходным кодом. Docker позволяет разработчикам упаковывать свои приложения и зависимости в легкий портативный контейнер, который затем можно распространять на любой популярный Linux-компьютер, а также можно виртуализировать. Контейнер полностью использует механизм песочницы, и не будет никакого интерфейса между собой (аналогично приложениям iPhone), и что более важно, накладные расходы на производительность контейнера крайне низки.

Сценарии применения

  • Автоматизированная упаковка и публикация веб-приложений.
  • Автоматизированное тестирование и непрерывная интеграция, выпуск.
  • Развертывайте и настраивайте базы данных или другие фоновые приложения в сервисной среде.
  • Создайте собственную среду PaaS, скомпилировав или расширив существующую платформу OpenShift или Cloud Foundry с нуля.

Преимущество докера

Доставляйте свои приложения быстро и последовательно

Docker упрощает жизненный цикл разработки, позволяя разработчикам работать в стандартизированной среде, используя собственные контейнеры предоставленного вами приложения или службы. Контейнеры отлично подходят для рабочих процессов непрерывной интеграции и непрерывной доставки (CI/CD). Рассмотрим следующие примеры сценариев:

  • Ваши разработчики программируют локально и делятся своей работой с коллегами, используя контейнеры Docker.
  • Они используют Docker для отправки своих приложений в тестовую среду и выполнения автоматизированного или ручного тестирования.
  • Когда разработчики находят ошибки, они могут исправить их в среде разработки, а затем повторно развернуть в тестовой среде для тестирования и проверки.
  • После завершения тестирования запуск исправления в производство так же прост, как запуск обновленного образа в производство.

Реактивное развертывание и масштабирование

Docker — это платформа на основе контейнеров, которая позволяет выполнять переносимые рабочие нагрузки. Контейнеры Docker могут работать на собственных машинах разработчиков, на физических или виртуальных машинах в центре обработки данных, в облачных службах или в гибридных средах.

Портативность и легкость Docker также упрощают динамическое управление рабочими нагрузками, а также масштабирование или удаление приложений и служб в режиме реального времени в соответствии с потребностями бизнеса.

Запускайте больше рабочих нагрузок на том же оборудовании

Докер легкий и быстрый. Он представляет собой жизнеспособную, экономичную и эффективную альтернативу виртуальным машинам на основе гипервизора, поэтому вы можете использовать больше вычислительной мощности для достижения своих бизнес-целей. Docker отлично подходит для сред с высокой плотностью и малых и средних развертываний, где вы можете делать больше с меньшими затратами.

Основные компоненты Докера

Базовый состав докера следующий

  • Изображение: Docker-образ (Image), эквивалентный корневой файловой системе. Например, официальный образ ubuntu:16.04 содержит полный набор корневых файловых систем минимальной системы Ubuntu16.04.
  • Контейнер: Отношения между образом и контейнером подобны отношениям между классом и экземпляром в объектно-ориентированном программировании.Образ представляет собой статическое определение, а контейнер представляет собой объект при запуске образа. Контейнеры можно создавать, запускать, останавливать, удалять, приостанавливать и т. д.
  • Репозиторий: Репозиторий можно рассматривать как центр управления кодом для хранения изображений.

Установка докера (mac)

Самодельная установка

brew install --cask --appdir=/Applications docker

После установки проверьте с

➜  ~ docker --version
Docker version 20.10.6, build 370c289

Зеркальное ускорение

Здесь используется акселератор Alibaba Cloud, посетитеAdult.console.aliyun.com/cai-Ханчжоу…, а затем нажмите Зеркальный ускоритель, вы увидите следующую информацию

После завершения установки вы можете использовать команду для ее просмотра, и в конце вы увидите информацию, подобную следующей

Операция установки в других окружениях аналогична, можете сами погуглить

Общие команды докера

основная команда

docker version          #查看docker的版本信息
docker info             #查看docker的系统信息,包括镜像和容器的数量
docker 命令 --help       #帮助命令(可查看可选的参数)

Адрес справочной документации команды:docs.docker.com/engine/ref Э…

зеркальная команда

Посмотреть зеркало

docker imagesПосмотреть все зеркала на локальном хосте

-a/--all список всех изображений

-q/--quiet показать только id зеркала

$ docker images
REPOSITORY   TAG       IMAGE ID       CREATED        SIZE
centos       centos7   8652b9f0cb4c   9 months ago   204MB
  • Источник репозитория для зеркала REPOSITORY

  • TAG зеркальный тег

  • IMAGE ID идентификатор изображения

  • Время создания СОЗДАННОГО образа

  • SIZE размер изображения

зеркальный поиск

docker search

$ docker search redis
NAME                             DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
redis                            Redis is an open source key-value store that…   9782      [OK]
sameersbn/redis                                                                  83                   [OK]
grokzen/redis-cluster            Redis cluster 3.0, 3.2, 4.0, 5.0, 6.0, 6.2      78
rediscommander/redis-commander   Alpine image for redis-commander - Redis man…   64                   [OK]
redislabs/redisearch             Redis With the RedisSearch module pre-loaded…   37
kubeguide/redis-master           redis-master with "Hello World!"                33
redislabs/redisinsight           RedisInsight - The GUI for Redis                33
redislabs/redis                  Clustered in-memory database engine compatib…   31
oliver006/redis_exporter          Prometheus Exporter for Redis Metrics. Supp…   28
redislabs/rejson                 RedisJSON - Enhanced JSON data type processi…   27
arm32v7/redis                    Redis is an open source key-value store that…   24
redislabs/redisgraph             A graph database module for Redis               15                   [OK]
redislabs/redismod               An automated build of redismod - latest Redi…   15                   [OK]
arm64v8/redis                    Redis is an open source key-value store that…   14
redislabs/rebloom                A probablistic datatypes module for Redis       13                   [OK]
webhippie/redis                  Docker images for Redis                         11                   [OK]
insready/redis-stat              Docker image for the real-time Redis monitor…   10                   [OK]
s7anley/redis-sentinel-docker    Redis Sentinel                                  10                   [OK]
goodsmileduck/redis-cli          redis-cli on alpine                             9                    [OK]
redislabs/redistimeseries        A time series database module for Redis         9
centos/redis-32-centos7          Redis in-memory data structure store, used a…   5
clearlinux/redis                 Redis key-value data structure server with t…   3
wodby/redis                      Redis container image with orchestration        1                    [OK]
tiredofit/redis                  Redis Server w/ Zabbix monitoring and S6 Ove…   1                    [OK]
xetamus/redis-resource           forked redis-resource                           0                    [OK]

расширенная команда

$ docker search mysql --filter=stars=3000
NAME      DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
mysql     MySQL is a widely used, open-source relation…   11258     [OK]
mariadb   MariaDB Server is a high performing open sou…   4277      [OK]

Найти зеркала со звездами больше 3000

$ docker search mysql --filter=stars=3000
NAME      DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
mysql     MySQL is a widely used, open-source relation…   11258     [OK]
mariadb   MariaDB Server is a high performing open sou…   4277      [OK]

Зеркальная загрузка

имя образа docker pull[:tag]

$ docker pull mysql
Using default tag: latest  #如果不写tag默认就是latest
latest: Pulling from library/mysql
33847f680f63: Pull complete  #分层下载,docker image的核心-联合文件系统
5cb67864e624: Pull complete
1a2b594783f5: Pull complete
b30e406dd925: Pull complete
48901e306e4c: Pull complete
603d2b7147fd: Pull complete
802aa684c1c4: Pull complete
715d3c143a06: Pull complete
6978e1b7a511: Pull complete
f0d78b0ac1be: Pull complete
35a94d251ed1: Pull complete
36f75719b1a9: Pull complete
Digest: sha256:8b928a5117cf5c2238c7a09cd28c2e801ac98f91c3f8203a8938ae51f14700fd
Status: Downloaded newer image for mysql:latest
docker.io/library/mysql:latest	#下载来源的真实地址  #docker pull mysql等价于docker pull 										# docker.io/library/mysql:latest

Вы можете указать версию для загрузки, например: docker pull mysql:5.7

удалить зеркало

#1.删除指定的镜像id
[root@iZwz99sm8v95sckz8bd2c4Z ~]# docker rmi -f  镜像id
#2.删除多个镜像id
[root@iZwz99sm8v95sckz8bd2c4Z ~]# docker rmi -f  镜像id 镜像id 镜像id
#3.删除全部的镜像id
[root@iZwz99sm8v95sckz8bd2c4Z ~]# docker rmi -f  $(docker images -aq)

команда контейнера

вытащить контейнер

docker pull centos

запустить контейнер

docker run [可选参数] image

#参数说明
--name="名字"           指定容器名字
-d                     后台方式运行
-it                    使用交互方式运行,进入容器查看内容
-p                     指定容器的端口
(
-p ip:主机端口:容器端口  配置主机端口映射到容器端口
-p 主机端口:容器端口
-p 容器端口
)
-P                     随机指定端口(大写的P)

в контейнер

docker exec -it f42ae22e4b72 bash

удалить контейнер

docker start 容器id          #启动容器
docker restart 容器id        #重启容器
docker stop 容器id           #停止当前运行的容器
docker kill 容器id           #强制停止当前容器

Другие общие команды

просмотр журнала

docker logs -tf 容器id
docker logs --tail number 容器id #num为要显示的日志条数

Посмотреть прогресс

$ docker top f42ae22e4b72
UID                 PID                 PPID                C                   STIME               TTY                 TIME                CMD
root                3242                3215                0                   16:17               ?                   00:00:00            /bin/bash
root                3304                3215                0                   16:20               ?                   00:00:00            bash

Просмотр метаданных

docker inspect 容器id

Резюме команды выглядит следующим образом

Не заходите слишком далеко и забудьте, почему вы начали