Docker运维常规技巧

42 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第9天

随着云原生快速发展,很多业务已经基于K8s运行,但是还是会有一些老的业务会运行在docker中,会遇到docker一些常规问题,今天就来研究一番。

1、查看内存占用过高的docker应用

#查看占用过高的应用

docker stats --动态实时显示

docker stats --no-stream --静态显示

#使用top命令查询占用过高的应用

top -c -b -o +%MEM | head -n 20 | tail -15

2、修改内存

  1. #修改compose file(版本小于v3)
    mem_limit: 10g
    #如果compose版本大于v3
    deploy:
    resources:
    limits:

    cpus: '0.5' --一般不设置,0.5代表单核50%的用量

    memory: 4G
    reservations:

    cpus: '0.2'

    memory: 200M
    #重启相关容器
    docker-compose up -d demo
  2. 还有一种就是直接在命令行添加相关内存参数

docker stop demo

docker update demo -m 2g --memory-swap -1

docker start demo

3、挂载目录

容器启动的时候,可以挂载一个宿主机目录,用参数-v指定

docker run -it -v /test:/soft centos 冒号前面是宿主机目录,后面是荣亲日目录

需要注意,容器目录不能是相对路径,就是绝对路径需要加下斜线开头。如果宿主机目录不存在,会自动生成。默认会挂载在/var/lib/docker/volumes/目录下

容器销毁后,目录是否还存在,两种情况,一种指定了宿主机目录,一种是没有指定,但这两种就算删除容器,挂载的宿主机目录和随机的目录都依旧存在,所以如果遇到docker磁盘目录很大的时候,需要删除这些不需要容器的挂目录,用来清除空间。

4、设置默认存储目录

可以直接vi /etc/docker/daemon.json

systemctl daemon-reload

systemctl restart docker

利用命令

docker info |grep -i root

看到已经切换了。

如果切换不成功,注意查看下是否关闭selinux,还需要在将以前的容器相关目录复制到新的根目录 cp -R /var/lib/docker/* /data/docker/,这样以前的docker就能正常切换路径,正常运行了。

还有那些呢,欢迎评论补充,祝学习顺利!