zoukankan      html  css  js  c++  java
  • 日常问题

    目录

    1、安装service命令

    2、没有docker0桥接网络

    3、docker报错docker: Error response from daemon: Unknown runtime specified nvidia.

    4、系统时间怎么修改

    5、docker logs 命令的使用

    6、Linux : Bridge support not available: brctl not found

    7、docker容器删不掉是dend状态      报错:Error response from daemon: driver "devicemapper" failed to remove root file..

    grep docker /proc/*/mountinfo | grep 833aab965845e55c3d7c080d340b7631f2f48a940414504df19249e772cf7a09 | awk -F':' '{print $1}' | awk -F'/' '{print $3}' 可以通过这个查看那个进程占用着服务

    cd /proc/进程号/下

    ps -ef |grep 进程号

    kill -9 进程号杀死之后 就可以正常删除相应的容器了

    参考:https://stackoverflow.com/questions/45709068/docker-driver-devicemapper-failed-to-remove-root-filesystem-after-process-in

    https://www.cnblogs.com/shuai7boy/p/12540104.html

    1、报错:-bash: service: command not found

    怎么安装servise命令

    yum install initscripts -y 

    2、没有 docker0 的桥接网络

    Docker 启动报错: Error starting daemon: Error initializing network controller: list bridge addresses failed: no available network

    参考:http://blog.joylau.cn/2019/04/08/Docker-Start-Error/

    没有 docker0 的桥接网络

    手动添加一个即可

    ip link add name docker0 type bridge
    ip addr add dev docker0 172.17.0.1/16

    3、docker报错docker: Error response from daemon: Unknown runtime specified nvidia.

    原来是nvidia-docker 没有注册:docker: Error response from daemon: Unknown runtime specified nvidiawhile running nvidia docke 接着寻找如何注册: docker-engine-setup

    Systemd drop-in file

    sudo mkdir -p /etc/systemd/system/docker.service.d
    sudo tee /etc/systemd/system/docker.service.d/override.conf <<EOF
    [Service]
    ExecStart=
    ExecStart=/usr/bin/dockerd --host=fd:// --add-runtime=nvidia=/usr/bin/nvidia-container-runtime
    EOF
    sudo systemctl daemon-reload
    sudo systemctl restart docker

    Daemon configuration file

    sudo tee /etc/docker/daemon.json <<EOF
    {
    "runtimes": {
    "nvidia": {
    "path": "/usr/bin/nvidia-container-runtime",
    "runtimeArgs": []
    }
    }
    }
    EOF
    sudo pkill -SIGHUP dockerd

    再去开启镜像,done。

    参考地址:https://blog.csdn.net/weixin_32820767/article/details/80538510

    4、系统时间怎么修改

    一、查看和修改Linux的时区

    1. 查看当前时区
    命令 : "date -R"

    2. 修改设置Linux服务器时区
    方法 A
    命令 : "tzselect"

    方法 B 仅限于RedHat Linux 和 CentOS
    命令 : "timeconfig"

    方法 C 适用于Debian
    命令 : "dpkg-reconfigure tzdata"

    3. 复制相应的时区文件,替换系统时区文件;或者创建链接文件
    cp /usr/share/zoneinfo/$主时区/$次时区 /etc/localtime

    例如:在设置中国时区使用亚洲/上海(+8)

    cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

    二、查看和修改Linux的时间

    1. 查看时间和日期
    命令 : "date"

    2.设置时间和日期
    例如:将系统日期设定成2020年4月15日的命令

    命令 : "date -s 15/04/2020"

    将系统时间设定成下午5点55分55秒的命令

    命令 : "date -s 17:55:55"

    3. 将当前时间和日期写入BIOS,避免重启后失效
    命令 : "hwclock -w"

    注:

    date
    不加参数可以直接看到当前日期时间

    cal
    不加参数可以直接看到本月月历

    5、docker logs 查看docker容器日志

    $ docker logs [OPTIONS] CONTAINER

      Options:

            --details        显示更多的信息

        -f, --follow         跟踪实时日志

            --since string   显示自某个timestamp之后的日志,或相对时间,如42m(即42分钟)

            --tail string    从日志末尾显示多少行日志, 默认是all

        -t, --timestamps     显示时间戳

            --until string   显示自某个timestamp之前的日志,或相对时间,如42m(即42分钟)

     例子:

    查看指定时间后的日志,只显示最后100行:

    docker logs -f -t --since="2020-04-16" --tail=100 CONTAINER_ID

    查看最近30分钟后的日志:

    docker logs --since 30m CONTAINER_ID

    查看某时间之后的日志:

    docker logs -t --since="2020-04-16T13:23:27" CONTAINER_ID

    查看某时间段的日志:

    docker logs -t --since="2020-04-15T13:23:37" --until "2020-04-16T12:22:37" CONTAINER_ID

    查看详细的日志

    docker logs -t CONTAINER_ID

    查看多少行的日志

    docker logs --tail 100 CONTAINER_ID

    6、Linux : Bridge support not available: brctl not found

     yum install bridge-utils

     Error starting daemon: error initializing graphdriver: driver not supported

    错误原因:error initializing graphdriver: driver not supported
    解决办法:在 /etc/docker 目录下创建daemon.json文件,并且加入以下配置

    touch daemon.json
    vi daemon.json
    {
      "storage-driver": "overlay2",
      "storage-opts": [
        "overlay2.override_kernel_check=true"
      ]
    }
    重启 docker resatrt docker


     docker: Error response from daemon: mkdir /data/lib/docker/overlay2/a03981083675069541f6accd19269a5c853484170c8b30ee3a20ffa07b4239ef-init/merged/dev/shm: invalid argument.

    https://www.wencst.com/archives/632

    借鉴这个文档中的方法

    其他解决方法

    以上解决方法是针对docker1.12版本的,因为以前在安装docker 1.12版本时,默认是用的devicemapper的存储引擎,所以迁移过来后直接就可以用了。

    但对于docker 17.05-ce,我怀疑在安装这个docker版本时,默认使用的是overlay的存储引擎,所以才会出现上面的问题。

    方案一:可以在/usr/lib/systemd/system/docker.service中增加如下参数

    方案二:可以在/etc/docker/文件夹下修改daemon.json文件(如果没有则新增,docker会默认读取这个文件的)

    上述两个方案,都是需要重启docker服务的。注意在生产环境中尽量不要使用overlay的存储引擎,如果能用Ubuntu操作系统作为docker宿主机最好,如果必须使用centos系统,则替换为devicemapper存储引擎。

    原因

    这类问题一般是 CentOS/RHEL 红帽系的问题,CentOS 这类红帽系统中,由于不像 Ubuntu 那样有成熟的 Union FS实现(如aufs),所以只能使用 devicemapper,而默认使用的是lvm-loop,也就是用一个稀疏文件来当成一个块设备,给devicemapper用,作为Docker镜像容器文件系统。这是非常不推荐使用的,性能很差不说,不稳定,还有很多 bug,如果没办法换 Ubuntu/Debian 系统,那么最起码应该建立块设备(分区、卷)给 devicemapper 用。

    参考官网文档:https://docs.docker.com/engine/userguide/storagedriver/device-mapper-driver/#configure-direct-lvm-mode-for-production

    严格来说 CentOS/RHEL 7 中实际上有一个 Union FS 实现,虽然 CentOS/RHEL 7 的内核是 3.10,不过红帽从 Linux 3.18 backport 回来了 overlay fs 的驱动。但是,红帽自己都在官方的发布声明中说能不要用就不用。

    https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/7.2_Release_Notes/technology-preview-file_systems.html

  • 相关阅读:
    CF1539 VP 记录
    CF1529 VP 记录
    CF875C National Property 题解
    CF1545 比赛记录
    CF 1550 比赛记录
    CF1539E Game with Cards 题解
    CF1202F You Are Given Some Letters... 题解
    vmware Linux虚拟机挂载共享文件夹
    利用SOLR搭建企业搜索平台 之九(solr的查询语法)
    利用SOLR搭建企业搜索平台 之四(MultiCore)
  • 原文地址:https://www.cnblogs.com/J-yup/p/11976215.html
Copyright © 2011-2022 走看看