Ubuntu系统Mysql镜像

Ubuntu系统Mysql镜像pull命令

1
2
3
4
5
docker pull ubuntu/mysql:latest
docker pull ubuntu/mysql:edge
docker pull ubuntu/mysql:8.0-20.04_beta
docker pull ubuntu/mysql:8.0-21.04_edge
docker pull ubuntu/mysql:8.0-20.04_edge

用法

在本地启动此映像:

1
docker run -d --name mysql-container -e TZ=UTC -p 30306:3306 -e MYSQL_ROOT_PASSWORD=My:S3cr3t/ubuntu/mysql:8.0-21.04_beta

在 localhost:30306 访问您的 MySQL 服务器。
参数
参数说明

1
2
3
4
5
6
7
8
9
10
11
12
-e TZ=UTC 时区。
-e MYSQL_ROOT_PASSWORD=secret_for_root 设置 root 用户的密码。此选项是强制性的,不能为空。
-e MYSQL_PASSWORD=secret 设置 MYSQL_USER 用户的密码。
-e MYSQL_USER=john 创建一个具有超级用户权限的新用户。这与 MYSQL_PASSWORD 结合使用。
-e MYSQL_DATABASE=db_test 设置默认数据库的名称。
-e MYSQL_ALLOW_EMPTY_PASSWORD=yes 为 root 用户设置一个空白密码。这不建议在生产中使用,请确保您知道自己在做什么。
-e MYSQL_RANDOM_ROOT_PASSWORD=yes 使用 pwgen 为 root 用户生成一个随机初始密码。它将打印在日志中,搜索 GENERATED ROOT PASSWORD。
-e MYSQL_ONETIME_PASSWORD=yes 初始化完成后将 root 用户设置为 experide,强制在首次登录时更改密码。
-e MYSQL_INITSB_SKIP_TZINFO=yes 时区数据通过入口点脚本自动加载,将此变量设置为任何非空值以禁用它。
-p 30306:3306 在 localhost:30306 上公开 MySQL 服务器。
-v /path/to/data:/var/lib/mysql 每次启动新容器时都保留数据而不是初始化新数据库。
-v /path/to/config/files/:/etc/mysql/mysql.conf.d/ 本地配置文件(试试这个例子 my.cnf)。

初始化脚本

还可以将初始化脚本添加到其容器中。这包括 *.sql、.sql.gz 和 *.sh 脚本,您只需将它们放在容器内的 /docker-entrypoint-initdb.d 目录中。 MySQL初始化完成并创建默认数据库和用户后,脚本按以下顺序执行:

按字母顺序运行任何 *.sql 文件。默认情况下,目标数据库是通过 MYSQL_DATABASE 指定的。
按字母顺序运行任何可执行的 *.sh 脚本。
按字母顺序获取任何不可执行的 *.sh 脚本。

所有这些都是在 MySQL 服务启动之前完成的。请记住,如果您的数据库目录不为空(包含预先存在的数据库),它们将保持不变。
测试/调试

1
2
3
4
5
6
7
要调试容器:

docker logs -f mysql-container

要获得交互式 shell:

docker exec -it mysql-container /bin/bash

此映像还包括用于交互式容器使用的 mysql 客户端:

1
2
3
$ docker network create mysql-network
$ docker network connect mysql-network mysql-container
$ docker run -it --rm --network mysql-network ubuntu/mysql:8.0-21.04_beta mysql -hmysql-container -uroot -p

给TA买糖
共{{data.count}}人
人已赞赏
数据库

Phpmyadmin官方docker镜像

2021-7-4 19:37:42

数据库

Centos系统Mysql镜像

2021-7-4 21:30:54

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
今日签到
有新私信 私信列表
搜索