首页
Linux常用
docker常用
关于
Search
1
docker安装MDCX
257 阅读
2
麒麟KylinV10离线下载安装包及安装
199 阅读
3
iStoreOS上使用WireGuard
165 阅读
4
麒麟v10系统openssh升级OpenSSH_10.0p2-OpenSSL 3.4.2
62 阅读
5
UNRAID增加和缩小虚拟机虚拟磁盘大小
54 阅读
默认分类
docker
容器安装
Linux
数据库
群辉
软路由
unRAID
PVE
Nginx
Tomcat
wow
杂项
图床
飞牛
转载微信公众号文章
Docker学习
Linux学习
登录
Search
标签搜索
nginx
数据库
unraid
PVE
麒麟
dockerfile
同步
wow服务器
装机硬件
宏
v2ray
直通
电视盒子
相册
黑裙7.0.1
远程穿透
定时
ssh
emby
symlink
奥黛丽·逐爱者
累计撰写
128
篇文章
累计收到
21
条评论
首页
栏目
默认分类
docker
容器安装
Linux
数据库
群辉
软路由
unRAID
PVE
Nginx
Tomcat
wow
杂项
图床
飞牛
转载微信公众号文章
Docker学习
Linux学习
页面
Linux常用
docker常用
关于
搜索到
8
篇与
Docker学习
的结果
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日
6 阅读
0 评论
0 点赞
2025-07-06
Docker容器的配置和管理
https://mp.weixin.qq.com/s/F-yv_vvCO_qMlt_e_iuYlA1、安装Docker1.安装依赖包yum install -y yum-utils device-mapper-persistent-data lvm22.配置docker yum源yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo3.安装dockeryum install -y docker-ce4.启动dockersystemctl daemon-reloadsystemctl enable docker --nowsystemctl restart docker图1 docker安装引擎mkdir /etc/docker -psudo tee /etc/docker/daemon.json <<-'EOF'{ "registry-mirrors": [ "https://docker.credclouds.com", "https://k8s.credclouds.com", "https://quay.credclouds.com", "https://gcr.credclouds.com", "https://k8s-gcr.credclouds.com", "https://ghcr.credclouds.com", "https://do.nark.eu.org", "https://docker.m.daocloud.io", "https://docker.nju.edu.cn", "https://docker.mirrors.sjtug.sjtu.edu.cn", "https://docker.1panel.live", "https://docker.rainbond.cc" ], "data-root": "/etc/docker"}EOFsystemctl daemon-reloadsystemctl restart docker图2 配置镜像加速器图3 优化效果验证2、安装Portainer容器可视化管理mkdir -p /usr/local/docker/portainerdocker run -it -d -p 9000:9000 --name portainer --restart always -v /var/run/docker.sock:/var/run/docker.sock -v /usr/local/docker/portainer:/data portainer/portainer图4 安装portainer访问地址:http://10.0.0.100:9000图5 portainer可视化界面图6 创建容器 图7 生命周期管理3、利用Dockerfile新建一个容器新镜像mkdir custom_centos && cd custom_centos# 基础镜像FROM centos:7 # 设置学号变量ARG STUDENT_ID=2024031390 # 1. 更换为阿里云YUM源(解决网络问题)RUN rm -f /etc/yum.repos.d/*.repo && \ curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo && \ curl -o /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo && \ sed -i 's|^#baseurl|baseurl|g' /etc/yum.repos.d/CentOS-Base.repo && \ sed -i 's|^mirrorlist|#mirrorlist|g' /etc/yum.repos.d/CentOS-Base.repo && \ sed -i 's|//[^/]*/|//mirrors.aliyun.com/|g' /etc/yum.repos.d/CentOS-Base.repo # 2. 安装基础工具(分步执行+错误处理)RUN yum makecache fast && \ yum install -y vim && \ yum install -y openssh-server && \ yum install -y net-tools bind-utils iproute lsof telnet traceroute nc tcpdump wget curl rsync # 3. 配置SSHRUN ssh-keygen -A && \ echo "root:${STUDENT_ID}" | chpasswd && \ sed -i 's/#PermitRootLogin yes/PermitRootLogin yes/' /etc/ssh/sshd_config && \ sed -i 's/UsePAM yes/UsePAM no/' /etc/ssh/sshd_config # 4. 清理缓存减小镜像大小RUN yum clean all && rm -rf /var/cache/yum # 设置容器入口CMD ["/usr/sbin/sshd", "-D"] # 暴露SSH端口EXPOSE 22docker build -t 2024031390:v1 --build-arg STUDENT_ID=2024031390 .图8 新建新镜像# 启动测试容器docker run -d -p 2222:22 --name test_ssh 2024031390:v1# 测试SSH登录 (密码:2024031390)ssh root@localhost -p 2222# 测试文件传输 (宿主机→容器)echo "hello test" > test.txtdocker cp /root/test.txt test_ssh:/root/# 测试文件传输 (容器→宿主机)docker exec test_ssh touch /root/a.txtdocker cp test_ssh:/root/a.txt ./图9 ssh登陆容器图10 容器和宿主机之间互传文件在node2-2024031390部署harborcurl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-composechmod +x /usr/local/bin/docker-compose wget https://github.com/goharbor/harbor/releases/download/v2.5.0/harbor-offline-installer-v2.5.0.tgztar xvf harbor-offline-installer-v2.5.0.tgzcd harbor # 修改配置文件cp harbor.yml.tmpl harbor.ymlsed -i 's/hostname: reg.mydomain.com/hostname: node2-2024031390/' harbor.ymlsed -i 's/port: 80/port: 8080/' harbor.yml./install.sh图11 harbor搭建 sudo tee /etc/docker/daemon.json <<-'EOF'{ "registry-mirrors": [ "https://docker.credclouds.com", "https://k8s.credclouds.com", "https://quay.credclouds.com", "https://gcr.credclouds.com", "https://k8s-gcr.credclouds.com", "https://ghcr.credclouds.com", "https://do.nark.eu.org", "https://docker.m.daocloud.io", "https://docker.nju.edu.cn", "https://docker.mirrors.sjtug.sjtu.edu.cn", "https://docker.1panel.live", "https://docker.rainbond.cc" ], "data-root": "/etc/docker", "insecure-registries": ["10.0.0.120:8080"]}EOFsystemctl restart dockerdocker login 10.0.0.120:8080 -u admin -p Harbor12345docker tag 2024031390:v1 10.0.0.120:8080/library/2024031390:v1docker push 10.0.0.120:8080/library/2024031390:v1图12 将镜像推送到Harbor仓库图13 harbor查看镜像4、在node1上新建一个容器,通过与宿主机的端口1000.1001,1002映射分别访问“首页是班级+姓名”的个性化网站、“小鸟飞飞”html5游戏网站和“Nginx默认首页”网站。mkdir -p /home/2024031390/nginx/{sites,conf}mkdir /home/2024031390/nginx/sites/personalcat > /home/2024031390/nginx/sites/personal/index.html <<EOF<!DOCTYPE html><html><head> <title>my site</title></head><body> <h1>I am 2024031390 , welcome to cloud computing class</h1></body></html>EOFmkdir /home/2024031390/nginx/sites/gamecd /home/2024031390/nginx/sites/gameunzip xiaoniaofeifei.zipcat > /home/2024031390/nginx/conf/default.conf <<EOF# 默认网站 (1002端口)server { listen 1002; server_name localhost; location / { root /usr/share/nginx/html; index index.html index.htm; }} # 个人网站 (1000端口)server { listen 1000; server_name localhost; location / { root /usr/share/nginx/personal; index index.html index.htm; }} # 游戏网站 (1001端口)server { listen 1001; server_name localhost; location / { root /usr/share/nginx/game; index index.html index.htm; }}EOFdocker run -d \ --name nginx-multisite \ -p 1000:1000 \ -p 1001:1001 \ -p 1002:1002 \ -v /home/2024031390/nginx/conf/default.conf:/etc/nginx/conf.d/default.conf \ -v /home/2024031390/nginx/sites/personal:/usr/share/nginx/personal \ -v /home/2024031390/nginx/sites/game:/usr/share/nginx/game \ nginx:latest图14 多端口多网站访问实例启动在物理机上打开浏览器测试验证:图15 nginx默认首页图16 个人网站 图17 小鸟飞飞的小游戏5、通过docker-compose编排工具构建并运行一个综合应用程序,至少含有2个关联容器。mkdir wordpresscd wordpressvi docker-compose.ymlversion: '3.8' services: # WordPress 前端服务 wordpress: image: wordpress:latest container_name: wp-app restart: always ports: - "8080:8081" environment: WORDPRESS_DB_HOST: db WORDPRESS_DB_USER: wordpress WORDPRESS_DB_PASSWORD: Admin@123 WORDPRESS_DB_NAME: wordpress volumes: - wordpress_data:/var/www/html depends_on: - db networks: - app-network # MySQL 数据库服务 db: image: mysql:8.0 container_name: wp-db restart: always environment: MYSQL_DATABASE: wordpress MYSQL_USER: wordpress MYSQL_PASSWORD: Admin@123 MYSQL_ROOT_PASSWORD: Admin@123 volumes: - db_data:/var/lib/mysql networks: - app-network # 定义存储卷volumes: wordpress_data: db_data: # 定义网络networks: app-network: driver: bridgedocker-compose up -ddocker-compose ps图18 容器启动访问应用程序:http://10.0.0.100:8080图19 wordpress站点
2025年07月06日
7 阅读
0 评论
0 点赞
2025-07-06
Docker使用教程和镜像加速
字数 853,阅读大约需 5 分钟安装Docker官方安装脚本:curl -fsSL https://get.docker.com | sh国内一键安装脚本:bash <(curl -sSL https://emohe.cn/docker.sh)手动离线安装Docker下载Docker:• 官方文件下载地址:https://download.docker.com/linux/static/stable/x86_64/• 清华大学下载地址 :https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/static/stable/x86_64/解压文件(替换版本号):tar xzvf docker-26.1.3.tgz sudo mv docker/* /usr/local/bin/创建Docker服务文件:sudo vim /etc/systemd/system/docker.service添加以下内容:[Unit]Description=Docker Application Container EngineAfter=network-online.target firewalld.serviceWants=network-online.target[Service]Type=notifyExecStart=/usr/local/bin/dockerdExecReload=/bin/kill -s HUP $MAINPIDRestart=alwaysRestartSec=2StartLimitBurst=3StartLimitInterval=60sLimitNOFILE=infinityLimitNPROC=infinityLimitCORE=infinityDelegate=yesKillMode=process[Install]WantedBy=multi-user.target启动并启用Docker服务:sudo chmod +x /usr/local/bin/dockerdsudo systemctl daemon-reloadsudo systemctl start dockersudo systemctl enable docker查看版本:docker -v手动离线安装Docker-compose国内环境手动安装Docker-compose:点这里手动下载文件 上传到服务器的/usr/local/bin目录重命名为docker-compose:sudo cp docker-compose-linux-x86_64 /usr/local/bin/docker-compose增加执行权限:chmod +x /usr/local/bin/docker-compose验证安装:docker-compose --version注意:由于是以二进制文件安装的docker-compose,运行命令需带-,例如:docker-compose up -dDocker Hub 镜像加速国内拉取镜像有时会遇到困难,对于学习或者开发者来说很难受,此时可以配置镜像加速。配置加速地址Ubuntu 16.04+、Debian 8+、CentOS 7+:创建或修改/etc/docker/daemon.json:sudo mkdir -p /etc/dockersudo tee /etc/docker/daemon.json <<EOF{ "registry-mirrors": [ "https://docker.xuanyuan.me", "https://docker.xuanyuan.dev" ]}EOF重启服务:sudo systemctl daemon-reloadsudo systemctl restart docker提示:若不方便重启,可在拉取镜像时指定加速地址,示例:docker pull docker.xuanyuan.dev/library/mysql:5.7说明:library代表官方镜像,用户镜像需替换为对应用户名。Docker Desktop 配置对于Windows系统的Docker Desktop用户,点击右上角设置,找到Docker Engine并修改配置,示例:{ "builder": { "gc": { "defaultKeepStorage": "20GB", "enabled": true } }, "experimental": false, "registry-mirrors": [ "https://docker.xuanyuan.me", "https://docker.xuanyuan.dev" ]}点击右下角Apply & restart保存并重启。检查加速是否生效查看docker系统信息:docker info若结果中显示配置的加速地址(如Registry Mirrors下包含https://docker.xuanyuan.me和https://docker.xuanyuan.dev),则配置成功。Docker最新稳定加速源列表提供者镜像加速地址说明加速类型轩辕镜像(专业版)https://docker.xuanyuan.dev付费&稳定&可选国内cdnDocker Hub轩辕镜像(免费版)https://docker.xuanyuan.me免费&无限制Docker Hub华为云https://***.mirror.swr.myhuaweicloud.com需登录分配Docker Hub腾讯云https://mirror.ccs.tencentyun.com仅限腾讯云机器Docker Hub南京大学https://ghcr.nju.edu.cnghcr加速ghcr南京大学https://k8s.nju.edu.cnk8s加速k8sDocker常用命令功能命令说明编译镜像docker build -t 镜像名 .先docker login登录Docker Hub推送镜像docker push 用户名/镜像名需先标记镜像:docker tag 53321f173e 用户名/镜像名查看容器docker ps-a查看包括已停止的容器容器资源占用docker stats查看所有容器资源占用进入容器内部docker exec -it 容器名 sh结尾也可使用/bash创建容器网络docker network create my-networkmy-network为网络名称停止容器docker stop 容器名或ID-启动容器docker start 容器名或ID-删除镜像docker rmi -f 镜像名或ID-清除资源docker system prune清除所有未使用资源(容器、网络、镜像、缓存)
2025年07月06日
7 阅读
0 评论
0 点赞
1
2