docker RabbitMQ 搭建集群模式,磁盘空间不足,容器迁移目录

docker 镜像默认存放的目录是/var/lib/docker
通过查看容器的log 发现:容器的磁盘满了,无法启动

docker logs --tail=100 containID
=INFO REPORT==== 19-Nov-2018::03:55:30 ===
Error description:
   {could_not_start,rabbit,
       {error,
           {{shutdown,
                {failed_to_start_child,rabbit_memory_monitor,
                    {badarg,
                        [{lists,member,[disk,{error,bad_module}],[]},
                         {rabbit_memory_monitor,init,1,
                             [{file,"src/rabbit_memory_monitor.erl"},
                              {line,111}]},
                         {gen_server2,init_it,6,
                             [{file,"src/gen_server2.erl"},{line,552}]},
                         {proc_lib,init_p_do_apply,3,
                             [{file,"proc_lib.erl"},{line,247}]}]}}},
            {child,undefined,rabbit_memory_monitor_sup,
                {rabbit_restartable_sup,start_link,
                    [rabbit_memory_monitor_sup,
                     {rabbit_memory_monitor,start_link,[]},
                     false]},
                transient,infinity,supervisor,
                [rabbit_restartable_sup]}}}}

Log files (may contain more information):
   tty
   tty

{"init terminating in do_boot",{could_not_start,rabbit,{error,{{shutdown,{failed_to_start_child,rabbit_memory_monitor,{badarg,[{lists,member,[disk,{error,bad_module}],[]},{rabbit_memory_monitor,init,1,[{file,"src/rabbit_memory_monitor.erl"},{line,111}]},{gen_server2,init_it,6,[{file,"src/gen_server2.erl"},{line,552}]},{proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,247}]}]}}},{child,undefined,rabbit_memory_monitor_sup,{rabbit_restartable_sup,start_link,[rabbit_memory_monitor_sup,{rabbit_memory_monitor,start_link,[]},false]},transient,infinity,supervisor,[rabbit_restartable_sup]}}}}}
init terminating in do_boot ()

查看目录使用状况:

df -h

结果:

[test@k4843v docker]$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1        50G   48G   16M 100% /
devtmpfs        7.6G     0  7.6G   0% /dev
tmpfs           7.6G  4.0K  7.6G   1% /dev/shm
tmpfs           7.6G  761M  6.9G  10% /run
tmpfs           7.6G     0  7.6G   0% /sys/fs/cgroup
/dev/sdb1       394G  344M  374G   1% /data
tmpfs           1.6G     0  1.6G   0% /run/user/0
tmpfs           1.6G     0  1.6G   0% /run/user/23239
tmpfs           1.6G     0  1.6G   0% /run/user/18922

可以看到空间已经满了,所以需要将容器迁移到空间更大的目录下就解决了。
迁移目录的步骤如下:

  1. 停止docker服务。
    systemctl stop docker 或者 service docker stop

  2. 创建新的docker目录,执行命令df -h,找一个大的磁盘,/data 目录有500G的空间。
    mkdir -p /data/docker

  3. 迁移/var/lib/docker目录下面的文件到 /data/docker下面
    cp -R /var/lib/docker/* /data/docker

  4. 修改docker配置,在文件末添加 --graph=/data/docker

    ExecStart=/usr/bin/dockerd-current \
          --add-runtime docker-runc=/usr/libexec/docker/docker-runc-current \
          --default-runtime=docker-runc \
          --exec-opt native.cgroupdriver=systemd \
          --userland-proxy-path=/usr/libexec/docker/docker-proxy-current \
          --seccomp-profile=/etc/docker/seccomp.json \
          --graph=/data/docker    \
          $OPTIONS \
          $DOCKER_STORAGE_OPTIONS \
          $DOCKER_NETWORK_OPTIONS \
          $ADD_REGISTRY \
          $BLOCK_REGISTRY \
          $INSECURE_REGISTRY \
          $REGISTRIES
    
  5. 重载配置,重启docker
    systemctl daemon-reload
    systemctl restart docker

  6. 出现如下错误

    [root@template-centos7 /data]#docker start mysql33
    Error response from daemon: Unknown runtime specified docker-runc
    Error: failed to start containers: mysql33
    

    解决过程
    在查阅资料后,得知因为「当您从不兼容的版本升级docker并且升级后无法启动docker容器时会出现这种情况」,解决办法如 下:

    [root@template-centos7 /root]#grep -rl ‘docker-runc’ /var/lib/docker/containers/ | xargs sed -i ‘s/docker-runc/runc/g’
    [root@template-centos7 /root]#systemctl stop docker
    [root@template-centos7 /root]#systemctl start docker
    改完之后重启dokcer,容器就可以启动了。

  7. 出现如下错误

[root@etcd1 k8s]# docker run -it registry.helloworld.com/test/atsd:latest bash
WARNING: IPv4 forwarding is disabled. Networking will not work.
/usr/bin/docker-current: Error response from daemon: shim error: docker-runc not installed on system.

解决方法如下:

cd /usr/libexec/docker/
sudo ln -s docker-runc-current docker-runc 

参考:
https://blog.csdn.net/qq_37674858/article/details/79976751

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值