首页
Linux常用
docker常用
关于
Search
1
docker安装MDCX
180 阅读
2
UNRAID增加和缩小虚拟机虚拟磁盘大小
48 阅读
3
unraid添加iSCSI 发起程序
39 阅读
4
iStoreOS上使用WireGuard
19 阅读
5
docker安装WireGuard Easy
13 阅读
默认分类
docker
容器安装
Linux
数据库
群辉
软路由
unRAID
PVE
Nginx
wow
杂项
图床
飞牛
转载微信公众号文章
Docker学习
Linux学习
登录
Search
标签搜索
nginx
unraid
PVE
wow服务器
装机硬件
宏
v2ray
直通
电视盒子
相册
黑裙7.0.1
远程穿透
定时
ssh
emby
symlink
软链接
Linux
sftp
防火墙
奥黛丽·逐爱者
累计撰写
100
篇文章
累计收到
10
条评论
首页
栏目
默认分类
docker
容器安装
Linux
数据库
群辉
软路由
unRAID
PVE
Nginx
wow
杂项
图床
飞牛
转载微信公众号文章
Docker学习
Linux学习
页面
Linux常用
docker常用
关于
搜索到
20
篇与
转载微信公众号文章
的结果
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日
1 阅读
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日
2 阅读
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日
1 阅读
0 评论
0 点赞
2025-07-10
30个最重要的Linux配置文件路径及功能详解
Linux 以其强大的灵活性和可定制性著称,而这一特性很大程度上得益于其丰富的配置文件体系。这些文件如同系统的"控制面板",允许管理员精准调整各项功能——从基础环境变量设置到关键安全认证,从软件源管理到日志系统配置。熟悉并掌握这些配置文件都将显著提升系统管理能力。下面以表格的形式整理并列出这30个关键配置文件:文件功能说明/etc/fstab该文件用于控制在引导时和系统正常运行期间挂载文件系统的方式。它列出了所有可用的文件系统及其挂载点,包括选项和转储频率。/etc/passwd该文件包含有关系统上用户的信息,包括其用户名、用户ID、组ID、主目录和shell。系统上的所有用户都可以读取此文件,但请务必确保其安全,以防止对用户帐户进行未经授权的访问。/etc/shadow该文件包含系统上每个用户的加密密码和其他安全信息。与/etc/passwd不同,此文件只能由 root 用户读取,因此安全性要高得多。它用于存储上次密码更改、最短密码期限和最长密码期限等信息。/etc/group记录系统用户组信息(组名、GID及成员列表),用于管理文件和目录的访问权限。/etc/sudoers配置sudo命令权限,指定允许使用sudo的用户/组及可执行命令。需严格保护以防止提权攻击。/etc/ssh/sshd_configSSH服务端配置文件,设置监听端口、认证方式、主机密钥路径等,用于保障远程访问安全。/etc/resolv.conf配置DNS解析器,指定域名服务器地址、搜索域和选项,是网络通信的关键文件。/etc/network/interfaces定义网络接口配置(IP地址、子网掩码、网关等),支持DHCP和静态IP设置。/etc/hosts该文件用于将主机名映射到 IP 地址。它是一个简单的文本文件,可用于指定自定义主机名和 IP 地址,无需使用 DNS 服务器。此文件用于在 Linux 系统上执行本地名称解析。/etc/sysctl.conf该文件用于在运行时配置 Linux 内核参数。它包含一个键值对列表,可用于修改内核的行为,例如启用或禁用 IPv4 转发、调整打开的文件描述符的最大数量以及设置共享内存段的最大数量。/etc/services该文件列出了已知服务及其使用的端口号和协议。系统使用它来将服务名称映射到端口号和协议,使用户更容易配置网络服务。此文件用于管理 Linux 系统上的网络服务。/etc/aliases管理邮件别名,实现多地址收件或邮件转发功能。/etc/crontab系统级定时任务配置文件,由cron守护进程自动执行预设命令。/etc/rc.local该文件是 init 进程在引导时运行的脚本。它包含应在系统完成引导后执行的命令和脚本,例如启动服务或设置环境变量。此文件用于自定义 Linux 系统在引导期间的行为。/etc/default/locale该文件用于在 Linux 系统上配置系统区域设置。它包含有关默认区域设置的信息,例如语言、国家/地区和字符编码,这些信息应该用于系统范围的设置。/etc/environment定义全局环境变量,供应用程序和脚本调用。/etc/default/keyboard配置键盘布局(型号、变体、选项等),影响系统全局输入设置。/etc/security/limits.conf限制系统资源使用(如打开文件数、虚拟内存大小、进程数上限)。/etc/apt/sources.listAPT包管理器的软件源列表,指定软件仓库地址。/etc/apt/apt.conf配置APT包管理器选项(代理服务器、默认版本、升级策略等)。/etc/bashrc系统级bash shell配置文件,对所有用户生效。/etc/sysconfig/network设置主机名、网关等网络参数(部分Linux发行版专用)。/etc/modprobe.d/blacklist.conf禁用指定内核模块加载,避免冲突或冗余驱动。/etc/udev/rules.d/70-persistent-net.rules永久绑定网卡MAC地址与接口名(如eth0)。/etc/default/grub配置GRUB引导加载器(默认内核、超时时间、分辨率等)。/etc/X11/xorg.confX Window系统配置文件,定义显卡、显示器、键盘等硬件参数。/etc/ld.so.conf指定动态链接库的搜索路径。/etc/pam.d/system-auth管理系统认证机制(密码验证、智能卡等)。/etc/logrotate.conf配置日志轮转规则(周期、大小、压缩等)。/etc/rsyslog.conf定义rsyslog守护进程的日志存储路径、过滤规则和格式。Linux 配置文件在确保系统稳定、安全运行方面发挥着至关重要的作用。无论是管理环境变量、调整内核参数,还是配置 X Window 系统,这些文件都能让我们深度玩转 Linux,并使其完美适配应用场景的需求。后续对部分重要文件分节单独说明。附表:《30个最重要的Linux配置文件详解》
2025年07月10日
1 阅读
0 评论
0 点赞
2025-07-10
5.2K star!这款轻量级可视化路由追踪的神器,功能真的强!
* 戳上方蓝字“开源先锋”关注我推荐阅读:《7.1K star!一款优雅高效的文档管理系统,免费好用!》大家好,我是开源君!在这个互联网高速发展的时代,网络已经成为我们生活中不可或缺的一部分。但不知道有多少朋友知道,当在浏览网页或者下载文件时,数据包是如何穿越千山万水到达你的电脑的呢?可能很多程序猿老鸟也不一定能准确的说清楚吧。今天开源君要聊的这个超级酷的开源项目是 - NextTrace,如同我们在网络上的“路径侦探”,在网络这个大大的虚拟世界中,找到路径上的每一个节点。项目简介NextTrace 是一个开源的视觉路由追踪工具,用Golang开发,主要功能是进行网络路径追踪(traceroute),追求的是轻量级和高效。简单来说,就是帮我们快速找到数据从A点到B点的详细路线。它不仅支持经典的 ICMP 协议,还支持 TCP 和 UDP,还能将这些复杂的路由信息通过地图的形式展示出来,一目了然。想象一下,你坐在家里,就能看到数据包是如何在全球范围内穿梭的,是不是很酷?不管你是网络工程师,还是只是对网络运作好奇的极客,NextTrace 都能帮你揭开互联网的神秘面纱。目前在Github上面收获了5.2K star!性能特色可视化路由追踪地图:支持追踪数据结果生成的地图,更加直观地理解数据包会经过何处多协议支持:ICMP、TCP、UDP 都能搞定,像一个全能侦探。IP/ASN Whois支持:提供了 IP和ASN Whois 信息, 包含 ASN名称、IP地址所有人、运营商 等信息IPv4/IPv6 兼容:同时兼容 IPv4 和 IPv6 网络, 并支持 IPv6 单栈网络多语言:支持 英文和简体中文,未来会添加更多语言的支持快速高效:基于 Go 语言开发,运行速度那叫一个快。跨平台:不管你是 Windows、Mac 还是 Linux 用户,都能轻松上手。直观输出:结果不仅有文本格式,还有 JSON 格式,方便你进一步处理和分析。快速安装使用NextTrace 的安装很简单,作者提供了一键安装的脚本# Linux 一键安装脚本curl nxtrace.org/nt | bash# macOS brew 安装命令brew install nexttrace# Windows Scoop 安装命令scoop bucket add extras && scoop install extras/nexttrace当然也可以在项目release页面或者官网下载安装包。项目使用展示NextTrace的使用体验非常棒。当执行一个路由追踪命令后,它会生成一个MapTrace URL,我们可以通过浏览器访问这个URL,看到一个清晰的地图展示。这里开源君以win系统做展示。比如,我们想追踪到 baidu.com 的路径:nexttrace baidu.com这时候,你就会看到详细的路径信息,每个节点的 IP 地址、响应时间等数据一目了然。在最下方会有一个url,打开即可以看到各个IP的地图位置。如果想要用 TCP 或 UDP 来追踪,只需要加个参数:# 使用 TCPnexttrace -T baidu.com# 使用 UDPnexttrace -U baidu.com一些进阶功能,如 TTL 控制、并发数控制、模式切换等# 每一跳发送2个探测包nexttrace --queries 2 www.hkix.net# 无并发,每次只发送一个探测包nexttrace --parallel-requests 1 www.hkix.net# 从TTL为5开始发送探测包,直到TTL为10结束nexttrace --first 5 --max-hops 10 www.decix.net# 此外还提供了一个ENV,可以设置是否隐匿目的IPexport NEXTTRACE_ENABLEHIDDENDSTIP=1# 关闭IP反向解析功能nexttrace --no-rdns www.bbix.net# 设置载荷大小为1024字节nexttrace --psize 1024 example.com# 设置载荷大小以及DF标志进行TCP Tracenexttrace --psize 1024 --dont-fragment --tcp example.comnexttrace --route-path www.time.com.my# 禁止色彩输出nexttrace --nocolor 1.1.1.1# 或者使用环境变量export NO_COLOR=1官方还提供了一个wiki页面,罗列了一些经常可能遇到的问题。比如,在win系统中,如果路由仅显示最后一跳可以考虑用管理员权限执行以下命令:netsh advfirewall firewall add rule name="All ICMP v4" dir=in action=allow protocol=icmpv4:any,anynetsh advfirewall firewall add rule name="All ICMP v6" dir=in action=allow protocol=icmpv6:any,any更多NextTrace 使用方式,可以用-h参数进行查看。体验下来,NextTrace 是一个非常实用的网络工具,适合各种网络诊断需求,支持多协议、跨平台,让我们在各种环境下都能得心应手地使用。更多细节功能,感兴趣的可以到项目地址查看:项目地址:https://github.com/nxtrace/NTrace-core
2025年07月10日
1 阅读
0 评论
0 点赞
1
2
...
4