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

Docker 怎么这么难用,是我方法不对吗?

  •  
  •   baskice · 2017-10-28 11:38:58 +08:00 · 5768 次点击
    这是一个创建于 2608 天前的主题,其中的信息可能已经有所发展或是发生改变。
    宣传上说 docker 是 production read,同一软件镜像后分发任意系统直接用。听了周围人推荐,开始用 docker。

    我今天为了配一个简单的 nginx+varnish,支持 https 的反向代理缓存用 docker 弄到现在都没成功。平常 apt-get 早就弄完了。

    我遇到成吨的问题:
    1 虽然宣传说镜像直接用,但实际使用发现要对上系统版本才能稳定运行。(比如针对 centos 制作的版本在 debian 下压测不是很稳定)
    2 dockerhub 上现有的 varnish 和 nginx 镜像仅有少数几个标明系统(还有的镜像极大,连系统都打包了??)

    3 改为用现有正在跑的 debian9 机器做镜像,发给只有 debian8 的新服务器上,结果跑不起来。似乎是因为新机器的 apt-get 来的 docker 版本比生产机器上的旧,docker 不做向后兼容的吗?

    4 docker 跟 systemd 有仇?
    19 条回复    2018-10-22 09:32:05 +08:00
    514146235
        1
    514146235  
       2017-10-28 11:44:42 +08:00   ❤️ 1
    用法有误。鉴定完毕。
    halfer53
        2
    halfer53  
       2017-10-28 11:45:13 +08:00 via Android
    话说现在萌娘百科怎么样了?有希望解封吗
    e9e499d78f
        3
    e9e499d78f  
       2017-10-28 11:45:48 +08:00
    在 dockerhub 上看他们的 Dockerfile, 就能看到是什么系统
    zsj950618
        4
    zsj950618  
       2017-10-28 11:50:12 +08:00 via Android
    你 debian8 上的 docker 怎么装的?反正不要装源里的 docker.io 。。那个包很坑的。。
    isCyan
        5
    isCyan  
       2017-10-28 13:02:29 +08:00 via Android
    在 Docker 里装软件还是编译好,直接用包管理总会有问题。
    你可以把官方的 Dockerfile 或者别人写的拿来修改,这样比较少踩坑。
    其实 Docker 挺方便的。
    isCyan
        6
    isCyan  
       2017-10-28 13:04:04 +08:00 via Android
    诶,Docker 为啥要用 systemd ?程序不能在 daemon 状态运行,一个镜像 /容器只跑一个程序啊。
    xi4oh4o
        7
    xi4oh4o  
       2017-10-28 13:55:01 +08:00
    一般去 hub.docker.com 找官方的就好了,多数都有 alpine 系统很小,内网 docker network 串起来就好了,外部端口提前提前规划好
    mrcn
        8
    mrcn  
       2017-10-28 14:20:11 +08:00 via Android
    补充一个,在不支持 systemd 的系统上,令安装者极为不适……
    sw0rd3n
        9
    sw0rd3n  
       2017-10-28 14:22:41 +08:00 via iPhone
    试一下 singularity
    azh7138m
        10
    azh7138m  
       2017-10-28 14:30:01 +08:00 via Android
    docker 大部分时候是一个虚拟机的形式跑的,所以经常体积看上去有点大,其实选个合适的系统版本也有可以控制在 1G 以内
    znood
        11
    znood  
       2017-10-28 16:16:39 +08:00 via iPhone
    lz 明显还没理解 docker,docker 和宿主机共享内核,但是有自己的文件系统。
    你看到的那些大的镜像是因为 cantos 喝 Debian 本身机大,如果是 alpine 的就很小,其实只要运行程序需要的依赖库一样没什么差别。
    希望 lz 了解一下 docker 之后再来

    明显是你的问题,如果了解清楚之后在一些地方确实使用方便很多
    ipwx
        12
    ipwx  
       2017-10-28 16:18:08 +08:00
    docker 容器不用 systemd。docker 用 docker daemon 自己管理。
    notgood
        13
    notgood  
       2017-10-28 16:45:26 +08:00 via iPhone
    @znood 感谢回复!我最近在看 DOcker 看从入门到实践 ,楼主上面提的第一个问题我也碰到了,请问你知道是什么原因吗?谢谢!
    znood
        14
    znood  
       2017-10-28 17:32:02 +08:00 via iPhone
    @notgood 目前没遇到过,不稳定是哪种?网络?进程退出?
    defunct9
        15
    defunct9  
       2017-10-28 21:33:19 +08:00 via iPhone
    用法错误❌
    gwind
        16
    gwind  
       2017-10-29 12:40:56 +08:00
    docker 和 systemd 是两个不同领域的概念

    需要明确 Container 基本情况:
    1. Application Container, 如 docker, rkt,本质是管理进程,类比 chroot。需要独立的 root fs。无 system init 过程
    2. System Container, 如 lxc, lxd。有 system init 过程。

    目前大部分情景下,大家讲容器 /Container,指的都是 Application Container (或者直接是 Docker )
    fzinfz
        17
    fzinfz  
       2017-10-29 13:50:23 +08:00
    dan381006472
        18
    dan381006472  
       2018-02-03 11:59:57 +08:00
    dcoder
        19
    dcoder  
       2018-10-22 09:32:05 +08:00
    4 docker 跟 systemd 有仇?

    @baskice 你的理解是对了,docker 就是想把 systemd 架空.
    一旦你开始试着用 docker 全家桶,很多过去的 DevOps 配置经验就不管用了.
    你用以前的经验,在 docker 里配个最简单的东西,很可能就是不 work... 非常烦
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3301 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 12:03 · PVG 20:03 · LAX 04:03 · JFK 07:03
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.