文档章节

Docker使用-两小时入门

莫库什勒
 莫库什勒
发布于 11/09 19:07
字数 2283
阅读 17
收藏 0
  • 欢迎观看原文链接:   https://mp.weixin.qq.com/s/eAJpnEfjflVr76iPVHN6rA 
  • 本篇是在观看以上链接内容, 做的一个个人整理和思考的笔记
  •  
  • docker容器的优势
    • 更高效的利用系统资源
      • 由于容器不需要进行硬件虚拟以及运行完整操作系统等额外开销,Docker 对系统 资源的利用率更高。
      • 无论是应用执行速度、内存损耗或者文件存储速度,都要比传 统虚拟机技术更高效。因此,相比虚拟机技术,一个相同配置的主机,往往可以运 行更多数量的应用。
    • 更快速的启动时间
      • 传统的虚拟机技术启动应用服务往往需要数分钟,而 Docker 容器应用,由于直接 运行于宿主内核,无需启动完整的操作系统,因此可以做到秒级、甚至毫秒级的启 动时间。大大的节约了开发、测试、部署的时间。
    • 一致的运行环境
      • 开发过程中一个常见的问题是环境一致性问题。由于开发环境、测试环境、生产环 境不一致,导致有些 bug 并未在开发过程中被发现。
      • 而 Docker 的镜像提供了除内 核外完整的运行时环境,确保了应用运行环境一致性,从而不会再出现 “这段代码 在我机器上没问题啊” 这类问题。
    • 持续交付和部署
      • 对开发和运维(DevOps)人员来说,最希望的就是一次创建或配置,可以在任意 地方正常运行。
      • 使用 Docker 可以通过定制应用镜像来实现持续集成、持续交付、部署。开发人员 可以通过 Dockerfile 来进行镜像构建,并结合持续集成(Continuous Integration) 系 统进行集成测试,而运维人员则可以直接在生产环境中快速部署该镜像,甚至结合 持续部署(Continuous Delivery/Deployment) 系统进行自动部署。
      • 而且使用 Dockerfile 使镜像构建透明化,不仅仅开发团队可以理解应用运行环 境,也方便运维团队理解应用运行所需条件,帮助更好的生产环境中部署该镜像。
    • 更轻松的迁移
      • 由于 Docker 确保了执行环境的一致性,使得应用的迁移更加容易。Docker 可以在 很多平台上运行,无论是物理机、虚拟机、公有云、私有云,甚至是笔记本,其运 行结果是一致的。
      • 因此用户可以很轻易的将在一个平台上运行的应用,迁移到另一 个平台上,而不用担心运行环境的变化导致应用无法正常运行的情况。
  • docker入门
    • docker 命令
      • Usage:
        docker [OPTIONS] COMMAND [arg...]
               docker daemon [ --help | ... ]
               docker [ --help | -v | --version ]
        A
        self-sufficient runtime for containers.
        
        Options:
          --config=~/.docker              Location of client config files  #客户端配置文件的位置
          -D, --debug=false               Enable debug mode  #启用Debug调试模式
          -H, --host=[]                   Daemon socket(s) to connect to  #守护进程的套接字(Socket)连接
          -h, --help=false                Print usage  #打印使用
          -l, --log-level=info            Set the logging level  #设置日志级别
          --tls=false                     Use TLS; implied by--tlsverify  #
          --tlscacert=~/.docker/ca.pem    Trust certs signed only by this CA  #信任证书签名CA
          --tlscert=~/.docker/cert.pem    Path to TLS certificate file  #TLS证书文件路径
          --tlskey=~/.docker/key.pem      Path to TLS key file  #TLS密钥文件路径
          --tlsverify=false               Use TLS and verify the remote  #使用TLS验证远程
          -v, --version=false             Print version information and quit  #打印版本信息并退出
        
        Commands:
            attach    Attach to a running container  #当前shell下attach连接指定运行镜像
            build     Build an image from a Dockerfile  #通过Dockerfile定制镜像
            commit    Create a new image from a container's changes  #提交当前容器为新的镜像
            cp    Copy files/folders from a container to a HOSTDIR or to STDOUT  #从容器中拷贝指定文件或者目录到宿主机中
            create    Create a new container  #创建一个新的容器,同run 但不启动容器
            diff    Inspect changes on a container's filesystem  #查看docker容器变化
            events    Get real time events from the server#从docker服务获取容器实时事件
            exec    Run a command in a running container#在已存在的容器上运行命令
            export    Export a container's filesystem as a tar archive  #导出容器的内容流作为一个tar归档文件(对应import)
            history    Show the history of an image  #展示一个镜像形成历史
            images    List images  #列出系统当前镜像
            import    Import the contents from a tarball to create a filesystem image  #从tar包中的内容创建一个新的文件系统映像(对应export)
            info    Display system-wide information  #显示系统相关信息
            inspect    Return low-level information on a container or image  #查看容器详细信息
            kill    Kill a running container  #kill指定docker容器
            load    Load an image from a tar archive or STDIN  #从一个tar包中加载一个镜像(对应save)
            login    Register or log in to a Docker registry#注册或者登陆一个docker源服务器
            logout    Log out from a Docker registry  #从当前Docker registry退出
            logs    Fetch the logs of a container  #输出当前容器日志信息
            pause    Pause all processes within a container#暂停容器
            port    List port mappings or a specific mapping for the CONTAINER  #查看映射端口对应的容器内部源端口
            ps    List containers  #列出容器列表
            pull    Pull an image or a repository from a registry  #从docker镜像源服务器拉取指定镜像或者库镜像
            push    Push an image or a repository to a registry  #推送指定镜像或者库镜像至docker源服务器
            rename    Rename a container  #重命名容器
            restart    Restart a running container  #重启运行的容器
            rm    Remove one or more containers  #移除一个或者多个容器
            rmi    Remove one or more images  #移除一个或多个镜像(无容器使用该镜像才可以删除,否则需要删除相关容器才可以继续或者-f强制删除)
            run    Run a command in a new container  #创建一个新的容器并运行一个命令
            save    Save an image(s) to a tar archive#保存一个镜像为一个tar包(对应load)
            search    Search the Docker Hub for images  #在dockerhub中搜索镜像
            start    Start one or more stopped containers#启动容器
            stats    Display a live stream of container(s) resource usage statistics  #统计容器使用资源
            stop    Stop a running container  #停止容器
            tag         Tag an image into a repository  #给源中镜像打标签
            top       Display the running processes of a container #查看容器中运行的进程信息
            unpause    Unpause all processes within a container  #取消暂停容器
            version    Show the Docker version information#查看容器版本号
            wait         Block until a container stops, then print its exit code  #截取容器停止时的退出状态值
        
        Run 'docker COMMAND --help' for more information on a command.  #运行docker命令在帮助可以获取更多信息

         

    • docker 运维
      • docker run 创建容器

        • 譬如我要启动一个centos容器,宿主机的/test目录挂载到容器的/soft目录,可通过以下方式指定:

        • docker run -it -v /test:/soft centos /bin/bash

      • docker update 更新docker配置

        • 修改容器为自动启动

        • docker container update --restart=always 容器名字  

      •  

        docker exec 进入容器

        • 进入容器内部命令

        • docker exec -it 容器id /bin/bash

      • docker ps -s 查看容器大小

      •  

         

         

  • docker升级
    • dockerFile
      • dockerFile 语法简介
      • https://www.cnblogs.com/dance-walter/p/9581508.html
      • dockerFile 常用指令
        • FROM 指定基础镜像
          RUN 执行命令
          RUN ,如:RUN echo '<h1>Hello, Docker!</h1>' > /usr/share/nginx/html/index.html
          RUN ["可执行文件", "参数1", "参数2"]
          COPY 复制文件
          COPY [--chown=<user>:<group>] ["<源路径1>",... "<目标路径>"]
          源路径可以是多个,甚至可以是通配符,其通配符规则要满足 Go 的 filepath.Match 规则
          ADD 更高级的复制文件
          ADD与COPY基本一致,区别在ADD源路径可以是url,且如果 <源路径> 为一个 tar 压缩文件的话,压缩格式为 gzip, bzip2 以及 xz 的情况下,ADD 指令将会自动解压缩这个压缩文件到 <目标路径> 去。
          在 Docker 官方的 Dockerfile 最佳实践文档 中要求,尽可能的使用 COPY,因为 COPY 的语义很明确,就是复制文件而已,而 ADD 则包含了更复杂的功能,其行为也不一定很清晰。最适合使用 ADD 的场合,就是所提及的需要自动解压缩的场合。
          CMD 容器启动命令
          ENTRYPOINT 入口点
          ENTRYPOINT与CMD的目的一样,都是指定容器启动程序与参数。
          当指定了 ENTRYPOINT 后,CMD 的含义就发生了改变,不再是直接的运行其命令,而是将 CMD 的内容作为参数传给 ENTRYPOINT 指令
          ENV 设置环境变量
          ARG 构建参数
          VOLUME 定义匿名卷
          EXPOSE 暴露端口

           

      • dockerFile 的简单实用
      • https://www.cnblogs.com/jhxxb/p/11445594.html
      •     
    • docker的持续交付
    • docker的持续集成
    • docker的持续部署
    • 以上可观看第三方 : 在容器上构建持续部署及最佳实践初探
  • docker 使用点和注意点
    •  
  • 完结(撒花)
    • 持续更新.....

