Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >计算引擎部署容器

计算引擎部署容器
EN

Stack Overflow用户
提问于 2021-11-10 19:30:49
回答 4查看 414关注 0票数 2

我使用golang以编程方式创建和销毁使用计算引擎API的一次性计算引擎实例。

我可以很好地创建一个实例,但我真正遇到的问题是在启动时启动一个容器。

您可以在控制台UI中这样做:

但据我所知,以编程的方式进行它是非常困难的,特别是以Container作为基本映像。我尝试过执行一个执行docker pull us-central1-docker.pkg.dev/project/repo/image:tag的启动脚本,但是它失败了,因为您需要首先执行gcloud auth configure-docker us-central1-docker.pkg.dev才能工作,而且COOS没有gcloud或包管理器来获得它。

我所有的变通办法似乎都很烦人:

  • 手动创建具有所需容器的VM模板,并创建模板实例
  • 将容器放入外部注册表,如停靠中心(不可接受)
  • 在包管理器中使用Ubuntu而不是COOS,这样我就可以在启动时以编程方式安装gcloud、docker和容器。
  • 使用COOS从包含gcloud的dockerhub中提取图像,然后进行某种类型的坞内对接安装以将其拉下来。

我是遗漏了什么,还是不使用gcloud或控制台UI而将容器部署到计算引擎实例真的很麻烦?

EN

回答 4

Stack Overflow用户

发布于 2021-11-10 20:28:42

要让Compute引擎在Compute引擎启动时启动容器,必须为容器的描述定义元数据。当COOS启动时,它似乎运行了一个名为konlet的应用程序,在这里可以找到:

https://github.com/GoogleCloudPlatform/konlet

如果我们看一下这方面的文档,就会发现:

代理解析存储在VM实例元数据中的容器声明,在gce-容器声明键下,并使用声明的配置选项启动容器。

不幸的是,我还没有找到任何关于元数据结构的正式文档。虽然我找不到文档,但我确实找到了两个可能的解决方案:

  1. 解密konlet的源代码并将其分解,以了解元数据如何映射到码头容器启动时传递的内容。

  1. 用所需的容器定义手动创建Compute引擎,然后启动Compute Engine。SSH进入Compute引擎,然后检索当前元数据。我们可以在这里阅读有关检索元数据的内容:

https://cloud.google.com/compute/docs/metadata/overview

票数 2
EN

Stack Overflow用户

发布于 2021-11-11 20:47:48

事实证明,在容器优化操作系统中,从Artifact中取出一个容器并不太难:

  • 运行docker-credential-gcr configure-docker --registries [region]-docker.pkg.dev

请参阅:

因此,您可以做的是将上面的行与docker pull [image]docker run ...一起放入启动脚本中。使用metadata字段:https://cloud.google.com/compute/docs/instances/startup-scripts/linux#api创建实例时,可以指定启动脚本

这似乎是以编程方式提供带有容器的实例的最简单的方法。

票数 2
EN

Stack Overflow用户

发布于 2022-03-01 17:34:39

你提到你用docker-credential-gcr来解决你的问题。我在我的启动脚本中尝试了同样的方法:

代码语言:javascript
运行
AI代码解释
复制
docker-credential-gcr configure-docker --registries us-east1-docker.pkg.dev

但它会返回:

代码语言:javascript
运行
AI代码解释
复制
ERROR: Unable to save docker config: mkdir /root/.docker: read-only file system

还需要采取其他措施吗?谢谢。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69922863

