Docker环境MySQL常用操作命令

2023年 9月 28日 57.1k 0

点击上方“IT那活儿”公众号,关注后了解更多内容,不管IT什么活儿,干就完了!!!

创建一个MySQL Docker容器

docker run --name mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:latest

其中:

  • --name是容器的名称;
  • -e表示设置环境变量;
  • MYSQL_ROOT_PASSWORD表示设置root用户的密码;
  • -d表示以后台模式运行Mysql;
  • mysql:latest表示通过镜像启动容器。

docker run -d --name=mysql-server -p 3306:3306 
-v mysql-data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=your_password mysql

  • -d将以分离模式运行此容器,以便它在后台运行。
  • --name将名称分配mysql-server给您的容器实例。如果不指定此项,Docker 将生成一个随机名称。
  • -p将 MySQL 容器端口绑定3306到主机上的相同端口。您将能够使用在您的主机上运行的MySQL 客户端 ()连接到127.0.0.1端口。3306``mysql
  • -v选项将容器卷 (/var/lib/mysql)内的数据文件夹绑定到mysql-data您在上一步中创建的本地 Docker 卷 ()。
  • -e设置环境变量。在这种情况下,MySQL 根密码。

查看正在运行的Docker容器:

docker ps

查看所有的Docker容器(包括停止的):

docker ps -a

docker container ls

docker ps 详细参数:

  • -a :显示所有的容器,包括未运行的。
  • -f :根据条件过滤显示的内容。
  • --format :指定返回值的模板文件。
  • -l :显示最近创建的容器。
  • -n :列出最近创建的n个容器。
  • --no-trunc :不截断输出。
  • -q :静默模式,只显示容器编号。
  • -s :显示总的文件大小。

查看都有哪些镜像:

docker images

进入Docker容器:使用 docker exec -it bin/bash 指令进入模拟终端:

docker exec -it 容器ID /bin/bash

进入容器后,可以使用linux命令,例如 ls,pwd 等。Docker容器内部的目录结构与普通的Linux文件系统类似,包括根目录、bin目录、etc目录、tmp目录、usr目录等。这些目录的作用与普通的Linux文件系统相同。查看Docker镜像文件存储路径:通过docker inspect命令查看docker inspect 容器名。这个命令会返回Docker镜像的详细信息,包括它的存储信息。其中的"Source"字段就是该镜像的存储路径。其中,LowerDir、MergedDir、UpperDir和WorkDir字段分别表示Docker镜像的存储位置。查看Docker的系统级信息,比如内核,镜像数,容器数等:

docker info

查看Docker版本信息:

docker version

启动Docker容器:

docker start 

停止Docker容器:

docker stop 

停止所有的Docker容器:

docker stop $(docker ps -a -q)

重启Docker容器:

docker restart

进入MySQL容器

docker exec -it mysql bash

其中:

  • -it表示以交互和终端模式进入容器;
  • mysql表示进入的容器名称;
  • bash表示进入容器后使用的命令行。

docker exec -it mysql-server mysql -uroot -p

docker exec -it 2c7718c213ab mysql -uroot -pPassWord -ss -e"select count(*) from information_schema.processlist;"

上面的 2c7718c213ab 是容器ID,通过 docker ps 命令可以查到。进入容器后,启动 MySql 交互命令行:

mysql -hlocalhost -uroot -p123456

退出容器:

exit

如果我们需要将本地的Mysql数据导入到容器中,可以使用以下命令:

docker exec -i mysql mysql -uroot -p123456 database_name < /path/to/your/sql/file.sql

其中:

  • -i表示输入;

  • -uroot表示登录用户名;

  • -p123456表示密码;

  • database_name表示数据库名称;

  • < /path/to/your/sql/file.sql表示导入的sql文件路径。

复制容器内的文件到宿主机:

docker cp mysql_test:/var/lib/mysql $PWD/

这里的 cp 命令作用是复制容器内的文件,后面的 $PWD 为 当前所在的宿主机目录,例如我现在的目录是 /home/hsk/box_container/mysql/,复制出来的 mysql 文件夹就会在我当前的路径下。

Docker日志相关

docker logs [OPTIONS] CONTAINER Options:

  • --details 显示更多的信息;
  • -f, --follow 跟踪实时日志;
  • --since string 显示自某个timestamp之后的日志,或相对时间,如42m(即42分钟);
  • --tail string 从日志末尾显示多少行日志, 默认是all -t,;
  • --timestamps 显示时间戳;
  • --until string 显示自某个timestamp之前的日志,或相对时间,如42m(即42分钟)。

参考事例如下:1)查看最后50行日志

docker logs -f --tail=50 CONTAINER_ID

2)查看指定时间后的日志,只显示最后100行  最常用的

docker logs -f -t --since="2023-01-01" --tail=100 CONTAINER_ID

3)查看最近30分钟的日志

docker logs --since 30m CONTAINER_ID

4)查看某时间之后的日志

docker logs -t --since="2023-04-08T13:23:37" CONTAINER_ID

5)查看某时间段日志

docker logs -t --since="2023-04-08T13:23:37" --until "2023-04-09T12:23:37" CONTAINER_ID

  • --查看目录结构:

docker exec 容器id ls -lrt /mysql/data

  • --删除容器、命令如下:

docker rm -f 363f7c85379c

参数说明:  -f:强制删除。

  • --删除本地镜像:

docker rmi -f xiaotongdemo:v0.1

参数说明:  -f:强制删除。
END

本文作者:魏 斌(上海新炬中北团队)

本文来源:“IT那活儿”公众号

相关文章

Oracle如何使用授予和撤销权限的语法和示例
Awesome Project: 探索 MatrixOrigin 云原生分布式数据库
下载丨66页PDF,云和恩墨技术通讯(2024年7月刊)
社区版oceanbase安装
Oracle 导出CSV工具-sqluldr2
ETL数据集成丨快速将MySQL数据迁移至Doris数据库

发布评论