Docker简介与入门

  1. Docker简介
    docker是一个程序运行、测试、交付的开放平台,Docker被设计为能够使你快速地交付应用。在Docker中,你可以将你的程序分为不同的 基础部分,对于每一个基础部分都可以当做一个应用程序来管理。Docker能够帮助你快速地测试、快速地编码、快速地交付,并且缩短你从编码到运行应用的 周期。此外,在我看来,docker并不仅仅是一门技术,也是在定义一种软件交付的标准,而加快软件交付周期就是其主要价值。

  2. Docker的主要特性

    • 文件系统隔离:每个进程容器运行在完全独立的根文件系统里
    • 资源隔离:可以使用cgroup为每个进程容器分配不同的系统资源,例如CPU和内存
    • 网络隔离:每个进程容器运行在自己的网络命名空间里,拥有自己的虚拟接口和IP地址
    • 写时复制:采用写时复制方式创建根文件系统,这让部署变得极其快捷,并且节省内存和硬盘空间
    • 日志记录:Docker将会收集和记录每个进程容器的标准流(stdout/stderr/stdin),用于实时检索或批量检索
    • 变更管理:容器文件系统的变更可以提交到新的映像中,并可重复使用以创建更多的容器。无需使用模板或手动配置
    • 交互式Shell:Docker可以分配一个虚拟终端并关联到任何容器的标准输入上
  3. Docker的技术架构

    这里写图片描述

    Docker技术采用C/S架构,我们使用Docker Client与Docker Daemon建立通信,并发送请求给后者。Docker Daemon作为Docker架构中的主体部分,首先提供Server的功能使其可以接受Docker Client的请求;而后Engine执行Docker内部的一系列工作,每一项工作都是以一个Job的形式的存在。
    Job的运行过程中,当需要容器镜像时,则从Docker Registry中下载镜像,并通过镜像管理驱动graphdriver将下载镜像以Graph的形式存储;当需要为Docker创建网络环境时,通过网络管理驱动networkdriver创建并配置Docker容器网络环境;当需要限制Docker容器运行资源或执行用户指令等操作时,则通过execdriver来完成。而libcontainer是一项独立的容器管理包,networkdriver以及execdriver都是通过libcontainer来实现具体对容器进行的操作。
    当执行完运行容器的命令后,一个实际的Docker容器就处于运行状态,该容器拥有独立的文件系统,独立并且安全的运行环境等。

  4. Docker环境搭建
    Docker官方建议运行在linux内核为3.8及更高版本,所以本文将以centos7系统为例。
    这里写图片描述
    使用centos7新式 systemd 语法启动并检查docker服务:

    systemctl start docker.service
    systemctl enable docker.service

    拉取ubuntu镜像

    docker pull ubuntu

    查看镜像列表

    docker images

    启动运行ubuntu镜像

    docker run -it docker.io/ubuntu /bin/bash

    这样就启动成功了一个容器,但注意是前台启动,exit后就退出了

    这里写图片描述

  5. Docker常用命令
    查看所有的容器

    docker ps -a

    使用exec进入容器交互环境

    docker exec -it 39f9155fa3de /bin/bash

    查看该容器日志

    docker logs 39f9155fa3de

    启动,停止,重启容器

    docker start/stop/restart <containerID>

    查看容器信息

    docker inspect <containerID>  

    删除容器

    docker rm <containerID>

    删除镜像

    docker rmi <imageID>

    将容器的状态保存为镜像

    docker commit <containerID> <自定义镜像名称>

    杀死所有正在运行的容器

    docker kill $(docker ps -a -q)

    删除所有已经停止的容器

    docker rm $(docker ps -a -q)

    删除所有未打 dangling 标签的镜像

    docker rmi $(docker images -q -f dangling=true)

    查找你需要的Docker镜像列表

    docker search mysql

    容器转换为文件

    docker export <containerID> > /home/export.tar

    镜像转换为文件

    docker save <imageID> > /home/save.tar

    文件转换为镜像

    docker load < /home/save.tar
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值