V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
hujianxin
V2EX  ›  程序员

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

  •  
  •   hujianxin · 2019-10-09 14:37:08 +08:00 · 1831 次点击
    这是一个创建于 1654 天前的主题,其中的信息可能已经有所发展或是发生改变。

    比如我有一个 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 吗?

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

    > 3. eval $(docker-machine env server)
    > 4. docker-compose restart 上线
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   928 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 19:55 · PVG 03:55 · LAX 12:55 · JFK 15:55
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.