Docker安装Mysql
- 查找镜像 docker search mysql
- 拉取镜像 docker pull mysql:5.7 (此为拉取5.7版本)
docker pull mysql:latest 拉取最新版本
latest
是指最新版本的标签。在Docker中,镜像可以有多个标签,用于区分不同的版本或配置。latest
标签通常用于表示最新的可用版本。
当您使用docker pull命令时,如果未指定特定的标签,Docker将默认拉取具有
latest`标签的镜像。这意味着您将获取到最新版本的镜像。
3.docker images 查看拉取的镜像列表
4.创建mysql容器并运行
#!/bin/bash
#创建mysql容器
docker run -p 3306:3306 --name mysql --restart=always --privileged=true \
-v $PWD/log:/var/log/mysql \
-v $PWD/data:/var/lib/mysql \
-v $PWD/conf/my.cnf:/etc/mysql/conf.d/my.cnf \
-v /etc/localtime:/etc/localtime:ro \
-e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
#-p 3306:3306:指定宿主机端口与容器端口映射关系
#--name mysql:创建的容器名称
#--restart=always:总是跟随docker启动
#--privileged=true:获取宿主机root权限
#-v $PWD/log:/var/log/mysql:映射日志目录,宿主机:容器
#-v $PWD/data:/var/lib/mysql:映射数据目录,宿主机:容器
#-v $PWD/conf/my.cnf:/etc/mysql/conf.d/my.cnf \ 指定了某个配置文件后才生效
# 在Docker中的MySQL容器中,/etc/mysql/conf.d目录是用于存放MySQL的配置文件的目录。这个目录中的配置文件会覆盖MySQL容器中默认的配置文件。
#-v /etc/localtime:/etc/localtime:ro:让容器的时钟与宿主机时钟同步,避免时区的问题,ro是read only的意思,就是只读。
#-e MYSQL_ROOT_PASSWORD=123456:指定mysql环境变量,root用户的密码为123456
#-d mysql:latest:后台运行mysql容器,版本是latest。
mysql配置文件加载顺序
在Linux系统中,MySQL的配置文件按照以下顺序进行加载:
/etc/my.cnf
:这是MySQL的全局配置文件,它适用于所有MySQL实例。/etc/mysql/my.cnf
:这是MySQL的全局配置文件,与/etc/my.cnf
具有相同的作用。~/.my.cnf
:这是用户级别的配置文件,只适用于当前用户。/etc/mysql/conf.d/
目录下的.cnf
文件:该目录包含了一些MySQL的附加配置文件。/etc/mysql/mysql.conf.d/
目录下的.cnf
文件:该目录也包含了一些MySQL的附加配置文件。
在加载配置文件时,MySQL会按照上述顺序依次读取并应用配置,后面加载的配置文件会覆盖前面加载的配置。因此,如果同一个配置在多个文件中存在,后面加载的文件中的配置会覆盖前面加载的文件中的配置。
请注意,具体的配置文件路径和顺序可能会因不同的Linux发行版和MySQL版本而有所不同。因此,在您的系统上可能会有一些差异,请根据实际情况进行适当的调整。
5.docker ps 查看容器是否启动成功
status为up为启动成功 如果为Restarting说明失败
Docker容器的状态可以分为以下几种:
- 运行中(Running):容器正在运行,并且可以正常访问和执行任务。
- 停止(Exited):容器已经停止运行,但是仍然保留在系统中。这可能是因为容器运行完毕或者发生了错误。
- 暂停(Paused):容器的执行被暂停,但是容器的状态仍然保留在内存中。容器可以通过恢复操作重新开始执行。
- 重启(Restarting):容器正在重新启动,可能是因为发生了错误或者进行了更新操作。
这些状态可以通过docker ps -a
命令查看,并在状态列中显示。您可以根据容器的状态来判断容器的运行情况,并采取相应的操作,例如启动、停止、重启或 删除容器
6.启动失败查看日志
要查看Docker容器的日志,可以使用以下命令:
docker logs [container-id] /container-name
:查看指定容器的日志。docker logs -f [container-id]/container-name
:实时查看指定容器的日志,类似于tail -f
命令。docker logs --tail [number] [container-id]
:查看指定容器最后几条日志,[number]
为要查看的日志行数。docker-compose logs [service-name]
:查看指定Docker Compose服务的日志。
这些命令将显示Docker容器的日志输出,您可以使用它们来诊断容器的问题或监视容器的运行状态。
7.进入对应容器的命令终端
要进入Docker容器的bash命令行,您可以使用以下命令:
docker exec -it [container-id] bash
:进入正在运行的容器的bash命令行。docker exec -it [container-name] bash
:进入正在运行的容器的bash命令行,使用容器的名称而不是ID。
这些命令将在正在运行的容器中打开一个新的终端会话,并将您连接到容器的bash命令行。您可以在其中执行命令、查看文件、进行调试等操作。请注意,您需要具有足够的权限来执行这些命令,通常需要以root用户身份或具有相应的权限。
如果您只是想在容器中运行一次性命令而不需要进入交互式bash会话,可以使用docker exec [container-id] [command]
命令。这将在容器中执行指定的命令,并显示其输出。
使用exit退出bash