zoukankan      html  css  js  c++  java
  • docker使用技巧小记

    1、在使用docker的时候有很多人习惯使用官方镜像、有的人喜欢自己制作镜像,有的时候都是使用默认的配置启动的服务,或者自己在制作镜像的时候直接将配置文件打包到镜像里面了。有的时候会碰到要修改配置文件的情况,而又不想麻烦去创建一次镜像,可以直接进入到docker  container里面去修改文件。但是这样会有种情况就是修改错了配置文件导致container启动不了了,而配置文件有没有映射出来,这个就比较捉鸡了。但是办法总比问题多,新版的docker使用overlay2做存储,旧版本用的是devicemapper。container的文件都是一层层存在的,都会存储到overlayer2里面。最终都是落地到物理机的磁盘上面的。了解到这些就好办了,直接去找到文件的位置,把修改错的配置修改正确,就可以正常启动了。首先先看一下docker的目录构成:

    我这里设置的存储路径是/data/docker、storage-driver是overlay2。这个设置参考我的其他博客https://www.cnblogs.com/cuishuai/p/9485939.html,这里不做介绍。我们要找的文件就是在overlay2这个目录里面,当然你需要借助搜索手段去寻找,因为这个目录下面都是hash值目录。

    比如我这里修改的elasticsearch.yml:

    最下面的文件就是最新修改的文件,直接修改最后一个就好了。修改完成再去重新启动container就好了。

    当然如果修改的配置是通用的,可以将修改后的container提交为一个镜像,以便以后使用,使用docker container commit命令

    docker container commit  -a "author" -m "update es config" elasticsearch  fastest/elasticsearch:6.5.1

    Usage: docker container commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]

    Options:
    -a, --author string Author (e.g., "John Hannibal Smith <hannibal@a-team.com>")
    -c, --change list Apply Dockerfile instruction to the created image
    -m, --message string Commit message
    -p, --pause Pause container during commit (default true)

  • 相关阅读:
    Shell变量之自定义变量、环境变量
    Shell变量命名规则
    获取文件编码格式
    基于Lucene的文件检索Demo
    数据库压力测试工具
    插入ts以及判断列是否存在(支持多数据库)
    (摘)Chart属性设置
    (摘)C#comboBox绑定数据
    (摘)ORACLE DBA的职责
    (摘)DataGuard物理standby管理
  • 原文地址:https://www.cnblogs.com/cuishuai/p/10008040.html
Copyright © 2011-2022 走看看