您好,欢迎来到12图资源库!分享精神,快乐你我!我们只是素材的搬运工!!
  • 首 页
  • 当前位置:首页 > 开发 > WEB开发 >
    从零末尾了解Docker(3)
    时间:2018-04-18 08:15 来源:网络整理 作者:网络 浏览:收藏 挑错 推荐 打印

    c0913fec0e19: Pushing [=>                                                 ]  2.783MB/116.7MB 

    bb1eed35aacf: Mounted from library/ubuntu 

    5fc1dce434ba: Mounted from library/ubuntu 

    c4f90a44515b: Mounted from library/ubuntu 

    a792400561d8: Mounted from library/ubuntu 

    6a4e481d02df: Waiting 

    8. 是时分运用 Dockerfile 了

    用 Docker 停止继续集成?相比在了解 Docker 之前一定听过这个事情,那就不测着需求从某个中央拷贝代码,然后执行(对,听上去有点 travis-ci 的那种觉得)。

    是时分该 Dockerfile 出场了!

    Dockerfile 是一个由一堆命令+参数构成的脚本,运用 docker build 即可执行脚本构建镜像,自动的去做一些事(同相似于travis-ci 中的 .travis.yml)。

    Dockerfile 的格式统统为:

    # Comment 

    INSTRUCTION arguments 

    必须以 FROM BASE_IMAGE 扫尾指定基础镜像。

    更详细的标准与阐明请参考 Dockerfile reference。这里我们以基于下面的 rccoder/myworkspace:v1 作为基础镜像,然后在根目录创立 a 目录为例。

    Dockerfile 如下:

    FROM rccoder/myworkspace:v1 

    RUN mkdir a 

    然后执行:

    > docker build -t newfiledocker:v1 . 

    Sending build context to Docker daemon  3.584kB 

    Step 1/2 : FROM rccoder/myworkspace:v1 

    ---> 68e83119eefa 

    Step 2/2 : RUN mkdir a 

    ---> Running in 1127aff5fbd3 

    Removing intermediate container 1127aff5fbd3 

    ---> 25a8a5418af0 

    Successfully built 25a8a5418af0 

    Successfully tagged newfiledocker:v1 

    新建基于 newfiledocker 的容器并在终端中翻开,发现外面曾经有 a 文件夹了。 

    > docker docker run -it newfiledocker:v1 /bin/bash 

    root@e3bd8ca19ffc:/# ls 

    a  bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv

    借助 Dockerfile 的才能,Docker 留下了有限的能够。

    能做什么

    说了这么一堆,那实践消费环境中 Docker 能做什么呢?常用的能够有下面这些(欢迎在评论中补充)

    1. 多环境的部署切换

    业务开发中往往需求区分开发环境与线上环境,应用 Docker 能原封不动的将开发环境中的 代码与环境原封不动无污染的 迁移到线上环境,配合一定的自动化流程即可完成自动的发布。

    2. 前端云构建

    由于 node_modules 的蛋疼成绩,同一个仓库下不同人开发往往会遇到不同的人运用不同的 包版本 且本人基本不知道与别人不一样,最终招致发布之后产生线上成绩。应用 Docker 可以在云端新建容器,远程无污染、低成本构建代码,完成不同人用的一定是同一个版本。

    3. 复杂环境一键配置

    某些场景下能够会配一些超级复杂的环境(比如:大一同窗配 Java 环境),这个时分可以应用 Docker 对环境配置做封装,直接生成镜像,让大家低成本运用。

    4. 继续集成单元测试

    相似于 travis-ci 这种

    5. 同运用多版本隔离、文件隔离

    比如这个项目依赖 node 6,那个项目依赖 node 8(只是举例子,硬盘够大的话还是建议经过 nodeinstall 处置);同一台效劳器上跑了 100 个 wordpress 顺序(可以用 Docker 树立隔分开,避免相互污染)。

    6. 省钱

    嗯,低成本安全超售(大雾)。

    【编辑引荐】

    谁用占用了这么多磁盘空间?Docker System命令详解

    Docker 出错回忆,2018年或将与世长辞?

    梁胜关于容器的年终总结,没再提Docker

    “Docker“生死”记,这条船还能开出去多远?

    Docker 开创人 Solomon Hykes 宣布从 Docker 离任

    (责任编辑:admin)