docker-compose up永远挂起,如何调试?

pn9klfpd  于 2022-12-29  发布在  Docker
关注(0)|答案(7)|浏览(159)

我有一个项目,有一个dockerfile和一个docker-compose.yml用于部署它。但是如果我运行docker-compose up,命令会打印Building app并永久挂起。我没有看到任何正在执行的步骤。它也没有下载图像,因为没有网络流量,并且使用的图像该高速缓存中可用。
我如何在我的机器上调试和修复这个问题?有没有我可以使用的docker(-compose)的详细选项?

ybzsozfc

ybzsozfc1#

由于这是“docker-compose挂起”的热门文章,我将发布我的问题的解决方案,它可以节省我30分钟的搜索时间。如果docker-compose --version挂起,这可能是你的修复方法。

**当系统熵较低时,Docker-compose似乎无限期挂起。**您可以通过运行以下命令检查此问题:

cat /proc/sys/kernel/random/entropy_avail

如果输出小于1000,这几乎可以肯定是它挂起的原因。我在VPS上经历过这种情况,那里的可用熵小于10。
对我来说,修复方法是安装haveged,它立即将我的可用熵增加到2500以上,并使docker compose正常工作。
安装非常简单

apt install haveged
o4tp2gmn

o4tp2gmn2#

尝试使用此选项运行它,看看是否有帮助:

docker-compose --verbose up
  • 注意:如果您还没有构建自己的容器,请运行带有选项--build的相同命令
siv3szwd

siv3szwd3#

我昨晚遇到了这个问题,我的问题是一个大的图像子目录,66GB。添加子目录到。dockerignore文件解决了这个问题

6psbrbz9

6psbrbz94#

我最近遇到了这个问题,这就是我解决它的方法。可能有多种原因。但在我的情况下,这是因为RAM和内存问题,这就是我解决它的方法

  • RAM从2 GB增加到4 GB
  • 将交换内存从1 GB增加到2 GB

如果没有这样的问题,最好详细说明,这样可以在控制台上显示交互日志
或者你可以看看集装箱的日志

docker logs --tail=200 bootcamp
z8dt9xmd

z8dt9xmd5#

如果你是在一个国家像伊朗可能的问题是制裁你可以修复它使用VPN或自定义反制裁DNS一样

178.22.122.100
185.51.200.2 
OR 
185.55.225.25
185.55.226.26

或者您可以使用为跨越制裁限制而构建的非官方Docker注册表,如https://docker-registry.ir/

k97glaaz

k97glaaz6#

如果你在docker-compose中有图像构建(不仅仅是拉取图像),这可能是你有太大的docker上下文的情况。
只需添加.dockerignore并检查所有不必要的文件夹并排除它们。

mzmfm0qo

mzmfm0qo7#

我有同样的问题。(docker-compose)我找到了一个解决方案,删除以下命令:

restart: unless-stopped

从docker-compose.yml文件中下载。

相关问题