© 著作权归作者所有

莫库什勒

莫库什勒

粉丝 23
博文 185
码字总数 77347
作品 0
杭州
高级程序员
私信 提问
宋宝华:Docker 最初的2小时(Docker从入门到入门)

最初的2小时,你会爱上Docker,对原理和使用流程有个最基本的理解,避免满世界无头苍蝇式找资料。本人反对暴风骤雨式多管齐下狂轰滥炸的学习方式,提倡迭代学习法,就是先知道怎么玩,有个感...

21cnbao
2017/02/21
0
0
每天5分钟日记

第一天 近期的目标 要做到早睡早起,早睡先放到一边,先要做好早起的准备。 先运动一个小时,然后,晚上要回顾一天的生活工作,核查自己一整天的任务完成情况以及调整第二天的任 务。 近期目...

boogoogle
2016/01/24
10
0
Docker简明手册

查看docker的子命令,直接敲或完整的就可以了: root@tankywoo-docker:~# docker [1/1617] Usage: docker [OPTIONS] COMMAND [arg...] -H=[unix:///var/run/docker.sock]: tcp://host:port to......

openthings
2016/03/28
158
0
今晚在线培训 | Kubernetes部署与使用入门

容器技术凭借其轻量化和快速部署的特性,被越来越多企业开发者赞誉,近两年来发展态势可谓炙手可热。 去年一年,Kubernetes的流行度持续快速上升,我们有理由相信在不远的未来,Kubernetes将...

