小白工作常用docker命令

常用:

docker ps 查看运行容器

docker ps -a 查看所有容器

docker images 查看镜像

docker pull 拉取镜像(docker pull node:12.8.0, docker pull nginx:alpine)

docker rmi 镜像ID 删除指定镜像

docker rmi $(docker images | grep nginx-tcmvc-wx | awk '{print $3}')

docker image prune -a 清理所有没在使用的镜像

docker stop 容器ID 停止运行中容器

docker rm 容器ID 删除容器

docker rm $(docker ps -a | grep Exited | awk '{print $1}') 清理所有异常关闭的容器

docker volume ls docker数据卷

docker volume prune 删除数据卷

docker exec -it 容器ID sh 进入容器

docker logs -tf --tail 100 容器ID 查看日志

docker logs -tf --tail 100 容器ID > 文件路径 输出日志到宿主机

docker cp 容器ID:容器内部文件路径 宿主机本地路径 docker容器内部文件下载到宿主机本地

docker cp 宿主机本地路径 容器ID:容器内部路径 宿主机本地文件拷到docker内部

docker run -it --name doctor -p 9081:80 nginx 启动方式 创建容器

docker stop 容器ID 停止容器

docker start 容器ID 启动容器

docker system df 查看docker磁盘使用情况

docker system info 查看docker详细信息

docker system prune 删除未使用的数据

docker system events 从服务器获取实时事件

docker stats 动态显示内存使用情况

df -h 查看磁盘空间情况

docker system df 查看docker磁盘使用情况

docker system prune命令可以用于清理磁盘,删除关闭的容器、无用的数据卷和网络,以及dangling镜像(即无tag的镜像)。docker system prune -a命令清理得更加彻底,可以将没有容器使用Docker镜像都删掉。注意,这两个命令会把你暂时关闭的容器,以及暂时没有用到的Docker镜像都删掉了……所以使用之前一定要想清楚吶。

当清除容器,镜像,数据卷无用时,可以考虑是否是日志文件过大

Docker的所有相关文件,包括镜像、容器等都保存在/var/lib/docker/目录中:

日志在docker下面容器ID下面的。json.log文件中

ls -lh $(find /var/lib/docker/containers/ -name *-json.log)

如何清理日志

如果docker容器正在运行,那么使用rm -rf 方式删除日志后,通过df -h会发现磁盘空间并没有释放

原因:在Linux或者Unix系统中,通过rm或者文件管理器删除文件将会从文件系统的目录结构上解除链接(unlink).然而如果文件是被打开的(有一个进程正在使用),那么进程将仍然可以读取该文件,磁盘空间也一直被占用

正确姿势是cat /dev/null > *-json.log,当然你也可以通过rm删除后重启docker

logs=$(find /var/lib/docker/containers/ -name *-json.log)

for log in $logs

        do

                cat /dev/null > $log

        done

可以使用du命令查看文件使用情况

du -ah --max-depth=1

  • -a或-all 显示目录中个别文件的大小。
  • -b或-bytes 显示目录或文件大小时,以byte为单位。
  • -c或--total 除了显示个别目录或文件的大小外,同时也显示所有目录或文件的总和。
  • -D或--dereference-args 显示指定符号连接的源文件大小。
  • -h或--human-readable 以K,M,G为单位,提高信息的可读性。
  • -H或--si 与-h参数相同,但是K,M,G是以1000为换算单位。
  • -k或--kilobytes 以1024 bytes为单位。
  • -l或--count-links 重复计算硬件连接的文件。
  • -L<符号连接>或--dereference<符号连接> 显示选项中所指定符号连接的源文件大小。
  • -m或--megabytes 以1MB为单位。
  • -s或--summarize 仅显示总计。
  • -S或--separate-dirs 显示个别目录的大小时,并不含其子目录的大小。
  • -x或--one-file-xystem 以一开始处理时的文件系统为准,若遇上其它不同的文件系统目录则略过。
  • -X<文件>或--exclude-from=<文件> 在<文件>指定目录或文件。
  • --exclude=<目录或文件> 略过指定的目录或文件。
  • --max-depth=<目录层数> 超过指定层数的目录后,予以忽略。
  • --help 显示帮助。
  • --version 显示版本信息。

docker设置日志大小限制

3.1 设置一个容器服务的日志大小上限

通过配置容器docker-compose.yml的max-size选项来实现:

  1. nginx:
  2. image: nginx:1.12.1
  3. restart: always
  4. logging:
  5. driver: "json-file"
  6. options:
  7. max-size: "5g"

3.2 全局设置

新建/etc/docker/daemon.json,若有就不用新建了

  1. # vim /etc/docker/daemon.json
  2.  
  3. {
  4. "registry-mirrors": ["http://f613ce8f.m.daocloud.io"],
  5. "log-driver":"json-file",
  6. "log-opts": {"max-size":"500m", "max-file":"3"}
  7. }

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

max-file=3,意味着一个容器有三个日志,分别是id+.json、id+1.json、id+2.json

注:设置后只对新添加的容器有效。

重启docker守护进程

  1. systemctl daemon-reload
  2.  
  3. systemctl restart docker

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值