点击上方“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