RancherLabs
2018/03/29
92
0
在线培训 | Kubernetes部署与使用入门

容器技术凭借其轻量化和快速部署的特性,被越来越多企业开发者赞誉,近两年来发展态势可谓炙手可热。 去年一年,Kubernetes的流行度持续快速上升,我们有理由相信在不远的未来,Kubernetes将...

RancherLabs
2018/03/19
100
0

没有更多内容

加载失败,请刷新页面

加载更多

Docker 安装 Redis

1、查看可用的 Redis 版本 docker search redis 2、取最新版的 Redis 镜像 这里我们拉取官方的最新版本的镜像: $ docker pull redis:latest 3、查看本地镜像 使用以下命令来查看是否已安装了...

你好夜故事
27分钟前
9
0
关于spring boot自动注入出现Consider defining a bean of type 'xxx' in your configuration问题解决方案

根据英文的提示是在配置中找不到一个指定自动注入类型的bean,经过多方排查得出结论:   正常情况下加上@Component注解的类会自动被Spring扫描到生成Bean注册到spring容器中,既然他说没找...

观海562
41分钟前
9
0
将List> 转成对象

public class MapToBeanUtil<T> { public static <T> List<T> convertMap2Bean(List<Map<String, Object>> map, Class<T> T) { List<T> result = null; if (CollectionUtils.isEmpty......

简小姐
44分钟前
12
0
大数据HDFS的相关运维题

1.在 HDFS 文件系统的根目录下创建递归目录“1daoyun/file”,将附件中的BigDataSkills.txt 文件,上传到 1daoyun/file 目录中,使用相关命令查看文件系统中 1daoyun/file 目录的文件列表信息...

洲小洲
57分钟前
7
0
了解如何使用 Jenkins-X UpdateBot

本文首发于:Jenkins 中文社区 原文链接 作者:Ryan Dawson 译者:wenjunzhangp Jenkins-X UpdateBot 是用于在项目源代码中自动更新依赖项版本的工具。假设您正在构建两个项目 A 和 B,B 使用...

Jenkins中文社区
57分钟前
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部