比如我有一个 python web 项目,使用 docker-compose 编排,涉及了 redis,mysql,nginx 等容器。
在本地开发完之后,我想部署到 vps 上面。
我最先想到的步骤是这样:
但是感觉这样很不正规,所以在搜了下别人的方法,发现很多人使用 docker machine 配合,这样就可以在本地开发机部署了。
请问各位大佬,docker-compose 编排的项目,部署的话,最佳实践是 docker-machine 吗?
1
cz5424 2019-10-09 16:33:01 +08:00
单机开发为什么要 docker-machine,之前用 docker-machine 是因为 win 下,一个 machine 对应一个虚拟机,理论上一个虚拟机就够了。
vps 上还是简单的 docker,docker-compose 最爽了 |
2
hujianxin OP @cz5424 开发的话,肯定不需要 docker-machine。部署的话呢?直接在 vps 上 clone 代码,然后 docker-compose up 吗?
|
3
hujianxin OP 假如我是 python 项目,如果将 python 代码都 clone 到 vps 上,这样暴露了代码,感觉并不是很好的方式。
|
4
lllllliu 2019-10-09 18:29:44 +08:00
我有个问题 ~~
一般单机部署项目不是打包镜像服务器直接下载镜像么? 用到 Docker-Compose 之后大部分不是集群部署么? |
5
cz5424 2019-10-09 18:47:39 +08:00
@hujianxin 一般来说,部署会有一个地方放镜像,在服务器上 docker-compose 写上镜像地址,不论你怎么弄,python 部署代码肯定是能看到源码。不想暴露源码请用其他语言,比如 go
|
6
cz5424 2019-10-09 18:49:10 +08:00
不用搞集群的话。直接服务器上 build 也问题不大,除非你的 build 能把服务器搞挂
|
7
gongzili456 2019-10-09 19:21:12 +08:00
推荐使用 K3s, 和 K8s 一样的风格的 API
|
8
hujianxin OP @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 了,确实方便了 |