问题标签 [docker-for-mac]
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 - 如何将当前目录挂载为只读但仍允许在容器内进行更改?
我有一种情况:
- 我想将目录 ~/tmp/mycode 挂载到 /mycode 只读
- 我希望能够编辑目录中的文件,所以我不能只运行
-v /my/local/path/tmp/mycode:/mycode
- 我希望它不会在主机文件系统上保留更改,所以我无法以读/写方式挂载它
- ~/tmp/mycode 相当大
基本上我希望能够编辑已安装卷中的文件,但不保留这些更改。
我当前的工作流程是使用 dockerfile 创建一个虚拟容器:
然后执行该容器。
但是,随着存储库的增长,执行此步骤所需的时间越来越长,因为我能想到的唯一方法是制作 ~/tmp/mycode 的完整副本,以便能够操作容器中的文件。
我还考虑过挂载目录并将其复制到容器中并提交该容器,但这有同样的问题。
有没有一种方法可以运行 docker 容器来允许文件编辑而无需将它们保存在主机上而无需复制整个目录?
我正在使用最新的 docker for mac,目前版本 17.03.1-ce-mac5 (16048)。
docker - 如何获取正在运行的 docker 容器的 IP 地址
我正在为 Mac 使用 Docker。我在 Docker 容器中运行基于 nodejs 的微服务。我想通过浏览器测试节点微服务。如何获取正在运行的 docker 容器的 IP 地址?
docker - 无法访问在 docker 中运行的服务
我无法通过在 dockerhttp://localhost:8000
映像中运行来访问基于 nodejs 的服务。我正在使用 Docker for Mac ( https://docs.docker.com/docker-for-mac/ )
我正在关注这里的教程https://nodejs.org/en/docs/guides/nodejs-docker-webapp/。
服务器在 8000 端口上运行。我使用以下内容启动 docker 映像:
如果我跑步,docker ps
我会看到:
如果我docker exec -it 9fa2e446918b /bin/bash
可以访问 docker vm,我可以curl http://localhost:8000
从容器内部访问服务器。
curl http://localhost:8000
但是,我从我的系统终端尝试了同样的操作,但它无法访问。
不知道接下来我需要做什么。
django - 无法连接到在 docker 容器内运行的服务器(Docker for mac)
我的系统上运行了一个 docker 容器,我开始使用以下命令:
现在 docker ps 列出了这个:
在容器内,我使用以下命令运行我的 django 应用程序:python manage.py runserver 80
但我无法查看使用这些中的任何一个的页面:
1.localhost:8000
2.127.0.0.1:8000
我明白我的 8000 端口映射到容器上的 80 端口。但是为什么我无法访问它。我正在使用 docker for mac 而不是 docker toolbox 。如果您需要更多信息,请提供帮助和评论。
certificate - 如何在 docker-machine 中使用安全的 docker 注册表镜像?
我有一个 docker 发行版 v2 注册表,我将其用作镜像。它使用 Docker for Mac Community Edition 17.03.1-ce-mac12 (17661) 工作,但是从 docker-machine 节点访问它时出现“证书由未知权威签名”错误。设置如下:
{"repositories":["library/busybox"]}
… 注册表镜像:
… time="2017-05-30T12:33:01.593516721Z" level=debug msg="尝试从https://192.168.17.11:6000/ v2 拉出busybox"
time="2017-05-30T12:33:02.539391694Z" level=warning msg="获取 v2 注册表时出错:获取https://192.168.17.11:6000/v2/ : x509: 由未知机构签署的证书"
我不确定如何让 boot2docker VM 接受 docker duplication v2 注册表镜像使用的证书。其他示例将证书颁发机构的 ca.crt 复制到 /etc/certs.d/,但此证书是自签名的。
docker - 从现有容器中分离主机上的另一个容器
我目前正在使用Docker Desktop for Mac。
我的要求是从另一个容器中分离出一个容器。
情况:
容器 A 有一个正在运行的服务,它根据请求寻找一个集群管理器并分离另一个容器 B。我已经在我的机器上启动了单节点集群管理器。我不能使用主机 network_mode,因为 MAC 的 docker 将轻量级 linux vm 公开为主机,而不是我的实际本地主机。我也试过这个:https ://forums.docker.com/t/access-host-not-vm-from-inside-container/11747/7
任何可能的解决方案?
php - docker中的代码接收覆盖率慢
我在 docker 容器中遇到了 PHP 代码接收覆盖率报告问题。例如相同的测试
得到我(72.79s),但有覆盖标志
它让我(4,412.27s)。一些测试刚刚被粉碎:
错误:来自 Docker 引擎的错误响应。
在 codeception.yml 包含部分中,我仅设置 *.php 文件和带有代码的文件夹。
我的系统:Codeception 2.3.3,Docker EDGE 17.06.0-rc1-ce-mac13,Yii1 框架。
我尝试使用 docker https://docs.docker.com/docker-for-mac/osxfs-caching/进行的新性能调整,它有所帮助,但上面的结果已经有了改进。
docker - 如何在 Docker Desktop for Mac 中配置 docker 使用的 DNS 服务器?
Docker Desktop for Mac中内置的 DNS 服务器真的很慢,所以我想默认使用不同的 DNS 服务器。我知道我可以--dns=...
在运行 docker 命令时添加,但我想要一种为所有容器设置默认 DNS 服务器的方法,以避免必须为每个容器单独指定 DNS 服务器。
如何为 Docker for Mac 上的所有容器设置默认 DNS 服务器?
macos - 对 docker 容器的请求在 OSX 的 chrome 上失败
我有几个使用 Docker for Mac 在 OSX 上运行的 docker 容器,并且我在 docker-compose 文件中设置了端口映射,以便在 localhost 上访问它们。这通常有效,但有时从 Chrome 浏览器访问请求时请求会失败。
在这种情况下,我在 docker-compose 输出中看不到任何内容表明容器已收到请求,并且无论我离开它多长时间,该选项卡都会挂起。唯一有帮助的是等待片刻,然后在不同的 Chrome 选项卡中打开另一个 url(甚至是相同的 localhost url),这有时会导致对 localhost 的请求通过。
我对其他浏览器(Firefox、Safari)没有任何问题,并且可以在 Ubuntu 上使用 Chrome 可靠地访问相同的容器。
版本:
- OSX:10.12.4
- 码头工人:17.03.1-ce-mac12
- 铬:58.0.3029.110
macos - 坐骑否认。路径 ... 不从 OS X 共享,并且不为 Docker 所知
该命令docker run -v /var/folders/zz/...
产生以下错误。
当我打开文件共享时,我看到 /private 已经列出。
如果我尝试添加/var/folder/
,它会解析为/private/var/folders
/private 的子集,因此添加被拒绝。
总而言之,在我看来,该目录/var/folders/..
作为 OS X 的子目录共享,/private
因此 Docker 必须知道该目录。任何有关解决此问题的帮助将不胜感激。
作为实验,我将/private
文件共享中的替换为/private/var/folders
并重新启动了 docker,但结果没有改变。
只是为了更完整的参考,这是.sh 脚本,它运行这个 python 脚本,它又运行 docker 命令。