V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
51300520
V2EX  ›  问与答

docker 初学者,但是马上要用 docker 部署,大家看下我理解对吗?

  •  
  •   51300520 · 2019-03-16 04:32:47 +08:00 · 3709 次点击
    这是一个创建于 2110 天前的主题,其中的信息可能已经有所发展或是发生改变。

    今天才学就要赶鸭子上架没办法,大家看下我部署方法有没有什么问题,部署到阿里云上面去

    1.第一次发布的镜像是比较大的,因为操作系统环境全打包进去了,但是后续迭代跟 git 是一样的,pull 和 push 都是增量的

    2.阿里云服务器那边是不是要安装 docker 工具类似安 git 一样来拉镜像以及运行容器

    3.我现在部署的是 python 的 web 环境,用 nginx 反向代理负载均衡,用的 uwsgi 转发通信,还涉及到了 etcd,mysql,redis。docker 部署是不是通常应该部署粒度小一点,最好一个容器里面的服务尽量的少,而不是把各种服务塞进一个容器里面,我这情况是不是几个服务最好拆开?

    哎,看了整整一天,就学会了一些基本操作,真的压力很大,没办法,网上的很多教程又烂,浏览了下文档模模糊糊的时间又不够

    第 1 条附言  ·  2019-03-16 09:33:13 +08:00
    压力主要是老板发神经听了别人说 docker 好要求 docker 部署,喊我赶紧弄上去,我昨天看了一天,今天就要实施了。。。不要求对 docker 理解得很透彻,把事先搞定,我后面会慢慢研究,小破厂老板就爱这样,哎,听说分布式好就要分布式,也不看看那流量有必要上分布式嘛
    15 条回复    2019-03-17 15:18:41 +08:00
    EvilCult
        1
    EvilCult  
       2019-03-16 06:14:14 +08:00 via iPhone
    一个容器干一件事儿,然后
    docker compose 了解一下
    yzc27
        2
    yzc27  
       2019-03-16 06:16:23 +08:00 via iPhone   ❤️ 1
    1. 是
    2. 是
    3. 是
    最後也推薦 docker-compose
    Humorce
        3
    Humorce  
       2019-03-16 06:54:07 +08:00
    wzdbsss
        4
    wzdbsss  
       2019-03-16 07:13:19 +08:00 via iPhone
    k8s 走起
    zwpaper
        5
    zwpaper  
       2019-03-16 08:47:55 +08:00 via iPhone
    所以需求是啥?别光有压力

    如果只是用 docker 起来就够了,那很简单的…

    还是说有什么特殊需求?
    springmarker
        6
    springmarker  
       2019-03-16 08:49:16 +08:00 via Android
    Docker compose 或者 kubernetes
    obarong
        7
    obarong  
       2019-03-16 08:58:31 +08:00   ❤️ 1
    bingohuang/docker-labs: Docker 在线实验室
    https://github.com/bingohuang/docker-labs
    archersgz
        8
    archersgz  
       2019-03-16 09:29:05 +08:00
    手册+翻译软件,尽量别看那些乱七八糟的教程。
    ipwx
        9
    ipwx  
       2019-03-16 10:09:33 +08:00   ❤️ 1
    我上次看阿里云的手册,好像还没有纯的 Docker 服务,只有 VM 里面装 Docker ?

    那么 Docker-Compose 还是个不错的选项。

    另外注意编译一定要在同一台机器上编译,不然享受不到 cache,无法增量 push。
    cloverstd
        10
    cloverstd  
       2019-03-16 11:40:45 +08:00 via iPhone
    你这个没容器编排的话,用起来跟 supervisor 有啥区别
    John60676
        11
    John60676  
       2019-03-16 14:18:18 +08:00
    https://yeasy.gitbooks.io/docker_practice/content/install/centos.html

    如期花时间写帖子,不如把这些时间放在谷歌上
    hopingtop
        12
    hopingtop  
       2019-03-16 15:34:47 +08:00
    容器化有很多细节的。以下是我踩到的一些坑
    1.你先看阿里云的机器和你准备用 docker version 是否兼容,特别是文件系统等。
    2.容器的大小尽量是,1 个进程一个容器,比如 etcd 集群,就只跑一个 etcd 进程,然后通过可选网络方式组成集群,(host 网络模式使用最简单,性能好)
    3.如果有多个项目建议拿一台服务器做私有仓库,存储一些基础镜像。
    4.这种相互依赖的系统一定会用到容器编排,小项目直接用 docker-compose 就可以了。k8s 玩起来还是需要底蕴的,不然出问题,两眼黑。
    5.部署好后多观察日志,不清楚阿里云服务器是否支持类似 zabbix 监控。
    hopingtop
        13
    hopingtop  
       2019-03-16 15:36:44 +08:00   ❤️ 1
    @hopingtop
    补充一下,生产环境有条件,尽量关掉 swap 吧,特别是 redis mysql etcd 这种存储服务
    liujj
        14
    liujj  
       2019-03-16 15:53:47 +08:00   ❤️ 1
    1、否,docker 镜像是层结构,可以与 git 仓库对比。但是不同的是,我们在 docker 中发布新镜像一般是把最上的一或几个层予以替换,相对的 git 永远是把变更用新的层追加上去
    2、是,一般 redhat 系有 yum,debain 系有 apt,先去官网按指引添加源,然后直接 install docker-ce。ce 是社区版的意思。
    3、推荐几个组件分离,docker 的最佳实践是一个容器一个进程。把他们置于同一个虚拟网络中,在宿主机暴露端口。有人建议你用 k8s,对于你的需求而言太重了,用 docker-composer 即可。
    qihu3721
        15
    qihu3721  
       2019-03-17 15:18:41 +08:00
    nginx 可以试试这个
    https://github.com/jwilder/nginx-proxy
    自动发现 web 容器,并生成配置文件。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1763 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 16:30 · PVG 00:30 · LAX 08:30 · JFK 11:30
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.