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

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

  •  
  •   zhongdian121 · 25 天前 · 1601 次点击

    最近开始学习 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 是不是解决这个问题的正确方向。

    4 回复  |  直到 2019-11-22 00:22:09 +08:00
        1
    dcalsky   25 天前 via Android   ♥ 1
    你目前还用不到 k8s。

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

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

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

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

    2. 建议单独部署一个 mysql container,连接的时候 host 填 mysql (你的 mysql service name )。注意,3 个 services ( app1,app2,mysql )要在同一个 network 下(默认情况即是如此)。
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   882 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 34ms · UTC 22:02 · PVG 06:02 · LAX 14:02 · JFK 17:02
    ♥ Do have faith in what you're doing.