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

刚学习 docker/微服务的几点小问题

  •  
  •   zhongdian121 · 2019-11-19 17:10:36 +08:00 · 5704 次点击
    这是一个创建于 1831 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近开始学习 docker,自己想搞一些小玩意儿,然后统统丢到一个云主机上部署,省钱嘛。学习过程中有一些疑问,我想还是在 V 站问一下能够减少我之后踩坑的时间。

    1、假如我在容器 A 和容器 B 上各部署了一个网站,想要解析到不同的 url 路径,比如 localhost/websiteA 和 localhost/websiteB,最佳实践是怎样的?我有搜索到用 nginx,那我的 nginx 是部署到宿主机比较好呢,还是新建一个容器 C 专门做反向路由呢?

    2、我在本地用到了几个容器,把他们部署到云主机的时候,是一个个地 docker pull 呢,还是有更好的方法来实现?开发环境使用的是 Windows/macOS 的 docker,云主机用 Linux 的 docker,会出现问题吗?

    看了一下 k8s 的文档,感觉 k8s 能够解决问题 2。不过以我粗浅的理解,k8s 貌似很重的样子,我并不存在多个物理服务器,也不需要多个灾备实例的呀。所以不知道 k8s 是不是解决这个问题的正确方向。

    5 条回复    2020-03-03 14:58:42 +08:00
    dcalsky
        1
    dcalsky  
       2019-11-19 17:22:41 +08:00 via Android   ❤️ 1
    你目前还用不到 k8s。

    1. 新建容器 c,nginx image 或者 traefik 作为代理,然后用 docker-compose 去连接这些 abc 容器到同一个 network 下。这样能实现简单的服务发现啦。

    2. 还是用 docker-compose,写一个 docker-compose.yaml 配置文件,就可以一键 pull 或 push 镜像啦。

    2.5. 一般不会出现问题,版本一致的话放心用就好了
    zhongdian121
        2
    zhongdian121  
    OP
       2019-11-19 18:37:13 +08:00
    @dcalsky 好的,我这就去学习一下 docker-compose 和 traefik
    lllllliu
        3
    lllllliu  
       2019-11-21 11:12:54 +08:00
    @dcalsky 借楼请教一下,我有 APP1 ( php+mysql )有 APP2 ( go+mysql ) 我是把 APP1 和 APP2 直接打包成一个镜像好。还是每个都用 compose 编排。这样的话如果想让两个 APP 的数据都能存 /读一个 mysql,是不是要单独部署一个 mysql ? emmmm
    dcalsky
        4
    dcalsky  
       2019-11-22 00:22:09 +08:00 via Android
    @lllllliu

    1. 分别 build 成不同的 image,把 mysql 去掉,只剩逻辑部分。

    2. 建议单独部署一个 mysql container,连接的时候 host 填 mysql (你的 mysql service name )。注意,3 个 services ( app1,app2,mysql )要在同一个 network 下(默认情况即是如此)。
    yuchen01
        5
    yuchen01  
       2020-03-03 14:58:42 +08:00
    @dcalsky 这需求用 k8s 是能实现,不过没必要~哈哈哈
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2733 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 12:42 · PVG 20:42 · LAX 04:42 · JFK 07:42
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.