Это 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
Резюме команды выглядит следующим образом
Не заходите слишком далеко и забудьте, почему вы начали