Docker安装mysql8

一、下载镜像

# 查找镜像

docker search mysql

# 下载镜像 https://hub.docker.com/ docker 官方搜索查看有哪些 mysql 镜像版本

docker pull mysql:8.0.27

# 查看已下载镜像

docker images

 

二、创建相关目录

宿主机创建相关

mkdir -p /opt/docker/mysql/mysql8/conf # 配置文件目录
mkdir -p /opt/docker/mysql/mysql8/data # 数据目录
mkdir -p /opt/docker/mysql/mysql8/log # 日志目录

 

宿主机新增配置文件

# 配置文件

vim /opt/docker/mysql/mysql8/conf/my.cnf


配置文件内容

# Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; version 2 of the License.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA

#
# The MySQL Server configuration file.
#
# For explanations see
# http://dev.mysql.com/doc/mysql/en/server-system-variables.html
[client]
default-character-set = utf8mb4

[mysqld]
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
datadir = /var/lib/mysql

# 限制导入导出文件目录的, 可自行搜索, 我暂时没有用到过, 下面这样表示不限制目录
secure-file-priv =

character_set_server = utf8mb4
collation_server = utf8mb4_bin
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0

# Custom config should go here
!includedir /etc/mysql/conf.d/

# 这里是配置加密方式的
# 启动警告 'default_authentication_plugin' is deprecated and will be removed in a future release. Please use authentication_policy instead.
default_authentication_plugin= mysql_native_password

 

 

三、创建并运行容器

 

docker run \
-p 3306:3306 \
-e MYSQL_ROOT_PASSWORD=root \
-v /opt/docker/mysql/mysql8/data:/var/lib/mysql:rw \
-v /opt/docker/mysql/mysql8/log:/var/log/mysql:rw \
-v /opt/docker/mysql/mysql8/conf/my.cnf:/etc/mysql/my.cnf:rw \
-v /etc/localtime:/etc/localtime:ro \
--name mysql801 \
--restart=always \
-d mysql:8.0.27

 

-p 3306:3306 : 端口映射, 前宿主机后容器
-e MYSQL_ROOT_PASSWORD=root : 指定数据库root用户的密码
-v /opt/docker/mysql/mysql8/data:/var/lib/mysql:rw : 容器目录与宿主机目录的映射/挂载, 后面是指定读写权限
-v /opt/docker/mysql/mysql8/log:/var/log/mysql:rw : 同上
-v /opt/docker/mysql/mysql8/conf/my.cnf:/etc/mysql/my.cnf:rw : 同上
-v /etc/localtime:/etc/localtime:ro : 时区文件
--name mysql8 : 容器名称
--restart=always : docker重启时容器也重启, 类似开机启动的意思
-d mysql:8.0.27

 

查看日志

docker logs 容器ID/容器名称
docker logs mysql801

登录容器

docker exec -it 容器ID/容器名称 /bin/bash
docker exec -it mysql801 /bin/bash
posted @   咔嚓船长117  阅读(64)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示