Docker — это платформа контейнеризации с открытым исходным кодом, которая упаковывает приложения и их зависимости в изолированный контейнер, а затем запускается в любой операционной системе. MySQL — популярная система управления реляционными базами данных с открытым исходным кодом. В этой статье рассказывается о извлечении изображений, их сохранении, создании контейнеров, запуске контейнеров приложений и тестировании.
Откройте терминал и установите его, если у вас его нет. В терминале используйте информацию о докере или версию докера, чтобы проверить, установлен ли инструмент докера. Если он уже установлен, извлеките его напрямую.
Если инструмент зеркала не установлен, мы можем использовать доморощенный, чтобы установить докер, выполнить поиск, а затем найти докер и выполнить команду установки. docker install docker
Вот и все.
$ brew search docker
Warning: Unexpected method 'on_sonoma' called on Cask safari-technology-preview.
Follow the instructions here:
https://github.com/Homebrew/homebrew-cask#reporting-bugs
==> Formulae
chipmk/tap/docker-mac-net-connect docker-compose-completion docker-machine-completion docker-machine-parallels lazydocker
docker docker-credential-helper docker-machine-driver-hyperkit docker-slim powerman-dockerize
docker-buildx docker-credential-helper-ecr docker-machine-driver-vmware docker-squash wenjunxiao/brew/docker-accessor
docker-clean docker-gen docker-machine-driver-vultr docker-swarm wenjunxiao/brew/docker-connector ✔
docker-completion docker-ls docker-machine-driver-xhyve docker2aci mockery
docker-compose docker-machine docker-machine-nfs dockerize
==> Casks
docker docker-edge docker-toolbox dockey dozer
В сетевом состоянии, когда мы используем докер удаленный образ и укажите версию Вот и все.Например, я хочу вытащить пультmysql-8.0.31
, а затем используем команду docker pull mysql:8.0.31
. Вот практика:
$ docker pull mysql:8.0.31
8.0.31: Pulling from library/mysql
0ed027b72ddc: Pull complete
0296159747f1: Pull complete
3d2f9b664bd3: Pull complete
df6519f81c26: Pull complete
36bb5e56d458: Pull complete
054e8fde88d0: Pull complete
f2b494c50c7f: Pull complete
132bc0d471b8: Pull complete
135ec7033a05: Pull complete
5961f0272472: Pull complete
75b5f7a3d3a4: Pull complete
Digest: sha256:3d7ae561cf6095f6aca8eb7830e1d14734227b1fb4748092f2be2cfbccf7d614
Status: Downloaded newer image for mysql:8.0.31
docker.io/library/mysql:8.0.31
На этом этапе будет некоторое время ожидания. После завершения всех запросов будет напечатана некоторая информация об изображении, такая как подпись версии (дайджест), статус извлеченного изображения и версия образа (статус).
По умолчанию докер получит последнюю версию образа при выполнении. docker pull mysql
Команда эквивалентна docker pull mysql:latest
,Все они тянут последнюю версию зеркальной библиотеки.
Можно использовать docker images
Чтобы еще раз подтвердить, было ли изображение успешно извлечено и загружено. Если вы не знаете, какая версия вам нужна,можно пойтиdockerПроверьте официальный складhttps://hub.docker.com/_/mysql/tags?page=1&name=8.0.31
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
……
mysql 8.0.31 7484689f290f 14 months ago 538MB
mysql latest 3218b38490ce 2 years ago 516MB
……
Убедившись, что с извлеченным образом нет проблем, вам необходимо экспортировать образ MySQL в виде файла для установки и использования в других несетевых средах.
Формат файла экспорта
docker save -o [полный путь для сохранения файла] [имя изображения]:[версия изображения]
Обычно мы сохраняем образ MySQL как файл tar с именем и версией в качестве имени изображения, например:
$ docker save -o /Users/Aion/mysql-8.0.31.tar mysql:8.0.31
$ cd /Users/Aion
$ ll
Загрузите или скопируйте файл изображения в папку на сервере.,Конечно, для автономного сервера здесь также требуется среда «Установить докер».,После завершения установки,использоватьdocker load
команда для загрузки Вот и все Для удобства демонстрации мы можем удалить mysql в локальном образе. Команда удаления такая. docker image rm [идентификатор контейнера изображения: имя образа: версия образа]
。
$ docker image rm 3218b38490ce
Untagged: mysql:latest
Untagged: mysql@sha256:e9027fe4d91c0153429607251656806cc784e914937271037f7738bd5b8e7709
Deleted: sha256:3218b38490cec8d31976a40b92e09d61377359eab878db49f025e5d464367f3b
Deleted: sha256:aa81ca46575069829fe1b3c654d9e8feb43b4373932159fe2cad1ac13524a2f5
Deleted: sha256:0558823b9fbe967ea6d7174999be3cc9250b3423036370dc1a6888168cbd224d
Deleted: sha256:a46013db1d31231a0e1bac7eeda5ad4786dea0b1773927b45f92ea352a6d7ff9
Deleted: sha256:af161a47bb22852e9e3caf39f1dcd590b64bb8fae54315f9c2e7dc35b025e4e3
Deleted: sha256:feff1495e6982a7e91edc59b96ea74fd80e03674d92c7ec8a502b417268822ff
Deleted: sha256:8805862fcb6ef9deb32d4218e9e6377f35fb351a8be7abafdf1da358b2b287ba
Deleted: sha256:872d2f24c4c64a6795e86958fde075a273c35c82815f0a5025cce41edfef50c7
Deleted: sha256:6fdb3143b79e1be7181d32748dd9d4a845056dfe16ee4c827410e0edef5ad3da
Deleted: sha256:b0527c827c82a8f8f37f706fcb86c420819bb7d707a8de7b664b9ca491c96838
Deleted: sha256:75147f61f29796d6528486d8b1f9fb5d122709ea35620f8ffcea0e0ad2ab0cd0
Deleted: sha256:2938c71ddf01643685879bf182b626f0a53b1356138ef73c40496182e84548aa
Deleted: sha256:ad6b69b549193f81b039a1d478bc896f6e460c77c1849a4374ab95f9a3d2cea2
$
$ docker image rm mysql:8.0.31
Untagged: mysql:8.0.31
Untagged: mysql@sha256:3d7ae561cf6095f6aca8eb7830e1d14734227b1fb4748092f2be2cfbccf7d614
Deleted: sha256:7484689f290f1defe06b65befc54cb6ad91a667cf0af59a265ffe76c46bd0478
Deleted: sha256:fb249074ba1621ae2f0021b89488f93d6d591fd42f8bbc760be96a653d18a066
Deleted: sha256:d7912527c048a7e206c51080f7f1b6b6c383ac8954e3da7d113b00d0a96c7044
Deleted: sha256:994f05094d147f16e330dd7c9afd5e1472fbf1ce1038eb707e379ae507de6167
Deleted: sha256:1337fe7eaf3ed7bac1f1842205c3c80466781cf2ed39d755043a24939a9c4408
Deleted: sha256:4524762c7e21412b3fef00e189fe6b81e78f2751fef4f30355018dc3ab5f3cf2
Deleted: sha256:5222c8df3c5115dcf6c3bb957d5160d5d7124437fa2f214368d67b8e1e6d670e
Deleted: sha256:169fcf64e0d193fda3e49267b454ddeb4083f05e70bbcbbc6de2798944c3e555
Deleted: sha256:bc87451b8005b06fa948e48c2644bc42107cf037499d15dad7f341064035dfc2
Deleted: sha256:93c1acbf3bfcdd2a82a68687481569a07d619469a596b5f017f17cc092498eef
Deleted: sha256:29bd3d7c6e1683e422776b9d3285e8a3f1272f07656fc63a941cb7729a169100
Deleted: sha256:d3cc7b6aa7bc15725c1a856ce06fe436da3fbccf0c9c06b04e45f79b3439c154
$
Интерфейс процесса загрузки выглядит следующим образом:
После успешной загрузки информации мы проверяем, правильно ли загружен докер. Из следующей информации мы видим, что MySQL загружается в среду докера.
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
……
mysql 8.0.31 7484689f290f 14 months ago 538MB
……
Все готово, нам нужен только восточный ветер. Следующие шаги аналогичны тем, что мы делаем в других Linux или Windows. Мы используем Docker для создания контейнера MySQL, который на самом деле представляет собой среду, аналогичную среде хранения MySQL.
Если монтирование не требуется, напрямую используйте команду для создания контейнера и верните идентификатор созданного контейнера:
$ docker run --name mysql -p 13306:13306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:8.0.31
1b794ee4a9e6b56244cbb561b7fce88ff20a1b5dae3cd0827bd2812199d99787
Например, если вам нужно его смонтировать, мне нужно смонтировать уже смонтированный образ MySQL.
docker run --name mysql -p 13306:13306 \
-v /var/mysql/log:/var/log/mysql \
-v /var/mysql/data:/var/lib/mysql \
-v /var/mysql/conf/my.cnf:/etc/my.cnf -e MYSQL_ROOT_PASSWORD=123456 -d mysql:8.0.31
Объяснение и описание параметра:
Подключение к контейнеру на самом деле похоже на то, как мы используем команду mysql для подключения к серверу MySQL. Формат подключения к контейнеру аналогичен формату подключения к неконтейнеру:
docker exec -it [имя контейнера] mysql -uroot -p
Результаты выполнения следующие:
$ docker exec -it mysql mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.31 MySQL Community Server - GPL
Copyright (c) 2000, 2022, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
Чтобы проверить, успешно ли это, мы можем выполнить несколько команд, чтобы проверить, успешно ли это.
mysql>
mysql> select version();
+-----------+
| version() |
+-----------+
| 8.0.31 |
+-----------+
1 row in set (0.00 sec)
mysql>
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.01 sec)
mysql>
Благодаря описанному выше опыту вы научились использовать Docker для извлечения образа MySQL в автономной среде и использовать Docker для создания, подключения и использования контейнера MySQL в автономной среде? Docker предоставляет удобный способ создания контейнерной среды MySQL и управления ею, что делает разработку и развертывание более гибкими и надежными. С другой стороны, он обеспечивает изоляцию и позволяет избежать некоторых проблем, вызванных аппаратными проблемами, особенно многих проблем, возникающих в ядре Arm.