baskice
V2EX  ›  问与答

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

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

    明显是你的问题,如果了解清楚之后在一些地方确实使用方便很多
    ipwx
        12
    ipwx  
       Oct 28, 2017
    docker 容器不用 systemd。docker 用 docker daemon 自己管理。
    notgood
        13
    notgood  
       Oct 28, 2017 via iPhone
    @znood 感谢回复!我最近在看 DOcker 看从入门到实践 ,楼主上面提的第一个问题我也碰到了,请问你知道是什么原因吗?谢谢!
    znood
        14
    znood  
       Oct 28, 2017 via iPhone
    @notgood 目前没遇到过,不稳定是哪种?网络?进程退出?
    defunct9
        15
    defunct9  
       Oct 28, 2017 via iPhone
    用法错误❌
    gwind
        16
    gwind  
       Oct 29, 2017
    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  
       Oct 29, 2017
    dan381006472
        18
    dan381006472  
       Feb 3, 2018
    dcoder
        19
    dcoder  
       Oct 22, 2018
    4 docker 跟 systemd 有仇?

    @baskice 你的理解是对了,docker 就是想把 systemd 架空.
    一旦你开始试着用 docker 全家桶,很多过去的 DevOps 配置经验就不管用了.
    你用以前的经验,在 docker 里配个最简单的东西,很可能就是不 work... 非常烦
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5955 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 80ms · UTC 03:03 · PVG 11:03 · LAX 20:03 · JFK 23:03
    ♥ Do have faith in what you're doing.