复制
相关文章
Android如何调用摄像头
第一步必须加入调用摄像头硬件的权限,拍完照后我们要将图片保存在SD卡中,必须加入SD卡读写权限,所以第一步,我们应该在Android清单文件中加入以下代码
黄啊码
2020/05/29
1.6K0
Delphi 跨平台_delphi调用api接口
TCriticalSection = class(TSynchroObject) {$IFDEF POSIX} private type TCritSec = record FSync: TObject; procedure Initialize; inline; procedure Free; inline; procedure Enter; inline; procedure Leave; inline; function TryEnter: Boolean; inline; end; {$ENDIF POSIX} protected {$IFDEF MSWINDOWS} FSection: TRTLCriticalSection; {$ENDIF MSWINDOWS} {$IFDEF POSIX} FSection: TCritSec; {$ENDIF POSIX} public constructor Create; destructor Destroy; override; procedure Acquire; override; procedure Release; override; function TryEnter: Boolean; procedure Enter; inline; procedure Leave; inline; end;
全栈程序员站长
2022/08/04
2.1K0
android调用相册和摄像头_网页调用摄像头拍照
这里直接将得到的照片放在ImageView上 要裁剪,参考: http://blog.csdn.net/weixin_37577039/article/details/79186862
全栈程序员站长
2022/08/02
8510
Delphi调用驱动打印
我们做打印小票的时候除了直接对端口发送指令的方式,还有就是调用打印机驱动打印的方式,在Delphi中想要用驱动打印的方式就可以用到TPrinter类
Vaccae
2019/07/24
2.6K0
如何在应用程序中调用CMD并返回运行结果
要求做一个图形界面的应用程序,输入命令行的命令,在后台调用CMD程序执行该命令但不显示DOS命令行窗口,而且能实时显示运行的结果。哪位知道怎么处理?谢啦
用户3519280
2023/07/06
4740
Delphi Android ActivityManager
ActivityManager: 对Activity交互提供了接口, 利用它可以方便的对Memory, Processes, Task, Service 等进行管理,. 这里对Delphi接口进行了翻译,详细信息可以访问官方网站。
全栈程序员站长
2022/10/04
2.2K0
delphi调用webservice问题总结
1.把WSDL的URL地址放到了HTTPRIO的WSDLLocation参数中,然后选择service和port 2.最近一个项目用到了delphi调用C#写的web服务的功能。用了一天的时间找原因,终于测试通过了。 这是一个通过web服务把一个照片上传到网站指定位置的方法。先测试了N次都不成功,通过跟踪发现delphi根本没传过来任何值,通过查资料发现VS2005 默认是用的 SoapDocumentProtocol而Delphi 是使用的 SoapRpcProtocol.这会造成所以客户端传过去的字
Vaccae
2019/07/24
2.5K0
Delphi调用动态链接库
动态链接库(Dynamic Link Library,缩写为DLL)是一个可以被其它应用程序共享的程序模块,其中封装了一些可以被共享的例程和资源。动态链接库文件的扩展名一般是dll,也有可能是drv、sys和fon,它和可执行文件(exe)非常类似,区别在于DLL中虽然包含了可执行代码却不能单独执行,而应由Windows应用程序直接或间接调用。
Vaccae
2019/07/25
2.7K0
Silverlight调用本机exe程序
要点: 1. Silverlight必须启用OOB模式,以及 Require elevated trust when running in-browser.参考下图设置 注:OOB模式,并不意味着必须
菩提树下的杨过
2018/01/19
1.2K0
Silverlight调用本机exe程序
Delphi 判断exe, dll等应用程序[x86/x64]
function FileIS64( Filename:string ):Boolean; var tsl:TStringStream; rStr:AnsiString; begin Result := False; if not FileExists(Filename) then Exit; tsl := TStringStream.Create; try tsl.LoadFromFile(Filename); tsl.Position := 0;
Tuesday
2019/11/01
7470
Delphi 判断exe, dll等应用程序[x86/x64]
[译] 如何在 Android 开发中充分利用多摄像头 API
这篇博客是对我们的 Android 开发者峰会 2018 演讲 的补充,是与来自合作伙伴开发者团队中的 Vinit Modi、Android Camera PM 和 Emilie Roberts 合作完成的。查看我们之前在该系列中的文章,包括 相机枚举、相机拍摄会话和请求 和 同时使用多个摄像机流。
Android 开发者
2019/04/09
2.4K0
[译] 如何在 Android 开发中充分利用多摄像头 API
Android应用程序中的多个Activity的显示创建和调用[通俗易懂]
http://download.csdn.net/detail/u011936142/7429455
全栈程序员站长
2022/07/08
1.7K0
Android应用程序中的多个Activity的显示创建和调用[通俗易懂]
ChatGPT教你如何拉取本机摄像头
最近了不起在自己的服务器里基于Pandora搭建了ChatGPT页面,以后只需要accessToken或者key就可以使用,不再需要再去官网玩了,省下了不少时间。
灬沙师弟
2023/09/06
7810
ChatGPT教你如何拉取本机摄像头
Delphi中QuotedStr()
1.定义 给字符串两边加单引号并返回. 声明:function QuotedStr(const S: string): string; 用函数 QuotedStr把字符串S转换成为用引号括起来的字符串。单引号” ’ ” 将被插入到字符串s的最前和最后。
全栈程序员站长
2022/11/02
1.1K0
如何在Fortran中调用Python
Python是机器学习领域不断增长的通用语言。拥有一些非常棒的工具包,比如scikit-learn,tensorflow和pytorch。气候模式通常是使用Fortran实现的。那么我们应该将基于Python的机器学习迁移到Fortran模型中吗?数据科学领域可能会利用HTTP API(比如Flask)封装机器学习方法,但是HTTP在紧密耦合的系统(比如气候模式)中效率太低。因此,可以选择直接从Fortran中调用Python,直接通过RAM传递气候模式的状态,而不是通过高延迟的通信层,比如HTTP。
bugsuse
2020/04/21
6.3K0
js调用摄像头
详情源码请参见下方的 GitHub  !!! 1 <div> 2 <b>调用移动端摄像头</b><br> 3 <label>照相机: <input type="file" id='image' accept="image/*" capture='camera'></label> 4 <label>摄像机: <input type="file" id='video' accept="video/*" capture='camcorder'></l
ProsperLee
2018/10/24
20.6K2
js调用摄像头
OpenCV调用摄像头
python:python3.6 摄像头:网络摄像头 Python库:openCV
py3study
2020/01/02
1.8K0
点击加载更多

相似问题

如何在Delphi中调用Android上蓝牙设置的本机窗口?

10

Android:本机摄像头应用程序默认为前置摄像头

10

Android摄像头活动,如Instagram

20

调用按钮,如Android4.0应用程序

12

本机Android摄像头使用什么库?

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档