我有一个项目,有一个dockerfile和一个docker-compose.yml用于部署它。但是如果我运行docker-compose up,命令会打印Building app并永久挂起。我没有看到任何正在执行的步骤。它也没有下载图像,因为没有网络流量,并且使用的图像该高速缓存中可用。我如何在我的机器上调试和修复这个问题?有没有我可以使用的docker(-compose)的详细选项?
docker-compose up
Building app
ybzsozfc1#
由于这是“docker-compose挂起”的热门文章,我将发布我的问题的解决方案,它可以节省我30分钟的搜索时间。如果docker-compose --version挂起,这可能是你的修复方法。
docker-compose --version
**当系统熵较低时,Docker-compose似乎无限期挂起。**您可以通过运行以下命令检查此问题:
cat /proc/sys/kernel/random/entropy_avail
如果输出小于1000,这几乎可以肯定是它挂起的原因。我在VPS上经历过这种情况,那里的可用熵小于10。对我来说,修复方法是安装haveged,它立即将我的可用熵增加到2500以上,并使docker compose正常工作。安装非常简单
haveged
apt install haveged
o4tp2gmn2#
尝试使用此选项运行它,看看是否有帮助:
docker-compose --verbose up
siv3szwd3#
我昨晚遇到了这个问题,我的问题是一个大的图像子目录,66GB。添加子目录到。dockerignore文件解决了这个问题
6psbrbz94#
我最近遇到了这个问题,这就是我解决它的方法。可能有多种原因。但在我的情况下,这是因为RAM和内存问题,这就是我解决它的方法
如果没有这样的问题,最好详细说明,这样可以在控制台上显示交互日志或者你可以看看集装箱的日志
docker logs --tail=200 bootcamp
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/
k97glaaz6#
如果你在docker-compose中有图像构建(不仅仅是拉取图像),这可能是你有太大的docker上下文的情况。只需添加.dockerignore并检查所有不必要的文件夹并排除它们。
.dockerignore
mzmfm0qo7#
我有同样的问题。(docker-compose)我找到了一个解决方案,删除以下命令:
restart: unless-stopped
从docker-compose.yml文件中下载。
7条答案
按热度按时间ybzsozfc1#
由于这是“docker-compose挂起”的热门文章,我将发布我的问题的解决方案,它可以节省我30分钟的搜索时间。如果
docker-compose --version
挂起,这可能是你的修复方法。**当系统熵较低时,Docker-compose似乎无限期挂起。**您可以通过运行以下命令检查此问题:
如果输出小于1000,这几乎可以肯定是它挂起的原因。我在VPS上经历过这种情况,那里的可用熵小于10。
对我来说,修复方法是安装
haveged
,它立即将我的可用熵增加到2500以上,并使docker compose正常工作。安装非常简单
o4tp2gmn2#
尝试使用此选项运行它,看看是否有帮助:
siv3szwd3#
我昨晚遇到了这个问题,我的问题是一个大的图像子目录,66GB。添加子目录到。dockerignore文件解决了这个问题
6psbrbz94#
我最近遇到了这个问题,这就是我解决它的方法。可能有多种原因。但在我的情况下,这是因为RAM和内存问题,这就是我解决它的方法
如果没有这样的问题,最好详细说明,这样可以在控制台上显示交互日志
或者你可以看看集装箱的日志
z8dt9xmd5#
如果你是在一个国家像伊朗可能的问题是制裁你可以修复它使用VPN或自定义反制裁DNS一样
或者您可以使用为跨越制裁限制而构建的非官方Docker注册表,如https://docker-registry.ir/
k97glaaz6#
如果你在docker-compose中有图像构建(不仅仅是拉取图像),这可能是你有太大的docker上下文的情况。
只需添加
.dockerignore
并检查所有不必要的文件夹并排除它们。mzmfm0qo7#
我有同样的问题。(docker-compose)我找到了一个解决方案,删除以下命令:
从docker-compose.yml文件中下载。