使用 docker-compose 编排的单机项目,部署的话,是不是最好使用 docker machine 配合?

2019-10-09 14:37:08 +08:00
 hujianxin

比如我有一个 python web 项目,使用 docker-compose 编排,涉及了 redis,mysql,nginx 等容器。

在本地开发完之后,我想部署到 vps 上面。

我最先想到的步骤是这样:

  1. 在 vps 上也安装好 docker,docker-compose
  2. 通过 git 将源码拉到 vps 上
  3. 通过 docker compose up 运行起来。

但是感觉这样很不正规,所以在搜了下别人的方法,发现很多人使用 docker machine 配合,这样就可以在本地开发机部署了。

请问各位大佬,docker-compose 编排的项目,部署的话,最佳实践是 docker-machine 吗?

2011 次点击
所在节点    程序员
9 条回复
cz5424
2019-10-09 16:33:01 +08:00
单机开发为什么要 docker-machine,之前用 docker-machine 是因为 win 下,一个 machine 对应一个虚拟机,理论上一个虚拟机就够了。
vps 上还是简单的 docker,docker-compose 最爽了
hujianxin
2019-10-09 17:40:35 +08:00
@cz5424 开发的话,肯定不需要 docker-machine。部署的话呢?直接在 vps 上 clone 代码,然后 docker-compose up 吗?
hujianxin
2019-10-09 17:42:40 +08:00
假如我是 python 项目,如果将 python 代码都 clone 到 vps 上,这样暴露了代码,感觉并不是很好的方式。
lllllliu
2019-10-09 18:29:44 +08:00
我有个问题 ~~
一般单机部署项目不是打包镜像服务器直接下载镜像么?
用到 Docker-Compose 之后大部分不是集群部署么?
cz5424
2019-10-09 18:47:39 +08:00
@hujianxin 一般来说,部署会有一个地方放镜像,在服务器上 docker-compose 写上镜像地址,不论你怎么弄,python 部署代码肯定是能看到源码。不想暴露源码请用其他语言,比如 go
cz5424
2019-10-09 18:49:10 +08:00
不用搞集群的话。直接服务器上 build 也问题不大,除非你的 build 能把服务器搞挂
gongzili456
2019-10-09 19:21:12 +08:00
推荐使用 K3s, 和 K8s 一样的风格的 API
hujianxin
2019-10-09 21:04:21 +08:00
@cz5424 我刚才通过 docker machine 部署了一下服务,发现比在 vps 服务器上直接放代码、compose up 方便。

之前的流程是:
1. 开发代码
2. docker-compose up 测试
3. git push
4. 在服务器上 git pull
5. 在服务器上 docker-compose restart 上线

现在的流程是:
1. 开发代码
2. docker-compose up 测试
3. eval $(docker-machine env server)
4. docker-compose restart 上线

不用登陆 server 了,确实方便了
everyx
2019-11-13 23:21:14 +08:00
@hujianxin 3-4 之间不还是要 git pull 代码的吗?

> 3. eval $(docker-machine env server)
> 4. docker-compose restart 上线

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/607445

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX