当前位置: 首页 > news >正文

Docker

【命令】

删除容器:docker rm

删除镜像:docker rmi
从tar中加载镜像:docker load -i xxx.tar

清空缓存(所有未使用的资源、镜像):docker system prune -a

清空构建缓存(中间层):docker builder prune -a

导出镜像:docker save -o D:\xxx.tar xxx:1.0

     docker save -o /home/xxx.tar redis mysql rebbit 
生成镜像:docker build -t xxx . 注意:这个.是必须的
    docker-compose -p xxx build
查看容器基本信息:docker inspect 容器ID或者名称
         docker inspect redis:7.0.4 | grep -i "version"
查询镜像:docker search docker.1ms.run/openresty

镜像适用于哪些平台:docker buildx imagetools inspect docker.1ms.run/openresty/openresty:alpine

日志:docker logs 容器ID或者名称

获取启动命令:docker inspect ac92f79748c1 | grep -A 200 "Cmd"

 只下载适用于ARM的镜像:docker pull --platform linux/arm64 docker.1ms.run/hashicorp/consul

重命名镜像名及Tag:

docker tag docker.1ms.run/hashicorp/consul consul
docker rmi docker.1ms.run/hashicorp/consul

查看容器的环境变量:docker exec <容器ID> env

          docker exec <容器ID> uname -m

查看镜像架构:docker inspect centos7_1:1 | grep -i "architecture"

查看镜像详细信息(包括历史层、环境变量等) docker inspect <镜像ID或名称:标签>

查看镜像构建历史 docker history <镜像ID或名称:标签> --no-trunc来禁止省略号的显示

 

选项

说明

-f--force

强制删除 正在运行的容器(等价于先 docker stop 再删除)。

-l--link

删除容器的链接(但不删除源容器)。

-v--volumes

同时删除与容器关联的 匿名卷(即未指定名称的卷)。

-s--stop-time

强制停止容器前的等待时间(秒),默认 10 秒。

-q--quiet

仅输出已删除容器的 ID,不显示其他信息。

 

【Mysql】

登录mysql:docker exec -it 容器名称 mysql -u root -p

查看全部用户:SELECT User, Host FROM mysql.user;

查看全部数据库:SHOW DATABASES;

查看全部表:SHOW TABLES;

创建用户:CREATE USER 'user1'@'%' IDENTIFIED BY '123456';

赋权限: GRANT ALL PRIVILEGES ON *.* TO 'user1'@'%';

导出mysql(全部):docker exec -it <容器名或容器ID> mysqldump -u 用户名 -p'密码' 数据库名 > 导出文件名.sql,例如 docker exec -it 12131ffedfv mysqldump -u root -p'123456' DB > /home/dbo.sql

导出mysql(只数据):docker exec -it <容器名或容器ID> mysqldump -u 用户名 -p'密码' --no-create-info 数据库名 > 导出文件名.sql

导出mysql(结构):docker exec -it <容器名或容器ID> mysqldump -u 用户名 -p'密码' --no-data 数据库名 > 导出文件名.sql

导出mysql(多个):docker exec -it <容器名或容器ID> mysqldump -u 用户名 -p'密码' --databases 数据库1 数据库2 > 导出文件名.sql

导出mysql(所有):docker exec -it <容器名或容器ID> mysqldump -u 用户名 -p'密码' --all-databases > 导出文件名.sql

开启监管服务:

在my.cnf插入
[mysqld]
general_log = 1
general_log_file = /var/log/mysql/general.log  # 必须与容器内路径一致
log_output = FILE  # 确保输出到文件 停止并删除现有容器
docker stop mysql
docker rm mysql原有命令重新创建容器
# 在宿主机创建日志目录(如果不存在)
mkdir -p /宿主机路径/mysql-logs  # 例如 /opt/mysql-logs# 重新启动容器,挂载目录并设置权限
docker run -d \--name mysql-container \-v /宿主机路径/mysql-logs:/var/log/mysql \  # 挂载宿主机目录到容器内的日志路径-e MYSQL_ROOT_PASSWORD=你的密码 \--restart always \mysql:你的版本 \--general-log=1 \--general-log-file=/var/log/mysql/general.log进入mysql
# 检查日志配置
SHOW VARIABLES LIKE 'general_log';
SHOW VARIABLES LIKE 'general_log_file';
SHOW VARIABLES LIKE 'log_output';测试
SELECT 'docker log test' AS test;查看日志文件

  

也可以直接敲命令
SET GLOBAL general_log = ON;
SET GLOBAL general_log_file = '/var/lib/mysql/general.log'; SET GLOBAL log_output = 'FILE'; 或者你也可以 SET GLOBAL log_output = 'TABLE'; 这也可以直接在表里查询 SELECT event_time, user_host, command_type, CONVERT(argument USING utf8mb4) AS sql_text FROM mysql.general_log

  

