在dockerhub上查找镜像
拉取镜像
docker pull mysql:8.0.28
查看镜像
在宿主机创建mysql的配置文件的目录和数据目录
mkdir -p /home/docker-mysql/conf /home/docker-mysql/data
在配置文件目录下创建MySQL的配置文件my.cnf
vim /home/docker-mysql/conf/my.cnf
添加配置文件信息
[client]
#socket = /usr/mysql/mysqld.sock
default-character-set = utf8mb4
[mysqld]
#pid-file = /var/run/mysqld/mysqld.pid
#socket = /var/run/mysqld/mysqld.sock
#socket = /usr/mysql/mysqld.sock
#pid-file = /usr/mysql/mysqld.pid
datadir = /home/dodker-mysql/data
character_set_server = utf8mb4
collation_server = utf8mb4_bin
secure-file-priv= NULL
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# Custom config should go here
!includedir /etc/mysql/conf.d/
创建容器
docker run \
--restart=unless-stopped \
-d --name mysql01 \
-v /home/docker-mysql/conf/my.cnf:/etc/mysql/my.cnf \
-v /home/docker-mysql/data:/var/lib/mysql \
-p 3306:3306 \
-e MYSQL_ROOT_PASSWORD=root \
e364ef1e8a4f7fa6f50ac66edfe5d66e7441e0ecc005fa6c43e9f5dc6237ece1
参数解释:
-v : 挂载宿主机目录和 docker容器中的目录,前面是宿主机目录,后面是容器内部目录
-d : 后台运行容器
-p 映射容器端口号和宿主机端口号
-e 环境参数,MYSQL_ROOT_PASSWORD设置root用户的密码
查看容器启动情况
[root@e2ab0x9jme3furrd ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e364ef1e8a4f mysql "docker-entrypoint.s…" About a minute ago Up About a minute 0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp mysql01
至此,通过Docker方式安装Mysql成功!!!