首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >计算引擎部署容器

我使用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

复制
相关文章
【iOS】基于Realm数据库的记账软件--Realm数据库(一)
</br> 以上,就是该项目的所有数据库表。实际项目会因业务需求,追加一些字段,但核心还是不变的。
MapleYe
2020/03/31
1.5K0
【iOS】基于Realm数据库的记账软件--Realm数据库(一)
Android数据库Realm实践
Android开发中常用的数据库有5个: 1. OrmLite OrmLite 不是 Android 平台专用的ORM框架,它是Java ORM。支持JDBC连接,Spring以及Android平台。语法中广泛使用了注解(Annotation)。 2. SugarORM SugarORM 是 Android 平台专用ORM。提供简单易学的APIs。可以很容易的处理1对1和1对多的关系型数据,并通过3个函数save(), delete() 和 find() (或者 findById()) 来简化CRUD基本操
xiangzhihong
2018/02/02
1.5K0
Android数据库Realm实践
Innodb存储引擎中的后台线程介绍
在Innodb存储引擎中,后台线程的主要作用是负责刷新内存池中的数据,保证缓冲池中的内存缓存的是最近的数据。此外它会将已经修改的数据文件刷新到磁盘文件中,保证数据库在发生异常的情况下,Innodb能够恢复到正常的运行状态。上一节中我们讲到了redo log的刷盘操作,其实就是后台线程帮忙完成的。
AsiaYe
2020/02/27
1.2K0
React Native 使用Realm数据库组件
使用Realm Studio来调试查看编辑数据库里的数据,支持Mac、Windows、Linux。
forrest23
2018/08/03
1.4K0
React Native 使用Realm数据库组件
Realm数据库学习之快速入门
任何数据库都无非是CRUD的操作,也就是为了增、删、改、查的使命。 相对于传统的原生的Sqlite开发,Realm的API使开发者显得轻松自在。
Frank909
2019/01/14
6700
Realm数据库 从入门到“放弃”
Realm是由Y Combinator公司孵化出来的一款可以用于iOS(同样适用于Swift&Objective-C)和Android的跨平台移动数据库。目前最新版是Realm 2.0.2,支持的平台包括Java,Objective-C,Swift,React Native,Xamarin。
一缕殇流化隐半边冰霜
2018/08/30
5.1K0
后台线程和ui线程
后台线程 mfc AfxBeginThread创建函数或者对象中的静态函数 dotnet Task.Run或者new Thread ui线程 mfc 继承CWinThread、给子类绑定dialog,窗口在独立的线程中初始化和析构。 class CUIThread : public CWinThread { DECLARE_DYNCREATE(CUIThread) protected: CUIThread(); // 动态创建所使用的受保护的构造函数 virt
sofu456
2020/02/18
5250
iOS开发中使用Realm数据库
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010105969/article/details/79152984
用户1451823
2018/09/13
8870
【iOS】基于Realm数据库的记账软件--前言
笔者在今年毕业的时候,为了应付学校的毕业设计,因此做了一款基于Realm数据库的记账软件。现在毕业后,稍微闲下来了,所以打算将整个项目的核心实现步骤记录下来,供大家学习学习。当然,项目中肯定还存在着大大小小的bug,例如数据的溢出等细节处理。那么先让大家看看项目的效果图吧~
MapleYe
2020/03/31
8220
【iOS】基于Realm数据库的记账软件--前言
解密openGauss数据库中的函数依赖关系
生活中总是存在着错综复杂的联系,例如喜欢打篮球的人,身高普遍比较高;喜欢穿艳丽色衣服的人,性格会普遍比较开朗;在超市买炸鸡的人,会大概率买啤酒。而反过来,这种联系并不一定成立。
叶秋学长
2023/02/01
1.2K0
解密openGauss数据库中的函数依赖关系
生活中总是存在着错综复杂的联系,例如喜欢打篮球的人,身高普遍比较高;喜欢穿艳丽色衣服的人,性格会普遍比较开朗;在超市买炸鸡的人,会大概率买啤酒。而反过来,这种联系并不一定成立。
大柏树
2022/12/13
1.2K0
解密openGauss数据库中的函数依赖关系
SqlServer 错误:"SQL Server 无法生成 FRunCM 线程" -- 解决办法
开始-》Sql server 2005-》配置工具-》SQL Server Configuration Manager-》sql协议-》禁止VIA
拓荒者IT
2019/09/26
1.2K0
前台线程和后台线程总结
.Net的公用语言运行时(Common Language Runtime,CLR)能区分两种不同类型的线程:前台线程和后台线程。
wfaceboss
2019/04/08
1.9K0
shiro教程3(加密)
加密,是以某种特殊的算法改变原有的信息数据,使得未授权的用户即使获得了已加密的信息,但因不知解密的方法,仍然无法了解信息的内容
Java帮帮
2019/12/13
7840
shiro教程3(加密)
Shiro Realm
Realm: 域,Shiro 从 Realm 中获取用户,角色,权限信息。可以把 Relam 看成 DataSource,即安全数据源。
一份执着✘
2018/08/27
8400
realm.io
java版本的github:https://github.com/realm/realm-java
阿超
2022/12/11
3460
realm.io
OAuth2 服务器Keycloak中的Realm
Realm翻译成中文为领域。用来逻辑隔离一些特定空间,有点多租户的感觉,不同的Realm之间互相隔离,有各自的特色配置,互不影响。
码农小胖哥
2021/09/09
1.8K0
【iOS】基于Realm数据库的记账软件--记账模块(二)
从记账的需求出发,该界面需要用户输入以下账单信息: (1)账单金额 (2)账单类型 (3)相关账户 (4)账单产生的日期 (5)备注 那么,结合一下需求,开始构思一下界面如何搭建吧。
MapleYe
2020/03/31
1.1K0
【iOS】基于Realm数据库的记账软件--记账模块(二)
【Android】Realm详解
介绍 Realm 是一个 MVCC (多版本并发控制)数据库,由Y Combinator公司在2014年7月发布一款支持运行在手机、平板和可穿戴设备上的嵌入式数据库,目标是取代SQLite。 Realm 本质上是一个嵌入式数据库,他并不是基于SQLite所构建的。它拥有自己的数据库存储引擎,可以高效且快速地完成数据库的构建操作。和SQLite不同,它允许你在持久层直接和数据对象工作。在它之上是一个函数式风格的查询api,众多的努力让它比传统的SQLite 操作更快 。 详细介绍(如果进不去,看这个也行)
Gavin-ZYX
2018/05/18
4.5K0
点击加载更多

相似问题

Realm -在后台线程上批量更新RLMResults

124

Realm DB -如何在Android中解密Realm DB?

14

Realm在后台获取错误的数据

10

无法命名后台线程,无效错误

23

如何将realm对象从后台线程传递到UiThread?

13
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

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

洞察 腾讯核心技术

剖析业界实践案例

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