【Redis】

进入容器:docker exec -it 容器名称 redis-cli

输入密码:Auth 密码

查询Key:KEYS *

获取值:字符串类型可以用GET ,比如GET NAMEKEYS,如果是Hash类型,可以用HGETALL

持久化

# 1. 开启 AOF 持久化(混合持久化基于 AOF 机制)
appendonly yes# 2. 开启混合持久化(Redis 4.0+ 支持,默认开启)
aof-use-rdb-preamble yes# 3. AOF 重写触发条件(满足任一即触发,触发时生成混合文件)
auto-aof-rewrite-percentage 100  # AOF 文件体积比上次重写后增长 100%
auto-aof-rewrite-min-size 64mb   # AOF 文件最小体积达到 64MB 

清空AOF:进入容器后,执行BGREWRITEAOF 

查看文件:docker exec -it 容器名称 ls -l /data

【镜像】

dockers.1ms.run               docker.xuanyuan.me

如果需要对镜像进行自定义操作,例如一个ubuntu:24.04,希望对他增加一些基础包再导出

1、下载镜像:docker pull ubuntu:24.04

2、运行镜像:docker run -it --name ubuntu2404-build ubuntu:24.04 bash

3、切换源:sed -i 's|http://archive.ubuntu.com|https://mirrors.tuna.tsinghua.edu.cn|g' /etc/apt/sources.list

4、安装想要的一些包

apt-get update
apt-get install -y build-essential cmake g++ gdb make ninja-build git

5、退出:exit

6、提交更改成新镜像:docker commit ubuntu2404-build ubuntu:24.04-cxx

7、导出:docker save -o /root/new-ubuntu-2404.tar.gz ubuntu:24.04-cxx

【Dockerfile】

安装hadolint对Dockerfile进行语法检查:docker pull hadolint/hadolint:lasted

检查语法:docker run --rm -v "D:/test" -w /work hadolint:latest Dockerfile

 

【WSL】

如果持续生成镜像导致C盘空间很少,这是因为WSL不会自动收缩
可以如一下进行操作
首先 docker system prune -a
然后
Get-ChildItem "$env:LOCALAPPDATA\Docker\wsl" -Recurse -File -ErrorAction SilentlyContinue |
Sort-Object Length -Descending |
Select-Object -First 5 FullName, @{Name='GB';Expression={[math]::Round($_.Length/1GB,2)}}
得到类型的结果
FullName GB
------ --
C:\Users\you\AppData\Local\Docker\wsl\data\ext4.vhdx 42.31
然后压缩WSL
关闭Docker Desktop
wsl --shutdown
diskpart
select vdisk file="C:\Users\<你>\AppData\Local\Docker\wsl\data\ext4.vhdx"
attach vdisk readonly
compact vdisk
detach vdisk
exit

http://www.wxhsa.cn/company.asp?id=65

相关文章:

  • 前端调试列出方法和属性
  • JDK环境变量配置
  • Gitee DevOps:打造中国开发者专属的全流程效能引擎
  • vue可视化大屏开发
  • Linux /boot 目录详解
  • 手把手教你如何用yolo算法进行运动监测
  • vi 文本编辑器的使用方法
  • java将指定的两张图片合成pdf并在指定坐标位置写入内容
  • v-model的简单实现
  • 旧版本Flutter使用xcode16打包上架时报错
  • 国产化Excel处理组件Spire.XLS教程:C# 读取 CSV 文件,从基础读取到 DataTable 转换
  • 常用redis客户端对比
  • 【URP】Shader绘制棋盘格对比内置管线
  • Codeforces Round 1049 (Div. 2)(C-E)
  • 虚拟列表
  • 条码控件Aspose.BarCode教程:使用 C# 构建 Code11 条形码生成器
  • 智能引擎驱动软件工业化革命:Gitee PPM如何重塑企业级开发范式
  • 深入解析Web Components:Shadow DOM实战指南
  • HCIP回顾— BGP基础
  • 你的测试又慢又不可靠-因为你测错了东西
  • 你的错误处理一团糟-是时候修复它了-️
  • 物理焦距、像素焦距、像元与相机内参(fx, fy)的意义与作用
  • 实时通信的头痛-问题不在WebSocket而是你的框架
  • 文件不只是数据-一份稳健的文件处理指南
  • vue+websocket+Stomp组件实现前端长连接
  • java课前问题列表
  • 多字段排序工具类,支持树形
  • 鸿蒙 HAP 包处理全攻略:从解包到签名,So 库加固一步到位
  • 关于vue在PC端,rem对不同屏幕进行适配
  • GreatSQL分页查询优化案例实战