首页
Linux常用
docker常用
关于
Search
1
docker安装MDCX
244 阅读
2
麒麟KylinV10离线下载安装包及安装
173 阅读
3
iStoreOS上使用WireGuard
135 阅读
4
UNRAID增加和缩小虚拟机虚拟磁盘大小
52 阅读
5
麒麟v10系统openssh升级OpenSSH_10.0p2-OpenSSL 3.4.2
50 阅读
默认分类
docker
容器安装
Linux
数据库
群辉
软路由
unRAID
PVE
Nginx
wow
杂项
图床
飞牛
转载微信公众号文章
Docker学习
Linux学习
登录
Search
标签搜索
nginx
unraid
PVE
数据库
dockerfile
同步
wow服务器
装机硬件
宏
v2ray
直通
电视盒子
相册
黑裙7.0.1
远程穿透
定时
ssh
emby
symlink
软链接
奥黛丽·逐爱者
累计撰写
116
篇文章
累计收到
21
条评论
首页
栏目
默认分类
docker
容器安装
Linux
数据库
群辉
软路由
unRAID
PVE
Nginx
wow
杂项
图床
飞牛
转载微信公众号文章
Docker学习
Linux学习
页面
Linux常用
docker常用
关于
搜索到
116
篇与
奥黛丽·逐爱者
的结果
2025-07-24
Rsync(远程同步):Linux 最常用的文件复制与同步工具
Rsync(远程同步)是Linux/Unix系统中用于远程和本地复制及同步文件和目录的最常用命令。借助 rsync 命令,可以跨目录、磁盘和网络远程和本地复制及同步数据,执行数据备份,并在两台 Linux 机器之间进行镜像同步。本文将详细讲解 rsync 命令的部分基本和高级用法,帮助您在基于 Linux 的机器上远程和本地传输文件。归档模式 | 增量传输 | SSH 加密 | 带宽控制📢 无需 root 权限 | 本地/远程通用 | 保留文件属性# 基础格式(归档+压缩+进度显示)rsync -avzP 源路径 目标路径常用选项:选项作用-v显示详细传输过程-r递归复制目录(不保留元数据)-a归档模式(保留所有文件属性)-z传输时压缩数据-h人性化显示数字大小-P显示实时进度条🚀 核心优势对比表特性Rsync传统 SCP传输效率✅ 增量同步(仅传差异部分)❌ 全文件传输带宽控制✅ --bwlimit 限速❌ 不支持属性保留✅ 权限/时间戳/所有者❌ 部分丢失断点续传✅ -P 选项自动续传❌ 重新传输安全传输✅ SSH 隧道加密✅ SSH 加密📦 基础操作篇1. 本地文件同步要本地复制或同步文件,可以使用以下命令,该命令将从本地机器的一个位置同步单个文件到另一个位置。rsync -zvh Python-3.13.4.tgz /tmp/backups/# 将 Python-3.13.4.tgz 同步到 /tmp/backups2. 本地目录同步(保留属性)以下命令将从一台机器上的一个目录将所有文件传输或同步到同一台机器上的另一个目录。rsync -avzh music/ oneh@192.168.2.100:/home/oneh/# 递归同步整个目录(保留属性)3. 远程 → 本地目录同步rsync -azvh oneh@192.168.2.100:/home/oneh/ /tmp/music🌐 远程操作篇4. 本地 → 远程目录(SSH 加密)使用 rsync,可以借助 SSH进行数据传输。通过 SSH 协议,可以确保数据在加密的连接中传输,从而防止任何人在数据通过互联网传输过程中窃取数据。要通过 SSH 使用 rsync,您可以使用 -e 选项指定远程 shell 命令,通常为 ssh,如下所示。rsync -avzhe ssh music/ oneh@192.168.2.100:/home/oneh/backup_music5. 远程文件 → 本地(带进度条)远程到本地,使用 --progress 显示传输进度条.rsync -avzhe ssh --progress oneh@192.168.2.100:/home/oneh/backup_music /home/oneh/backup_music6. SSH 密钥免密同步(安全推荐)# 先配置密钥:ssh-keygen + ssh-copy-idrsync -avzhe ssh /source user@IP:/dest ⚙️ 高级技巧篇7. 智能文件过滤# 包含 .c 排除 .h:rsync -avz --include='*.c' --exclude='*.h' /home/oneh/Python-3.13.4/Python/ oneh@192.168.2.100:/home/oneh/Python8. 目标端清理源端已删除文件如果源位置不存在某个文件或目录,但目标位置已经存在该文件/目录,希望在同步过程中删除目标位置的该现有文件/目录。rsync -avz --delete /home/oneh/music/ oneh@192.168.2.100:/home/oneh/backup_music/9. 传输后自动删除源文件假设你有一个主网页服务器和一个数据备份服务器,你创建了每日备份并将其与备份服务器同步,但现在你不想在网页服务器上保留该备份的本地副本。rsync --remove-source-files -avzh data.log oneh@192.168.2.100:/home/oneh/backup/10. 空运行测试(安全防护)如果您是 rsync 的新手,且不确定自己的命令会产生什么具体效果,那么 rsync 可能会对目标文件夹中的内容造成混乱,而要撤销这些操作可能会非常繁琐。使用此选项不会对文件进行任何修改,并显示命令的输出结果。如果输出结果与您期望的完全一致,则可以从命令中移除‘--dry-run’选项,并在终端中运行。rsync --dry-run -avz hello.py oneh@192.168.2.100:/home/oneh/🛡️ 企业级场景方案11. 带宽限速(避免网络阻塞)使用--bwlimit选项从一台机器向另一台机器传输数据时,可以设置带宽限制。此选项可帮助我们限制I/O带宽。rsync --bwlimit=5000 -avzh Python-3.13.4.tgz oneh@192.168.2.100:/home/oneh/ 12. 故障恢复传输rsync -avzP --partial /中断文件 目标路径📊 参数速查表参数作用示例-a归档模式(全属性保留)rsync -a src/ dest/-z传输时压缩rsync -z data.log remote:--max-size限制文件大小--max-size='100M'-W禁用增量传输(全文件)rsync -W image.iso dest/--stats显示传输统计rsync -a --stats src/ dest/💎 结语与进阶建议灾难防护:重要操作前必加 --dry-run性能调优:大文件传输用 -W + --bwlimit 组合自动化:搭配 cron 实现定时备份深度学习:man rsync 查看 50+ 高级参数✨ 下一步实践:# 生成测试环境mkdir -p test/{src,dest} && touch test/src/file{1..100}.txt# 体验实时同步:watch -n 1 "rsync -avz test/src/ test/dest/ | grep 'sent'"推荐阅读:👉 1.在 Linux 系统上绝对不能执行的 10 条命令-很危险的👉 2.基本的Linux命令,【tail】 命令常用的实用示例,告别海量日志,精准抓取关键信息👉 3.章节2:基本的Linux命令,【echo】 命令常用的实用示例,Linux终端输出的瑞士军刀!
2025年07月24日
31 阅读
0 评论
0 点赞
2025-07-17
100个Docker容器操作命令实战大全!
容器化部署已成为现代运维的核心技能,掌握这些命令让你轻松驾驭从开发到生产的全流程。一、容器生命周期管理(18个)1. 运行容器:docker run -d --name web nginx:latest 后台启动Nginx容器2. 启动已停止容器:docker start web3. 停止运行中容器:docker stop web(发送SIGTERM信号)4. 强制停止容器:docker kill web(发送SIGKILL信号)5. 重启容器:docker restart web6. 暂停容器进程:docker pause web(冻结进程树)7. 恢复暂停容器:docker unpause web8. 删除停止的容器:docker rm web9. 强制删除运行中容器:docker rm -f web(生产环境慎用)10. 批量删除停止容器:docker container prune11. 创建容器不启动:docker create --name temp alpine sleep 360012. 容器重命名:docker rename old_name new_name13. 更新运行参数:docker update --memory 512m web 动态调整内存限制14. 设置重启策略:docker run --restart=always nginx 崩溃后自动重启15. 容器自愈检测:docker run --health-cmd="curl -f http://localhost || exit 1" --health-interval=30s nginx16. 查看健康状态:docker inspect --format='{{.State.Health.Status}}' web17. 资源限制(CPU):docker run --cpus=1.5 app 限制使用1.5核CPU18. 资源限制(内存):docker run -m 2g --memory-swap=3g app 内存+Swap限制二、容器操作与调试(15个)19. 进入交互终端:docker exec -it web /bin/bash20. 后台执行命令:docker exec -d web touch /tmp/test.log21. 查看实时日志:docker logs -f --tail 100 web(追踪最后100行)22. 查看进程列表:docker top web23. 容器详情查看:docker inspect web | jq .(配合jq解析JSON)24. 端口映射检查:docker port web25. 文件复制到容器:docker cp app.conf web:/etc/nginx/conf.d/26. 从容器复制文件:docker cp web:/var/log/nginx/error.log ./27. 查看资源统计:docker stats --no-stream(显示当前状态)28. 实时监控资源:docker stats web mysql(监控特定容器)29. 容器差异检查:docker diff web(查看文件系统变更)30. 容器提交为镜像:docker commit -c 'CMD ["nginx"]' web nginx:v2(慎用,推荐Dockerfile)31. 容器导出快照:docker export web > web.tar32. 挂载调试工具:docker run --cap-add SYS_PTRACE --security-opt seccomp=unconfined debug_tool33. 使用nsenter调试:nsenter --target $(docker inspect -f {{.State.Pid}} web) --mount --uts --ipc --net --pid三、镜像管理(12个)34. 拉取镜像:docker pull alpine:3.18(指定版本避免latest风险)35. 查看本地镜像:docker images --filter "dangling=false"(过滤悬空镜像)36. 删除镜像:docker rmi alpine:3.1737. 强制删除镜像:docker rmi -f redis(被容器使用时需加-f)38. 清理悬空镜像:docker image prune39. 导出镜像存档:docker save -o nginx.tar nginx:latest40. 导入镜像存档:docker load -i nginx.tar41. 查看镜像历史:docker history nginx42. 镜像标签管理:docker tag nginx:latest myreg.com/nginx:v143. 推送镜像到仓库:docker push myreg.com/nginx:v144. 构建镜像:docker build -t myapp:v1 --build-arg ENV=prod .45. 多阶段构建:Dockerfile中:COPY --from=builder /app/bin /usr/bin四、存储管理(10个)46. 创建匿名卷:docker run -v /data mysql(自动创建)47. 绑定主机目录:docker run -v /host/path:/container/path nginx48. 创建命名卷:docker volume create app_data49. 使用命名卷:docker run -v app_data:/var/lib/mysql mysql50. 查看卷详情:docker volume inspect app_data51. 清理未使用卷:docker volume prune52. 查看挂载点:docker inspect -f '{{ .Mounts }}' web53. 临时文件系统:docker run --tmpfs /tmp:size=100m app54. 只读挂载:docker run -v /conf:/etc/nginx:ro nginx(生产安全必备)55. 共享存储卷:docker run --volumes-from db_storage backup_tool五、网络管理(12个)56. 查看网络列表:docker network ls57. 创建自定义网络:docker network create --driver bridge my_net58. 指定容器网络:docker run --network=my_net web59. 容器别名访问:docker run --network=my_net --name web --network-alias website nginx60. 查看网络详情:docker network inspect my_net61. 连接运行中容器:docker network connect my_net existing_container62. 断开容器网络:docker network disconnect my_net container63. 端口随机映射:docker run -P nginx(自动绑定随机主机端口)64. 指定端口映射:docker run -p 8080:80 -p 443:443 nginx65. 主机模式网络:docker run --network=host nginx(共享主机网络栈)66. 容器间直连:docker run --link redis:db app(传统方式,推荐使用自定义网络)67. DNS配置覆盖:docker run --dns 8.8.8.8 --dns-search example.com alpine六、生产运维实践(15个)68. 日志驱动设置:docker run --log-driver=json-file --log-opt max-size=10m nginx69. 日志标签添加:docker run --log-opt tag="{{.Name}}/{{.ID}}" nginx70. 环境变量注入:docker run -e TZ=Asia/Shanghai -e APP_ENV=prod app71. 时区同步配置:docker run -v /etc/localtime:/etc/localtime:ro app72. 容器自启策略:docker run --restart=on-failure:5 app(失败时最多重启5次)73. 内核参数调整:docker run --sysctl net.core.somaxconn=1024 app74. 容器资源限制:docker run --cpus=".5" -m 500m --blkio-weight=500 app75. OOM优先级设置:docker run --oom-score-adj=500 app(值越高越易被kill)76. 容器用户隔离:docker run --user 1000:1000 app(避免root运行)77. 只读文件系统:docker run --read-only app(需配合tmpfs使用)78. 能力控制:docker run --cap-add NET_ADMIN --cap-drop SYS_ADMIN app79. 安全加固:docker run --security-opt no-new-privileges app(禁止提权)80. AppArmor配置:docker run --security-opt apparmor=my_profile app81. SELinux标签:docker run --security-opt label=type:container_t app82. 设备访问授权:docker run --device=/dev/snd:/dev/snd:rw audio_app七、集群与编排(10个)83. 初始化Swarm:docker swarm init --advertise-addr 192.168.1.10084. 加入Swarm集群:docker swarm join --token SWMTKN... 192.168.1.100:237785. 部署Stack服务:docker stack deploy -c docker-compose.yml myapp86. 查看服务列表:docker service ls87. 服务伸缩操作:docker service scale web=588. 滚动更新配置:docker service update --image nginx:1.23 web89. 回滚服务版本:docker service rollback web90. 查看服务日志:docker service logs -f web91. 节点状态检查:docker node ls92. 服务约束部署:docker service create --constraint 'node.role==worker' nginx八、系统维护与监控(8个)93. 查看Docker版本:docker version94. 系统全局信息:docker info95. 磁盘空间清理:docker system prune -af(慎用!清理所有未用资源)96. 事件实时监控:docker events --filter 'event=die'(捕获容器退出事件)97. 构建缓存清理:docker builder prune98. 检查容器配置:docker config ls(Swarm模式)99. 容器漏洞扫描:docker scan nginx:latest(需登录Docker Hub)100. 资源使用报告:docker system df -v(详细磁盘占用分析)生产环境五大黄金法则1. 镜像版本固化:禁止使用latest标签,必须明确版本号(如nginx:1.25.3)2. 资源硬性限制:所有容器必须设置--memory和--cpus限制3. 日志轮转机制:通过max-size和max-file防止日志撑爆磁盘4. 非root用户运行:使用--user指定非特权用户(UID>1000)5. 只读文件系统:配合tmpfs实现写入路径最小化重要提醒:永远不要在容器内存储重要数据!所有持久化数据必须通过:• 绑定挂载(Bind Mounts)• 命名卷(Named Volumes)• 分布式存储(NFS/Ceph等)掌握这100个命令只是起点,真正的容器高手深谙以下原则:✅ 容器即不可变基础设施(Immutable Infrastructure)✅ 日志输出到stdout/stderr而非文件✅ 单容器单进程模型(Sidecar模式除外)✅ 镜像构建遵循最小化原则(如Alpine基础镜像)记住: 最危险的Docker命令不是rm -f,而是缺乏生产级意识的随意操作。 以上,既然看到这里了,如果觉得不错,随手点个赞、在看、转发三连吧,如果想第一时间收到推送,也可以给我个星标⭐~谢谢你看我的文章,我们,下次再见。
2025年07月17日
6 阅读
0 评论
0 点赞
2025-07-17
金仓数据库安装
{collapse}{collapse-item label="docker compose配置" open}version: '3' services: kingbase: image: kingbase:v1 container_name: kingbase restart: unless-stopped ports: - "4321:54321" volumes: - /opt/1panel/docker/compose/kingbase/data:/home/kingbase/userdata/data - /opt/1panel/docker/compose/kingbase/license.dat:/home/kingbase/license.dat environment: - ENABLE_CI=yes - NEED_START=yes - DB_USER=system - DB_PASSWORD=123456 - DB_MODE=oracle user: "1000:1000" # 使用非root用户(UID 1000,GID 1000) tty: true stdin_open: true command: /bin/bash{/collapse-item}{collapse-item label="Linux用ISO镜像安装"}安装记录:创建用户和更改密码创建用户和用户组kingbase更改用户 kingbase 的密码[root@KylinV10 ~]# passwd kingbase新的密码:King@13579重新输入新的密码:King@13579passwd:所有的身份验证令牌已经成功更新。选择存储数据的文件夹请选择一个文件夹,该文件夹必须为空。Data folder (默认﹕ /opt/Kingbase/ES/V8/data):数据库端口请输入数据库服务监听端口,默认54321。请输入数据库管理员用户名。User (默认﹕ system):密码:King@13579恭喜!KingbaseES V8 已成功地安装到:/opt/Kingbase/ES/V8如果您需要将 KingbaseES V8 注册为系统服务,请运行/opt/Kingbase/ES/V8/install/script/root.sh如果想启动或停止数据库服务,进入${安装目录}/Server/bin目录执行如下命令:启动服务示例 sys_ctl -w start -D ${/opt/Kingbase/ES/V8/data} -l "${/opt/Kingbase/ES/V8/data}/sys_log/startup.log" 实例 /opt/Kingbase/ES/V8/Server/bin/sys_ctl -w start -D /opt/Kingbase/ES/V8/data -l "/opt/Kingbase/ES/V8/data/sys_log/startup.log"停止服务示例 sys_ctl stop -m fast -w -D ${Data文件目录} 实例1 /opt/Kingbase/ES/V8/Server/bin/sys_ctl stop -m fast -w -D /opt/Kingbase/ES/V8/data 实例2 /opt/Kingbase/ES/V8/Server/bin/sys_ctl stop -D /opt/Kingbase/ES/V8/data -m fast正常连接/opt/Kingbase/ES/V8/Server/bin/ksql -U system -d test{/collapse-item}{collapse-item label="SQL操作"}安装完成后cd到安装目录bin目录/opt/Kingbase/ES/V8/Server/bin./ksql -p 54321 -U system test创建用户-- 1. 创建用户 CREATE USER xj_zssj_sync WITH PASSWORD '11@zssj123'; -- 2. 授予超级用户权限 ALTER USER xj_zssj_sync WITH SUPERUSER; -- 3. 创建数据库并指定所有者 CREATE DATABASE xj_zssj_sync OWNER xj_zssj_sync;备份还原操作备份 /opt/Kingbase/ES/V8/Server/bin/sys_dump -U xj_zssj -d xj_zssj -Fc -f /data/vdb/Kingbase/data/backup/xj_zssj_08041207.dmp 还原(-v参数可以去掉) /opt/Kingbase/ES/V8/Server/bin/sys_restore -U xj_zssj_sync -d xj_zssj_sync -v /data/vdb/Kingbase/data/backup/xj_zssj_sync_08041507.dmp导出dump格式 sys_dump -Usystem -d库名 -Fc -f 文件名.dmp 恢复dump文件 sys_restore -Usystem -d库名 文件名 导出sql格式 sys_dump -Usystem -d库名 -f 文件名.sql 执行sql文件 ksql -Usystem -d库名 -f sql文件{/collapse-item}{/collapse}
2025年07月17日
8 阅读
0 评论
0 点赞
2025-07-10
如何减少 Docker 日志大小,有效节省磁盘空间
Docker 是一个强大的容器化平台,它允许开发者在一个独立的环境中运行应用程序。虽然 Docker 提供了很多便利,但在实际使用过程中,日志文件可能会迅速增长,占用大量的磁盘空间。本文将详细介绍如何减少 Docker 日志大小,从而有效节省磁盘空间。Docker 日志机制Docker 使用日志驱动程序来管理和存储容器日志。默认情况下,Docker 使用 json-file 日志驱动程序,它将所有容器的标准输出和标准错误日志记录到 JSON 文件中。这些日志文件会不断增长,尤其是在高负载或长时间运行的容器中。检查当前日志设置在优化 Docker 日志之前,首先需要了解当前的日志设置。可以使用以下命令来查看当前 Docker 守护进程的配置:docker info | grep "Logging Driver"这将显示当前使用的日志驱动程序。默认情况下,通常是 json-file。日志轮转(Log Rotation)日志轮转是一种有效的减少日志大小的方法。它通过限制日志文件的大小和数量来防止日志文件无限制地增长。可以通过以下步骤来配置 Docker 的日志轮转。修改 Docker 守护进程配置编辑 Docker 守护进程的配置文件(通常位于 /etc/docker/daemon.json),添加以下内容:{ "log-driver": "json-file", "log-opts": { "max-size": "10m", "max-file": "3" }}默认的是:在这个示例中,max-size 设置为 10MB,max-file 设置为 3,这意味着每个日志文件最大为 10MB,最多保留 3 个文件。重新启动 Docker配置文件修改后,需要重新启动 Docker 守护进程以使更改生效:sudo systemctl restart docker使用其他日志驱动程序除了 json-file,Docker 还支持多种日志驱动程序,如 syslog、journald、gelf 等。选择适合的日志驱动程序可以更有效地管理日志。Syslog 日志驱动程序syslog 是一个常用的日志系统,可以集中管理和存储日志。使用 syslog 作为日志驱动程序可以将日志发送到集中式的日志服务器。在 /etc/docker/daemon.json 中配置 syslog:{ "log-driver": "syslog", "log-opts": { "syslog-address": "tcp://localhost:514", "tag": "{{.Name}}" }}重启 Docker 以应用更改:sudo systemctl restart docker使用 Docker Compose 配置日志对于使用 Docker Compose 管理的应用,可以在 docker-compose.yml 文件中配置日志选项:version: '3.8'services: web: image: nginx logging: driver: "json-file" options: max-size: "10m" max-file: "3"这种方法可以为每个服务单独配置日志策略,提供更灵活的日志管理。清理旧日志即使配置了日志轮转,仍可能需要手动清理旧日志以释放磁盘空间。以下是一些常用的日志清理方法。使用 docker system prunedocker system prune 命令可以清理未使用的容器、网络、图像和构建缓存:docker system prune -f手动删除日志文件可以手动删除 Docker 日志文件来释放空间。Docker 日志文件通常位于 /var/lib/docker/containers/<container-id>/ 目录下。使用以下命令找到并删除日志文件:sudo rm /var/lib/docker/containers/*/*.log日志聚合和外部存储将日志发送到外部存储或日志聚合系统(如 ELK Stack、Splunk)可以减少本地磁盘空间的占用。使用 ELK StackELK Stack(Elasticsearch, Logstash, Kibana)是一个常用的日志聚合和分析工具。可以通过以下步骤将 Docker 日志发送到 ELK Stack:安装并配置 ELK Stack。使用 gelf 日志驱动程序将日志发送到 Logstash:{ "log-driver": "gelf", "log-opts": { "gelf-address": "udp://logstash-server:12201", "tag": "{{.Name}}" }}在 logstash.conf 中配置 Logstash 以接收并处理 Docker 日志:input { gelf { port => 12201 }}output { elasticsearch { hosts => ["localhost:9200"] index => "docker-logs-%{+YYYY.MM.dd}" }}通过这种方法,可以将 Docker 日志集中存储和分析,而不占用本地磁盘空间。实时日志监控实时监控日志可以帮助快速发现和解决问题,避免日志文件无限制增长。常用的监控工具包括 Prometheus 和 Grafana。使用 Prometheus 和 Grafana安装并配置 Prometheus 和 Grafana。使用 node-exporter 收集 Docker 主机的系统指标,包括磁盘使用情况。在 Grafana 中配置仪表板,监控 Docker 日志文件的大小和增长率。通过实时监控,可以及时采取措施,防止日志文件过大。
2025年07月10日
3 阅读
0 评论
0 点赞
2025-07-10
【Docker学习】100条常用命令整理,运维必备
一、服务管理命令systemctl start docker:启动 Docker 服务。在安装好 Docker 后,首次使用或服务停止后需要启动时使用该命令。systemctl stop docker:停止 Docker 服务。当需要对 Docker 进行维护、更新或临时停止使用时,可执行此命令。systemctl restart docker:重启 Docker 服务。常用于使新的配置生效,比如修改了 Docker 的配置文件后,需要重启服务。systemctl status docker:查看 Docker 服务状态。可以了解 Docker 服务是否正在运行,以及运行状态的详细信息,如启动时间、进程 ID 等。systemctl enable docker:设置 Docker 服务开机自启。确保每次系统启动时,Docker 服务都能自动运行,方便后续使用。systemctl disable docker:取消 Docker 服务开机自启。如果不想让 Docker 在开机时自动启动,可使用此命令。docker info:查看 Docker 的系统信息,包括镜像和容器的数量、存储驱动、运行时等详细信息。有助于了解当前 Docker 环境的整体情况。docker --help:查看 Docker 的帮助文档。当对某个 Docker 命令的用法不确定时,可通过此命令获取详细的帮助信息。docker version:查看 Docker 的版本信息,包括客户端和服务端的版本号。在排查一些与版本相关的问题时非常有用。二、镜像管理命令docker images:列出本地所有镜像。展示镜像的仓库名称、标签、镜像 ID、创建时间和大小等信息,方便管理和查看本地镜像资源。docker search [镜像名称]:在 Docker Hub 上搜索指定名称的镜像。可根据搜索结果选择合适的镜像进行拉取和使用,例如docker search nginx。docker pull [镜像名称[:标签]]:从 Docker Hub 或其他镜像仓库拉取指定镜像到本地。若不指定标签,默认拉取最新版本(latest),如docker pull ubuntu:20.04。docker rmi [镜像名称或ID]:删除本地指定的镜像。注意,若镜像正在被容器使用,则无法删除,需先停止并删除相关容器。可同时删除多个镜像,如docker rmi ubuntu:20.04 nginx:latest。docker build -t [目标镜像名称:标签] [Dockerfile所在路径]:根据指定路径下的 Dockerfile 构建镜像。-t参数用于指定目标镜像的名称和标签,构建过程会根据 Dockerfile 中的指令逐步创建镜像。docker tag [源镜像名称:标签] [目标镜像名称:标签]:为镜像添加标签。可用于给镜像打上新的版本号或别名,方便区分和管理不同版本的镜像,例如docker tag ubuntu:20.04 ubuntu:latest。docker push [镜像名称:标签]:将本地镜像推送到 Docker Hub 或其他远程镜像仓库。需先登录到对应的仓库,如docker push myusername/nginx:latest。docker history [镜像名称或ID]:查看镜像的构建历史。展示每一层镜像的创建信息,包括创建时间、执行的命令等,有助于了解镜像的构建过程和内容。docker inspect [镜像名称或ID]:查看镜像的详细信息,以 JSON 格式输出。包含镜像的配置、环境变量、挂载点等各种详细信息,对于排查镜像相关问题非常有帮助。docker save -o [保存文件名.tar] [镜像名称或ID]:将镜像保存为一个 tar 文件,便于在不同环境中传输和使用。例如docker save -o ubuntu_20.04.tar ubuntu:20.04。docker load -i [保存文件名.tar]:从 tar 文件中加载镜像到本地。与docker save命令相对应,用于在新环境中恢复镜像。docker import [容器归档文件路径] [目标镜像名称:标签]:从容器的归档文件创建镜像。可将容器的当前状态保存为一个新的镜像,常用于自定义镜像的制作。三、容器管理命令docker run [选项] [镜像名称[:标签]] [容器启动命令]:创建并启动一个容器。常见选项包括-d(后台运行)、-p(端口映射)、-v(卷挂载)等,例如docker run -d -p 80:80 nginx,表示在后台运行一个 nginx 容器,并将宿主机的 80 端口映射到容器的 80 端口。docker ps:列出当前正在运行的容器。显示容器的 ID、名称、使用的镜像、运行状态、端口映射等信息。docker ps -a:列出所有容器,包括已停止的容器。方便查看所有创建过的容器记录。docker start [容器名称或ID]:启动一个已停止的容器。例如docker start mynginx,可将名为 mynginx 的容器启动。docker stop [容器名称或ID]:停止一个正在运行的容器。通过向容器发送停止信号,让容器正常停止运行。docker restart [容器名称或ID]:重启一个容器。先停止容器,然后再启动它,常用于使容器内的新配置生效。docker rm [容器名称或ID]:删除一个已停止的容器。若容器正在运行,需先停止后才能删除,也可使用-f参数强制删除运行中的容器。docker kill [容器名称或ID]:强制终止一个正在运行的容器。通过发送 SIGKILL 信号立即停止容器,可能导致数据丢失,一般在容器无法正常停止时使用。docker exec -it [容器名称或ID] [要执行的命令]:在一个正在运行的容器内执行命令。例如docker exec -it mynginx bash,可进入 mynginx 容器的 bash 终端,进行交互式操作。docker attach [容器名称或ID]:连接到一个正在运行的容器的标准输入、输出和错误输出流。与docker exec不同,docker attach会直接进入容器的主进程,退出时可能会导致容器停止。docker diff [容器名称或ID]:查看容器内文件系统的变化。显示容器内新增、修改和删除的文件和目录,有助于了解容器运行过程中的文件操作情况。docker commit -m "[提交信息]" -a "[作者信息]" [容器名称或ID] [目标镜像名称:标签]:从一个运行中的容器创建一个新的镜像。-m参数用于添加提交信息,-a参数指定作者信息,例如docker commit -m "updated nginx config" -a "John Doe" mynginx mynewnginx:1.0。docker pause [容器名称或ID]:暂停容器内的所有进程。容器状态变为暂停,但资源仍被占用,可通过docker unpause恢复。docker unpause [容器名称或ID]:恢复暂停的容器内的所有进程,使容器继续正常运行。docker top [容器名称或ID]:查看容器内正在运行的进程信息,类似于在宿主机上使用top命令查看进程。docker stats [容器名称或ID]:实时查看容器的资源使用情况,包括 CPU、内存、网络、磁盘 I/O 等指标。docker cp [容器名称或ID]:[容器内文件路径] [宿主机目标路径]:从容器内复制文件或目录到宿主机。也可反向操作,将宿主机文件复制到容器内,例如docker cp mynginx:/etc/nginx/nginx.conf /tmp/。docker logs [容器名称或ID]:查看容器的日志输出。可用于排查容器内应用程序的运行问题,例如查看 Web 服务器的访问日志或应用程序的错误日志。docker logs -f [容器名称或ID]:实时跟踪容器的日志输出,类似于在 Linux 系统中使用tail -f命令查看日志文件,方便实时监控容器的运行状态。docker logs --tail=[行数] [容器名称或ID]:查看容器日志的最后指定行数,例如docker logs --tail=100 mynginx,可查看 mynginx 容器日志的最后 100 行。四、网络管理命令docker network ls:列出所有 Docker 网络。展示网络的名称、ID、驱动类型、子网等信息,方便管理和查看当前的网络配置。docker network create [网络名称]:创建一个新的 Docker 网络。默认创建的是桥接网络,也可通过指定--driver参数创建其他类型的网络,如docker network create --driver=overlay myoverlaynet。docker network inspect [网络名称或ID]:查看指定 Docker 网络的详细信息,以 JSON 格式输出。包含网络的配置、连接的容器、子网掩码、网关等详细信息,有助于排查网络相关问题。docker network rm [网络名称或ID]:删除指定的 Docker 网络。注意,若网络中还有容器连接,则无法删除,需先断开容器与网络的连接。docker network connect [网络名称或ID] [容器名称或ID]:将容器连接到指定的网络。使容器能够与该网络中的其他容器进行通信,例如docker network connect mynet mynginx。docker network disconnect [网络名称或ID] [容器名称或ID]:将容器从指定的网络中断开连接。容器将无法再与该网络中的其他容器通信,但仍可通过其他网络进行通信。docker run --network=[网络名称或ID] [镜像名称[:标签]]:在创建容器时指定容器使用的网络。例如docker run --network=mynet -d nginx,创建一个使用 mynet 网络的 nginx 容器。五、数据卷管理命令docker volume ls:列出所有 Docker 数据卷。展示数据卷的名称、驱动、挂载点等信息,方便管理和查看数据卷资源。docker volume create [数据卷名称]:创建一个新的 Docker 数据卷。数据卷用于在容器之间或容器与宿主机之间共享数据,可持久化保存数据。docker volume inspect [数据卷名称]:查看指定 Docker 数据卷的详细信息,以 JSON 格式输出。包含数据卷的创建时间、挂载路径、使用的驱动等详细信息。docker volume rm [数据卷名称]:删除指定的 Docker 数据卷。注意,若数据卷正在被容器使用,则无法删除,需先停止并删除相关容器。docker run -v [数据卷名称]:[容器内挂载路径] [镜像名称[:标签]]:在创建容器时挂载数据卷到容器内。例如docker run -v myvolume:/data -d mysql,将名为 myvolume 的数据卷挂载到 mysql 容器的 /data 目录。docker run -v [宿主机路径]:[容器内挂载路径]:在创建容器时将宿主机的目录挂载到容器内。实现容器与宿主机之间的数据共享,如docker run -v /hostdata:/containerdata -d ubuntu。docker run -v [宿主机路径]:[容器内挂载路径]:ro:在创建容器时将宿主机的目录以只读方式挂载到容器内。容器只能读取挂载目录中的数据,无法进行写入操作,例如docker run -v /hostdata:/containerdata:ro -d ubuntu。六、其他常用命令docker system df:查看 Docker 系统的磁盘使用情况,包括镜像、容器、数据卷占用的磁盘空间。有助于了解系统资源的使用情况,及时清理不必要的资源。docker system prune:清理 Docker 系统中未使用的资源,包括未使用的镜像、容器、网络和数据卷。释放磁盘空间,优化系统性能。docker builder prune:清理 Docker 构建缓存。在构建镜像过程中,会产生一些缓存文件,使用此命令可清理这些缓存,减少磁盘占用。docker swarm init:初始化一个 Docker Swarm 集群,将当前节点作为管理节点。用于搭建分布式容器编排环境,实现容器的集群化管理。docker swarm join --token [令牌] [管理节点地址]:将当前节点加入到指定的 Docker Swarm 集群中。需要从管理节点获取加入令牌,实现集群的扩展。docker stack deploy -c [docker-compose.yml文件路径] [堆栈名称]:使用 docker - compose 文件部署一个堆栈到 Docker Swarm 集群。方便在集群环境中部署和管理多个相关的容器服务。docker-compose up:在当前目录下根据 docker - compose.yml 文件启动并运行所有服务容器。常用于本地开发和测试环境中,一键启动多个相关的容器服务。docker-compose down:停止并删除由 docker - compose.yml 文件定义的所有服务容器、网络和数据卷。用于清理环境,停止相关服务的运行。docker-compose build:根据 docker - compose.yml 文件构建镜像。如果镜像已经存在,会根据文件中的定义更新镜像。docker-compose ps:列出由 docker - compose.yml 文件定义的所有服务容器的运行状态,方便查看当前启动的容器情况。docker-compose logs:查看由 docker - compose.yml 文件定义的所有服务容器的日志输出,方便排查多个容器服务的运行问题。docker-compose restart:重启由 docker - compose.yml 文件定义的所有服务容器,使新的配置生效。docker-compose stop:停止由 docker - compose.yml 文件定义的所有服务容器,但保留容器的状态和数据。docker-compose start:启动之前停止的由 docker - compose.yml 文件定义的所有服务容器。docker secret create [秘密名称] [文件路径]:在 Docker Swarm 集群中创建一个秘密,用于存储敏感信息,如密码、密钥等。通过文件路径指定要存储的秘密内容。docker config create [配置名称] [文件路径]:在 Docker Swarm 集群中创建一个配置,用于存储应用程序的配置文件。通过文件路径指定要存储的配置内容。docker service create --name [服务名称] --replicas [副本数量] [镜像名称[:标签]]:在 Docker Swarm 集群中创建一个服务,指定服务名称、副本数量和使用的镜像。例如docker service create --name mynginx --replicas 3 nginx,创建一个名为 mynginx 的服务,包含 3 个 nginx 容器副本。docker service update --replicas [新副本数量] [服务名称]:更新 Docker Swarm 集群中服务的副本数量。例如docker service update --replicas 5 mynginx,将 mynginx 服务的副本数量更新为 5 个。docker service rm [服务名称]:删除 Docker Swarm 集群中的指定服务,停止并删除服务的所有容器副本。docker service scale [服务名称]=[副本数量]:调整 Docker Swarm 集群中服务的副本数量,与docker service update --replicas命令功能类似。例如docker service scale mynginx = 4,将 mynginx 服务的副本数量调整为 4 个。往期推荐【K8s学习】常用命令 100 条,建议收藏!【Windows学习】整理100条命令大全,效率拉满【网络学习】display查看命令大全
2025年07月10日
4 阅读
0 评论
0 点赞
1
...
3
4
5
...
24