• 设备
    • 今日
    • 6

    Docker问题库

    1.vi修改后如何退出

    先按Esc,

    保存退出: shift +ZZ

    不保存退出: shift+: 再输入: q!

    保存退出: shift+: 再输入:wq


    2. docker时区如何修改

    方法一:sudo docker run ..... 时加入以下选项:
    -v /etc/localtime:/etc/localtime:ro \
    方法二::进入容器
    apk add tzdata (需容器能运行:apk命令)
    ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
    echo "Asia/Shanghai" > /etc/timezone
    方法三:
    在docker虚拟机上: mkdir -p /usr/share/zoneinfo/Asia/
    docker exec -it zabbix-web-nginx-mysql bash
    mkdir -p /usr/share/zoneinfo/Asia/
    cp (宿主机: /usr/share/zoneinfo/Asia/Shanghai) 到 (虚拟机上) /usr/share/zoneinfo/Asia/
    docker cp /usr/share/zoneinfo/Asia/Shanghai zabbix-web-nginx-mysql:/usr/share/zoneinfo/Asia/
    docker cp /usr/share/zoneinfo/Asia/Shanghai mysql:/etc/localtime
    方法四:
    在docker-compose.yml文件中,在相应的项目内加入 volumes:及添加以下内容
    volumes:
    - /etc/localtime:/etc/localtime:ro
    docker-compose中,添加以下内容,容器中的时间将于缩主机自动一致.
    详细的设置部署方法参考: http://www.jimmy2k.top/Article/?20190924190120.html)


    3.docker重启(即应用服务或镜像重启)
    docker ps -a
    docker restart 容器ID

    4.关闭所有镜像(所有镜像将要手动重新启动)
    systemctl stop docker

    现在以centos为例,在一个裸的centos上面安装vim编辑器,
    并且把这个修改保存下来,封装成一个能执行vim命令的centos镜像。

    1.启动镜像并做出修改
    docker run -it centos /bin/bash

    [root@afcaf46e8305 /]#
    注意afcaf46e8305是产生的容器ID,前面运行的时候不要-d后台运行了,不然无法进入容器交互执行模式:

    安装vim并且退出容器:
    yum install -y vim
    exit

    2.把容器打包成镜像
    docker commit afcaf46e8305 centos-vim

    3.查看镜像centos-vim
    docker images | grep centos-vim
    查看镜像的详细信息:
    docker inspect centos-vim:afcaf46e8305

    4.使用centos-vim这个镜像
    docker run -it centos-vim /bin/bash
    发现可以直接使用vim了,而不需要重新安装:
    vim --version

    5.删除容器
    docker ps -a
    docker stop 容器ID
    docker rm 容器ID
    ------

    6.删除镜像
    docker images
    docker rmi imagesID
    ------
    出现出错提示:unable to delete,请先操作上面第5点

    7. 查看zabbix server的日志输出
    docker logs -f zabbix-server-mysql

    8.OPTIONS说明
    -a :提交的镜像作者;
    -c :使用Dockerfile指令来创建镜像;
    -m :提交时的说明文字;
    -p :在commit时,将容器暂停。
    将容器a404c6c174a2 保存为新的镜像,并添加提交人信息和说明信息。
    docker commit -a "runoob.com" -m "my apache" a404c6c174a2 mymysql:v1

    9.根据容器的  ID  进行导出镜像(备份)
    docker ps  -a
    导出
    docker export d244931bfbf3 > /opt/gitlab-zh.tar
    scp /opt/gitlab-zh.tar root@14.215.127.73:/home/
    导入
    docker import - zabbix-server < /opt/gitlab-zh.tar

    10.Docker镜像保存save、加载load
    (1)查看要要保存的镜像的ID
    docker images
    (2)保存镜像
    docker save docker.io/zabbix/zabbix-server-mysql  -o  /opt/zabbix-server.tar
    docker save docker.io/zabbix/zabbix-web-nginx-mysql  -o  /opt/zabbix-web.tar


    (3)加载镜像
    可以在任何装 docker 的地方加载 刚保存的镜像了。
    docker load -i /opt/zabbix-server.tar
    docker load -i /opt/zabbix-web.tar

    //DB_SERVER_HOST : docker ps -> NAMES

    docker run --name zabbix-server-mysql -t \
    -e DB_SERVER_HOST="mysql-server" \
    -e MYSQL_DATABASE="zabbix" \
    -e MYSQL_USER="zabbix" \
    -e MYSQL_PASSWORD="zabbix" \
    -e MYSQL_ROOT_PASSWORD="zabbix" \
    --link mysql-server:mysql \
    -p 10051:10051 \
    -d zabbix/zabbix-server-mysql:latest

    docker run --name zabbix-web-nginx-mysql -t \
    -e DB_SERVER_HOST="mysql-server" \
    -e MYSQL_DATABASE="zabbix" \
    -e MYSQL_USER="zabbix" \
    -e MYSQL_PASSWORD="zabbix" \
    -e MYSQL_ROOT_PASSWORD="zabbix" \
    --link mysql-server:mysql \
    --link zabbix-server-mysql:zabbix-server \
    -p 8088:80 \
    -d zabbix/zabbix-web-nginx-mysql:latest

    问题一:
    中文是框框: 修改docker的字体
    c:\Windows\Fonts>copy 方正粗黑宋简体.ttf d:\fz.ttf
    ftp上传fz.ttf文件
    docker cp fz.ttf zabbix-web-nginx-mysql:/usr/share/zabbix/assets/fonts/fz.ttf
    docker exec -it 67c43ccfa32c bash (进入docker的web容器)
    vim /usr/share/zabbix/include/defines.inc.php
    define('ZBX_GRAPH_FONT_NAME', 'DejaVuSans');
    define('ZBX_FONT_NAME', 'DejaVuSans');

    define('ZBX_GRAPH_FONT_NAME', 'fz');
    define('ZBX_FONT_NAME', 'fz');

    问题二:
    点出右上角管理按钮时出错:
    docker exec -it 67c43ccfa32c bash (进入zabbix werb容器)
    vi /usr/share/zabbix/include/sounds.inc.php
    Uncaught Error: Call to undefined function mime_content_type()
    thrown in /usr/share/zabbix/include/sounds.inc.php on line 27
    将原函数修改为:
    function getSounds() {
    $fileList = [];
    $dir = scandir('./audio');
    foreach ($dir as $file) {
    if (!preg_match('/^([\w\d_]+)\.(wav|ogg)$/i', $file)) {
    continue;
    }
    list($filename, $type) = explode('.', $file);
    $fileList[$filename] = $file;
    }
    return $fileList;
    }
    来自:PC 广东省广州市
    上一篇: ubuntu问题集
    您可能还喜欢这些:

    亲,沙发正空着,还不快来抢?

    评论审核已开启 记住我的个人信息 回复后邮件通知我