合 mariadb的docker安装使用方式
Tags: MySQL数据库Docker镜像docker环境mariadb
- 镜像
- 使用
- 官方说明
- Quick reference
- Supported tags and respective Dockerfile links
- Quick reference (cont.)
- What is MariaDB?
- How to use this image
- Start a mariadb server instance
- Connect to MariaDB from the MySQL/MariaDB command line client
- ... via docker-compose or docker stack deploy
- Container shell access and viewing MariaDB logs
- Using a custom MariaDB configuration file
- Configuration without a cnf file
- Environment Variables
- MARIADB_ROOT_PASSWORD / MYSQL_ROOT_PASSWORD, MARIADB_ROOT_PASSWORD_HASH
- MARIADB_ALLOW_EMPTY_ROOT_PASSWORD / MYSQL_ALLOW_EMPTY_PASSWORD
- MARIADB_RANDOM_ROOT_PASSWORD / MYSQL_RANDOM_ROOT_PASSWORD
- MARIADB_ROOT_HOST / MYSQL_ROOT_HOST
- MARIADB_MYSQL_LOCALHOST_USER / MARIADB_MYSQL_LOCALHOST_GRANTS
- MARIADB_DATABASE / MYSQL_DATABASE
- MARIADB_USER / MYSQL_USER, MARIADB_PASSWORD / MYSQL_PASSWORD, MARIADB_PASSWORD_HASH
- MARIADB_INITDB_SKIP_TZINFO / MYSQL_INITDB_SKIP_TZINFO
- MARIADB_AUTO_UPGRADE / MARIADB_DISABLE_UPGRADE_BACKUP
- Docker Secrets
- Initializing a fresh instance
- Caveats
- Where to Store Data
- No connections until MariaDB init completes
- Health/Liveness/Readiness Checking
- Usage against an existing database
- Creating database dumps
- Restoring data from dump files
- Creating backups with Mariabackup
- Restore backups with Mariabackup
- How to reset root and user passwords
- How to install MariaDB plugins
镜像
https://hub.docker.com/_/mariadb
https://github.com/MariaDB/mariadb-docker
使用
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | docker pull dockerproxy.com/library/mariadb:10.11.4 docker rm -f mariadb10 docker run -itd --name mariadb10 -h mariadb10 \ -p 3406:3306 \ -e MARIADB_USER=lhr -e MARIADB_PASSWORD=lhr \ -e MARIADB_ROOT_PASSWORD=lhr -e TZ=Asia/Shanghai \ mariadb:10.11.4 mysql -uroot -plhr -P3406 -h 127.0.0.1 CREATE USER IF NOT EXISTS root@localhost IDENTIFIED BY 'thisismyrootpassword'; SET PASSWORD FOR root@localhost = PASSWORD('thisismyrootpassword'); GRANT ALL ON *.* TO root@localhost WITH GRANT OPTION; CREATE USER IF NOT EXISTS root@'%' IDENTIFIED BY 'thisismyrootpassword'; SET PASSWORD FOR root@'%' = PASSWORD('thisismyrootpassword'); GRANT ALL ON *.* TO root@'%' WITH GRANT OPTION; CREATE USER IF NOT EXISTS myuser@'%' IDENTIFIED BY 'thisismyuserpassword'; SET PASSWORD FOR myuser@'%' = PASSWORD('thisismyuserpassword'); CREATE DATABASE IF NOT EXISTS mydatabasename; GRANT ALL ON mydatabasename.* TO myuser@'%'; |
官方说明
Note: the description for this image is longer than the Hub length limit of 25000, so has been trimmed. The full description can be found at https://github.com/docker-library/docs/tree/master/mariadb/README.md. See also docker/hub-feedback#238 and docker/roadmap#475.
Quick reference
- Maintained by:
MariaDB developer community - Where to get help:
Database Adminstrators (Stack Exchange), MariaDB Knowledge Base (Ask a Question here available).
Also see the "Getting Help with MariaDB" article on the MariaDB Knowledge Base.
11.1.1-rc-jammy
,11.1-rc-jammy
,11.1.1-rc
,11.1-rc
11.0.2-jammy
,11.0-jammy
,11-jammy
,jammy
,11.0.2
,11.0
,11
,latest
10.11.4-jammy
,10.11-jammy
,10-jammy
,lts-jammy
,10.11.4
,10.11
,10
,lts
10.10.5-jammy
,10.10-jammy
,10.10.5
,10.10
10.9.7-jammy
,10.9-jammy
,10.9.7
,10.9
10.6.14-focal
,10.6-focal
,10.6.14
,10.6
10.5.21-focal
,10.5-focal
,10.5.21
,10.5
10.4.30-focal
,10.4-focal
,10.4.30
,10.4
Quick reference (cont.)
- Where to file issues:
Issues can be filed on https://jira.mariadb.org/ under the "MDEV" Project and "Docker" Component, or on GitHub - Supported architectures: (more info)
amd64
,arm64v8
,ppc64le
,s390x
- Published image artifact details:
repo-info repo'srepos/mariadb/
directory (history)
(image metadata, transfer size, etc) - Image updates:
official-images repo'slibrary/mariadb
label
official-images repo'slibrary/mariadb
file (history) - Source of this description:
docs repo'smariadb/
directory (history)
What is MariaDB?
MariaDB Server is one of the most popular database servers in the world. It's made by the original developers of MySQL and guaranteed to stay open source. Notable users include Wikipedia, DBS Bank, and ServiceNow.
The intent is also to maintain high compatibility with MySQL, ensuring a library binary equivalency and exact matching with MySQL APIs and commands. MariaDB developers continue to develop new features and improve performance to better serve its users.
How to use this image
Start a mariadb
server instance
Starting a MariaDB instance with the latest version is simple:
1 | $ docker run --detach --name some-mariadb --env MARIADB_USER=example-user --env MARIADB_PASSWORD=my_cool_secret --env MARIADB_ROOT_PASSWORD=my-secret-pw mariadb:latest |
or:
1 2 | $ docker network create some-network $ docker run --detach --network some-network --name some-mariadb --env MARIADB_USER=example-user --env MARIADB_PASSWORD=my_cool_secret --env MARIADB_ROOT_PASSWORD=my-secret-pw mariadb:latest |
... where some-network
is a newly created network (other than bridge
as the default network), some-mariadb
is the name you want to assign to your container, my-secret-pw
is the password to be set for the MariaDB root user. See the list above for relevant tags to match your needs and environment.
Connect to MariaDB from the MySQL/MariaDB command line client
The following command starts another mariadb
container instance and runs the mariadb
command line client against your original mariadb
container, allowing you to execute SQL statements against your database instance:
1 | $ docker run -it --network some-network --rm mariadb mariadb -hsome-mariadb -uexample-user -p |
... where some-mariadb
is the name of your original mariadb
container (connected to the some-network
Docker network).
This image can also be used as a client for non-Docker or remote instances:
1 | $ docker run -it --rm mariadb mariadb -h <server container IP> -u example-user -p |
That will give you a standard MariaDB prompt. You can test it with:
1 | MariaDB [(none)]> SELECT VERSION(); |
... which should give you the version. You can then use exit
to leave the MariaDB command line client and the client container.
More information about the MariaDB command-line client can be found in the MariaDB Knowledge Base
... via docker-compose
or docker stack deploy
Example docker-compose.yml
for mariadb
:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | ### Use root/example as user/password credentials version: '3.1' services: db: image: mariadb restart: always environment: MARIADB_ROOT_PASSWORD: example adminer: image: adminer restart: always ports: - 8080:8080 |