专栏首页测试工程师成长之道Docker容器无法启动,里面的配置文件如何修改

Docker容器无法启动,里面的配置文件如何修改

背景:

当修改一个容器, 如mysql里的配置文件/etc/mysql/my.cnf , 修改完成后重启mysql 容器, 使用docker ps -a 查看容器,显示容器EXIT(1), 没有正常启动.

通过docker logs mysql , 日志报错提示刚才修改的配置文件有误.因为修改了docker容器中的配置信息,由于配置文件写错,或者配置文件格式错误等原因,导致容器无法再次启动.

这时候通过命令: docker exec -it mysql /bin/bash 已经无法进入容器了, 问题是容器无法启动, 但容器配置文件又在容器里面, 我们该怎么办呢 ?

方法一:

把docker容器中的配置文件复制到主机中,然后在主机中修改,修改完成后再复制到docker容器中 1. 复制docker容器的文件到主机中

docker cp [容器id]:docker容器中配置文件路径  主机路径
docker cp mysql:/etc/mysql/my.cnf /home/my.cnf

2. 修改配置文件中出错的部分

3. 配置文件到docker容器中

docker cp 主机文件路径 容器id:docker容器中配置文件路径
docker cp /home/my.cnf mysql:/etc/mysql/my.cnf

4. 重启容器

方法二:

运行命令 docker inspect [CONTAINER ID] ,可以找到如下的内容

看到MergedDir:

cd到 MergedDir , 你会惊奇的发现,他和我们容器里的目录结构是一样的.

这样我们就可以在前者中,也就是在容器已经 "exit" 的情况下,修改容器中的配置文件, 修改完成后重启容器.

以上两种方法, 我比较喜欢第一种, 主要知道是哪个配置文件即可复制到主机中,自由修改.

总结:

测试是一门技术, 更是一门艺术. 也许你今天拥有的技术, 明天就会被淘汰. 同时需要我们开拓思维和眼界, 积极拥抱变化, 学习新知识, 新方法,新技能, 计算机领域讲究的是实践, 学习更要讲究方式方法. 学习和动手一定要结合, 光看不练,犹如看武功秘籍, 是永远成不了武功大侠的.

本文分享自微信公众号 - 测试工程师成长之道(louiezhou001),作者:louiezhou

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-05-22

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 测试必会 | Docker 核心命令技能

    attach; build; commit; cp; diff; export; images; exec;

    louiezhou001
  • FineUICore基础版部署到docker实战

    FineUI用了好多年,最近出了FineUICore版本,一直没时间是试一下docker,前几天买了一个腾讯云服务器,1核2g,装了centos7.6,开始的时...

    louiezhou001
  • Linux命令:ps

    Linux为代表的系统是Case sensitive大小写敏感, 这点需要尤为关注, 不同与 windows是Non Case sensitive大小写不敏感.

    louiezhou001
  • docker 单机配置redis主从集群 集群 前置准备

    该文是docker redis主从配置 正式部署的前言。如下会简要列出目录,需要了解的前置知识,以防配置时出错。 如果你还不够了解,就阅读正文的相应章节。

    平凡的学生族
  • python flask web基本结构 登录模块 常用

    flask-login werkzeug itsdangerous flask-mail flask-bootstrap flask-wtf

    用户5760343
  • Django之模板系统

      当模版引擎遇到一个变量,它将计算这个变量,然后用结果替换掉它本身。 变量的命名包括任何字母数字以及下划线 ("_")的组合。 变量名称中不能有空格或标点符号...

    py3study
  • Oracle运算符收录(易忘记,但是又很重要的运算符)

    Create Table Test6( id varchar2(30), name varchar2(30), age...

    郑小超.
  • Docker 是什么,怎么装,怎么用

    一、揭开 Docker 的神秘面纱 Docker 是在Linux容器中运行的应用的开源工具,是一种轻量级的“虚拟机”诞生于2013年,短短几年时间,已经成为了开...

    小手冰凉
  • Docker 基础介绍与微服务应用

    Docker是一个开源的容器引擎,它有助于更快地交付应用。 Docker可将应用程序和基础设施层隔离,并且能将基础设施当作程序一样进行管理。使用 Docker可...

    zoro
  • 吴军最新演讲 : 历史总在重演,科技是唯一可叠加式进步的动力

    上周, 在北京举办的《全球科技通史》新书发布会上,吴军博士为读者们带来了《科技的力量和叠加效应》的主题演讲。他从工业革命给人类带来的收入、寿命和思维方式的转变开...

    大数据文摘

扫码关注云+社区

领取腾讯云代金券