1.拉取MySQL镜像
docker pull mysql
2.创建挂载目录(可选)
mkdir /docker/mymysql
3.运行MySQL容器
docker run -d --name mymysql -e MYSQL_ROOT_PASSWORD=123456xyz -e TZ=Asia/Shanghai --restart unless-stopped -p 3306:3306 -v /docker/mymysql:/var/lib/mysql mysql
-d
: 选项使容器在后台运行(即“分离模式”)。容器启动后,终端不会被容器的输出所占用。
--name mymysql:
--name
选项为容器指定一个自定义的名称。在这个例子中,容器的名称是mymysql
。你可以使用这个名称来管理容器(例如,停止或删除它)。
-e MYSQL_ROOT_PASSWORD=123456xyz:
-e
选项用于设置环境变量。在这个例子中,它设置了 MySQL 根用户的密码(MYSQL_ROOT_PASSWORD
)。密码设置为123456xyz
。这是 MySQL 数据库的管理员账户的密码。
-e TZ=Asia/Shanghai
:这行设置了容器的时区环境变量(TZ
),设置为Asia/Shanghai
。这将使 MySQL 容器的系统时间符合上海时间。
--restart unless-stopped
: 设置容器的重启策略为“除非手动停止”。这意味着如果容器崩溃或 Docker 重启,容器会自动重新启动,除非你手动停止它。
-p 3306:3306:
-p
选项用于映射容器端口到宿主机端口。在这个例子中,容器内的 3306 端口(MySQL 的默认端口)被映射到宿主机的 3306 端口。这样,宿主机上的应用程序可以通过访问localhost:3306
来连接 MySQL 容器。
-v /docker/mymysql:/var/lib/mysql:
-v
选项用于创建一个数据卷,将宿主机上的/docker/mymysql
目录挂载到容器内的/var/lib/mysql
目录。这使得容器的数据持久化到宿主机上的指定目录,即使容器被删除,数据也会保存在宿主机上。
mysql:
这是你要运行的 Docker 镜像的名称。在这个例子中,使用的是官方的 MySQL 镜像。Docker 会从 Docker Hub 拉取最新的 MySQL 镜像,并创建一个新的容器实例。
4.验证MySQL服务
docker logs mymysql # 查看日志输出
5.配置MySQL(可选)
# 创建配置文件
tee /mymysql/conf.d/mysql.cnf << 'EOF'
[mysql]
default-character-set=utf8mb4
[mysqld]
character-set-server=utf8mb4
EOF
# 重启容器使配置生效
docker restart mymysql