有个需要打造成产品化的应用,再 linux 下运行,需要编译 c++的代码给 nodejs 用,觉得如果每次都到客户服务器去安装各种环境比较麻烦,所以在想 docker 是不是合适。
如果合适的话有一些疑问:
1 镜像制作
在创建 dockerfile 的时候,首先把 c++代码拷贝进去,然后安装依赖,编译,删掉源码,清理安装包,是这个流程吗? 但是如何保障清理到位,安装的依赖可能很多,如果清理不干净是不是会导致 image 特别大?
2 镜像发布
创建好的镜像不适合放到 dockerhub 上,直接拷贝到目标机器可以吗?
3 镜像运行
类似 npm install 这种命令是在创建镜像的时候运行还是容器启动的时候运行?另外,第三方如果接触到了服务器,是不是可以通过 docker 的交互命令把编译好的内容拷贝出来?
4 成本(这里的成本跟上面说的那个产品无关,说的是我们自己的一些应用)
按我的理解,一般一个应用一个 docker 容器,如果是自己的物理服务器,配置高点,可以跑很多个容器。但是如果是购买类似阿里云上面的容器服务,感觉稍微高点的配置就很贵,比如一个计算型的 4 核 8g 的实例将近 2.5 元一个小时,一年 1.8w 左右,同样的物理服务器 1 年 1w 多点。
假设我们有 10 个应用,1 个 java 内存耗的多点,买了那个计算型的实例,其他 9 个买的低内存实例,1 年 2.5 万差不多了。
但是购买 ECS 的话,4 核 8g 上面跑 10 个应用问题不大,因为 java 那个应用未必一直占用资源,算下来即使扩充到 4 核 16g,1 年也不会超过 2w。这个算法有什么问题吗?还是使用方式不当?
5 网络环境
docker hub 可以用国内镜像,但是通过 apt 安装 docker 费了老大劲,因为 docker.com 被墙了啊,客户服务器环境难道还需要临时搭建一个科学上网的服务?
docker 新手,上面问题恳请大佬帮帮忙。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.