docker如何进入启动容器查看内部目录结构

 更新时间:2023年09月19日 15:48:36   作者:Quincy379  
这篇文章主要介绍了docker如何进入启动容器查看内部目录结构问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

docker进入启动容器查看内部目录结构

[root@localhost docker]# docker container ls -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                      PORTS               NAMES
806c175229ce        original:1.0        "/tomcat/bin/catal..."   20 hours ago        Up 5 seconds                8080/tcp            origin-debug
f04275ad9896        newtomcat:1.0       "/root/run.sh"           26 hours ago        Exited (137) 21 hours ago                       newtomcat_3
[root@localhost docker]# docker exec -it 806c /bin/bash

docker exec -it containerID /bin/bash

[root@localhost docker]# docker exec -it 806c /bin/bash

然后:ls

解决docker容器因报错无法启动的问题,检查、修复容器错误并重启

问题复现

使用:

sudo docker ps -a

查看当前的docker容器:

我们想启动name为【docker-mongo】的这个容器,因此要执行

sudo docker start docker-mongo

但是执行后仍旧没有重启,大概率是重启的时候报错了,查看日志:

sudo docker logs -f docker-mongo

可以看到其中有这样的日志:

{"t":{"$date":"2022-12-29T00:35:32.551+00:00"},"s":"E",  "c":"NETWORK",  "id":23024,   "ctx":"initandlisten",
"msg":"Failed to unlink socket file",
"attr":
	{"path":"/tmp/mongodb-27017.sock",
	"error":"Operation not permitted"
	}
}

查到的解决方法是删除 /tmp/mongodb-27017.sock 文件即可。但是问题是我们无法启动docker,也无法进入到容器内部,

所以就有两种解决方案:

  • 在不启动容器的情况下,进入到容器的目录中,然后对文件做操作
  • 在启动容器且不启动应用的情况下,把容器“夯住”,进入容器内部调试

这里我们使用第一种解决方案

解决方法

首先查看docker的这个容器在硬盘上的目录结构

sudo docker inspect docker-mongo

可以找到一段配置项:

"MergedDir": "/var/lib/docker/overlay2/457e851851b8ef6e1b56ebd89aaefab3133e8e1013adc59a98af72e6e5b93a51/merged",
"UpperDir": "/var/lib/docker/overlay2/457e851851b8ef6e1b56ebd89aaefab3133e8e1013adc59a98af72e6e5b93a51/diff",
"WorkDir": "/var/lib/docker/overlay2/457e851851b8ef6e1b56ebd89aaefab3133e8e1013adc59a98af72e6e5b93a51/work"

这便是容器与本地的地址映射(注意这个目录大概率不会与ID类似,即不会包含“32f8a297fb99”这个字段,因此需要手动查看目录与容器ID的对应关系),所以我们进入这个目录:

cd /var/lib/docker/overlay2/457e851851b8ef6e1b56ebd89aaefab3133e8e1013adc59a98af72e6e5b93a51

然后就可以找到与容器内文件相似的目录结构了,比如我想删除碍事的 /tmp/mongodb-27017.sock 文件,可以使用:

su # 变为管理员权限
cd /var/lib/docker/overlay2/457e851851b8ef6e1b56ebd89aaefab3133e8e1013adc59a98af72e6e5b93a51/diff
rm mongodb-27017.sock
exit # 退出root用户

这里根据自己的情况对文件进行操作,一般是配置错误导致的docker重启失败

然后就可以重启了:

sudo docker start docker-mongo
sudo docker ps

重启成功!

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • docker exec使用-it操作图文详解

    docker exec使用-it操作图文详解

    这篇文章主要介绍了docker exec使用-it操作的相关资料,主要是使用 docker exec -it CONTAINER_ID bash命令进入正在运行的Docker容器的终端,并保持终端的输入形式,需要的朋友可以参考下
    2025-03-03
  • docker容器通信参数使用及link参数介绍

    docker容器通信参数使用及link参数介绍

    这篇文章主要介绍了docker容器通信参数使用及link参数介绍,link的原理就是在/etc/hosts里面添加了一个alias的名称,本文通过案例分析给大家详细讲解,需要的朋友可以参考下
    2022-09-09
  • 详解Docker中的nacos集群部署方式

    详解Docker中的nacos集群部署方式

    在 Docker 中使用 Nacos,你可以通过拉取官方提供的 Docker 镜像并运行容器的方式来快速部署,这篇文章主要介绍了Docker中的nacos集群部署方式,感兴趣的朋友一起看看吧
    2024-01-01
  • Docker+DockerCompose封装web应用的方法步骤

    Docker+DockerCompose封装web应用的方法步骤

    这篇文章会介绍如何将后端、前端和网关通通使用 Docker 容器进行运行,并最终使用 DockerCompose 进行容器编排,感兴趣的可以了解一下
    2021-08-08
  • Docker 安装及配置镜像加速的实现

    Docker 安装及配置镜像加速的实现

    这篇文章主要介绍了Docker 安装及配置镜像加速的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-01-01
  • 如何解决1130 - Host ‘172.17.0.1‘ is not allowed to connect to this MySQL server的问题

    如何解决1130 - Host ‘172.17.0.1‘ is not allowed to conne

    这篇文章主要介绍了如何解决1130 - Host ‘172.17.0.1‘ is not allowed to connect to this MySQL server的问题,本文给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧
    2024-08-08
  • 不重启Docker容器就能修改时间的全方案总结

    不重启Docker容器就能修改时间的全方案总结

    在使用Docker的过程中,很多开发者会遇到需要修改容器时间的场景,本文会梳理Docker容器时间的底层逻辑,以及不重启容器修改时间的所有可行方案,大家可以根据需要进行选择
    2025-12-12
  • Docker 命令教程(附中文解释)

    Docker 命令教程(附中文解释)

    这篇文章主要介绍了Docker 命令教程的相关资料,在学习Docker的过程中,特地把所以命令实验了一番并整理,希望大家尽快掌握此部分的知识,有需要的小伙伴可以参考下
    2016-10-10
  • Docker如何安全地进入到容器内部

    Docker如何安全地进入到容器内部

    本文主要介绍了Docker如何安全地进入到容器内部,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-06-06
  • Docker连接mongodb实现过程及代码案例

    Docker连接mongodb实现过程及代码案例

    这篇文章主要介绍了Docker连接mongodb实现过程及代码案例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-09-09

最新评论