问题标签 [docker-container]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
docker - 如何处理 Docker 中的状态“Exit 0”
我已经构建了一个 Docker 映像,然后使用 Docker Compose 运行了一个容器。以下命令将为我完成这项工作:
我已经重新启动了 PC,现在我想启动我之前创建的上一个容器。所以我尝试了以下命令:
显然它可以工作,但它不符合以下命令的输出:
肯定有问题,我正在尝试找出问题所在。
- 如何找到命令失败的原因?
- 是否有任何地方可以看到日志文件或帮助我识别和修复错误的东西?
如果您想尝试一下,这里是存储库。
更新
如果我删除容器:docker rm <container-id>
并通过docker-compose up -d --build
再次运行它来重新创建它。
更新#1
我看不到这样奇怪的字符:
bash - 在 Docker 容器启动时启动 bash 脚本不起作用
在过去的几个小时里,我一直试图startup.sh
在 docker container start 上启动我的脚本,但由于某种原因它不起作用。
我的 Dockerfile 来创建图像:
我的启动脚本:
这里什么都没有发生,虽然我试图在脚本中创建一个文件,但也没有发生任何事情!
我试图直接从命令行执行脚本,但它不起作用我不知道为什么:
码头工人运行命令:
这里是我尝试手动执行脚本时得到的:
或者当我在脚本的两行之间有一个空行时,我会收到此错误:
有人可以解释发生了什么以及为什么它不起作用吗?
mysql - 如何从 Docker 容器内连接到在主机 pc 上运行的 MySQL 服务器?
我已使用以下方法将 mysql 套接字安装到容器中:
-v /var/run/mysqld/mysqld.sock:/tmp/mysql.sock
但我得到这个错误:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysql.sock' (111)
docker - 用主机上的文件替换挂载文件夹后 Docker 覆盖文件夹中的错误
我有一个 Docker 容器,其中从主机安装了一个文件夹(noureldin.local.crt 是一个文件夹):
然后我从主机中删除了那个文件夹,并创建了一个名称完全相同的文件,而不是相同路径下的文件夹(noureldin.local.crt现在是一个文件),然后重新启动了容器,但是现在容器不能开始是因为 docker 告诉这不是一个文件夹,并出现以下错误:
在这里我试图删除我在覆盖文件夹的错误中看到的那个路径,但我总是在新创建的路径中遇到同样的错误。(我知道我不应该手动删除任何东西)。
之后,我再次尝试恢复具有相同名称而不是文件的文件夹(就像第一步一样)。但现在容器没有启动并以错误126退出。
我尝试删除然后重新创建容器,但我总是收到该错误(这与我从主机安装的路径有关)。
有人可以帮我解决这个问题(我想保持路径相同)。
docker - 执行“docker ps --format”时出错。错误:提供但未定义的标志:--format
我已经使用以下命令安装了 docker:
出于测试目的,我使用分离模式运行 Ubuntu 映像
但是当我尝试执行docker ps命令时
我有一些错误。根据错误,标志--format未定义。以下是错误信息。
当我检查帮助页面时,我发现了这个
根据帮助页面,没有定义 --format 标志。但根据 https://docs.docker.com/engine/reference/commandline/ps/中的参考资料,我应该能够使用--format标志运行命令。
可能是什么原因 ?
补充资料
- 操作系统:Ubuntu 14.04
- 码头工人版本:码头工人版本1.6.2,构建 7c8fca2
-谢谢
docker - 如何将 VM (VirtualBox) 导出到 tgz 存档?
我正在尝试使用 docker import 在容器中获取 VM,但所需的格式是“image.tgz”,是否可以将 VM 映像从 VirtualBox 导出为“.tgz”格式?
docker - 如何查看 Docker 容器的命名空间范围以选择正确的 Samba 域成员 idmap 范围?
我在 Docker 容器中创建了 Samba 域成员文件共享服务器,但实际上我不确定我用于 samba 的命名空间范围是否是最佳的,因为在某些时候我总是遇到一些关于范围的错误,我一直在尝试直到它工作!
我不确定,但我认为问题是因为 Samba 在 Docker 容器内运行,这意味着我只有一个特定的命名空间范围可供使用。
有人可以告诉我如何查看用于 Docker 容器的命名空间吗?我试过这个,但它没有工作,因为我找不到uid_map
文件。
docker - docker从容器连接到主机隧道
我想从我的 docker 容器内部与使用主机中的隧道的 postgres db 连接。在主机中,我有一个指向数据库主机的隧道:
隧道设置为:
从主机我可以启动 psql 命令:
由于我使用的是网络模式BRIDGE [我不能使用HOST,因为 docker 没有正确地将容器端口公开给主机,请参见:https ://github.com/docker/compose/issues/3442 ] 我读到我必须使用容器ip:
在这种情况下是172.17.0.1
但是,当我进入容器时:
我尝试连接我有:
有什么我想念的吗?
python - 如何在 docker 中为 scrapinghub portia 编辑文件
我创建了一个管道来将爬取的项目存储在 JSON 文件中,并将管道添加到路径中/slybot/slybot/mypipeline.py
之后,我使用 docker 安装了 Portia 包。安装成功。然后我使用安装文档页面中给出的命令启动了 portia,
docker run -i -t --rm -v <PROJECT_FOLDER>/data:/app/slyd/data:rw -p 9001:9001 --name portia portia
我可以在浏览器中加载 portia。我创造了一只蜘蛛。当我尝试运行蜘蛛时,我在管道文件中遇到了错误。
现在我想编辑该文件并修复错误。
我试图将管道从容器复制到本地主机,并通过引用docker copy page再次将其复制到容器中。
但是当我再次运行命令
docker run -i -t --rm -v <PROJECT_FOLDER>/data:/app/slyd/data:rw -p 9001:9001 --name portia portia
并创建一个蜘蛛并尝试运行该蜘蛛时。而且似乎管道文件没有更新。
我发现每次运行 portia run 命令时,都会创建新容器,现在我认为在容器中编辑该管道文件对我不起作用。我对么?
如何在 docker 中单独编辑管道文件而不在 docker 中再次构建 portia?
docker - 为什么我的 Docker 容器中的非卷数据即使在重新启动容器后仍然存在?
在某些地方,当我阅读 Docker 容器时,我发现有些人说他们在重新启动容器时会丢失数据(保存在容器内,而不是卷数据的一部分)。
我尝试像这样创建一个简单的 Ubuntu 容器:docker run -it ubuntu /bin/bash
,并在容器内创建了一些文件,然后重新启动它,但我的数据仍然存在。为什么会发生这种情况?为什么我的数据还在?这是新版本的 Docker 中的新功能还是我对某些东西有误解?