存档

文章标签 ‘docker’

清理 Docker 日志

2022年12月3日 没有评论

一、概述
Docker 在不重建容器的情况下,日志文件默认会一直追加,时间一长会逐渐占满服务器的硬盘的空间,内存消耗也会一直增加。

Docker 的日志文件存在 /var/lib/docker/containers 目录中

二、处理方案
2.1 使用脚本清理日志(治标)
clean_docker_logs.sh

1
2
3
4
5
6
7
8
9
10
11
12
#!/bin/bash
echo "==================== start clean docker containers logs =========================="
 
logs=$(find /var/lib/docker/containers/ -name *-json.log)
 
for log in $logs
  do
    echo "clean logs : $log"
    cat /dev/null > $log
  done
 
echo "==================== end clean docker containers logs   =========================="

2.2 设置Docker容器日志大小(治本)
修改docker-compose.yml

示例:

1
2
3
4
5
6
7
8
  gateway-services:
    container_name: gateway-services
    image: adoptopenjdk/openjdk8
    restart: always
    logging:
      driver: "json-file"
      options:
        max-size: "50m"

max-size=50m,意味着一个容器日志大小上限是50M

重启docker

docker-compose –compatibility up -d

分类: Linux, 解决方案 标签: ,

定时备份docker内的mysql数据库并传到远程ftp服务器附脚本

2019年7月2日 没有评论

自从有了docker,也可以在此容器中使用mysql也很方便。不过备份数据库也是个麻烦事。不像原来那样备份。
以下的脚本功能是自动备份并传到远程ftp服务器,保留7天时间的文件。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#!/bin/bash
data_dir="/root/dbbackup"
cd /root/dbbackup/
#localhost_mysql_1为docker所在的容器名,可以自行用docker ps进行查看自己mysql所在容器名
docker exec localhost_mysql_1 mysqldump -uroot -ppassword dbname > "$data_dir/dbname_`date +%Y%m%d`.sql"
tar zcvf $data_dir/dbname_`date +%Y%m%d`.tar.gz $data_dir/dbname_`date +%Y%m%d`.sql
#删除超过七天的备份文件
find $data_dir -mtime +7 -name 'dbname_[1-9].sql' -exec rm -rf {} \;
find $data_dir -mtime +7 -name 'dbname_[1-9].tar.gz' -exec rm -rf {} \;
#以下为自动登陆ftp并传文件
ftp -n -i 123.123.123.123 <<EOF
user ftpname ftppassword
binary
lcd /www/wwwroot/ftp
prompt
mput dbname_`date +%Y%m%d`.tar.gz
close
bye !
EOF

docker的简单状态监控

2019年6月8日 没有评论
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
docker stats
 
//可以使用占位符,显示想要看的信息:
 
docker stats --format "table {{.Container}}\t{{.CPUPerc}}\t{{.MemUsage}}\t{{.NetIO}}\t{{.Name}}"
 
CONTAINER           CPU %               MEM USAGE / LIMIT     NET I/O             NAME
62be266217e3        0.00%               1.793MiB / 15.39GiB   2.34GB / 1.95GB     vps12.com_nginx_1
21f986581173        0.00%               5.543MiB / 15.39GiB   16.9kB / 0B         vps12.com_php54_1
f4a2f0111178        0.00%               6.48MiB / 15.39GiB    16.9kB / 0B         vps12.com_php56_1
d984db8a9615        0.00%               19.55MiB / 15.39GiB   2.31GB / 2.66GB     vps12.com_php72_1
dcd9e311a1f0        0.20%               443.4MiB / 15.39GiB   1.77GB / 2.68GB     vps12.com_mysql_1
21c1f6fccf9c        0.15%               34.99MiB / 15.39GiB   7.49GB / 11.9GB     vps12.com_redis_1

各个占位符的含义:
.Container – 显示容器ID;
.Name – 显示容器名称;
.ID – 显示容器ID;
.CPUPerc – 显示CPU百分比;
.MemUsage – 显示内存使用情况;
.NetIO – 显示网络I / O;
.BlockIO – 显示块I / O;
.MemPerc – 显示内存百分比;
.PID – 显示进程ID的数量;

分类: Linux, 软件使用 标签: ,