docker

decker是什么

Docker 最初是 dotCloud 公司创始人 Solomon Hykes 在法国期间发起的一个公司内部项目,它是基于 dotCloud 公司多年云服务技术的一次革新,并于 2013 年 3 月以 Apache 2.0 授权协议开源,主要项目代码在 GitHub 上进行维护。Docker 项目后来还加入了 Linux 基金会,并成立推动 开放容器联盟(OCI)。

Docker 自开源后受到广泛的关注和讨论,至今其 GitHub 项目已经超过 4 万九千个星标和一万多个 fork。甚至由于 Docker 项目的火爆,在 2013 年底,dotCloud 公司决定改名为 Docker。Docker 最初是在 Ubuntu 12.04 上开发实现的;Red Hat 则从 RHEL 6.5 开始对 Docker 进行支持;Google 也在其 PaaS 产品中广泛应用 Docker。
Docker 使用 Google 公司推出的 Go 语言 进行开发实现,基于 Linux 内核的 cgroup,namespace,以及 AUFS 类的 Union FS 等技术,对进程进行封装隔离,属于 操作系统层面的虚拟化技术。由于隔离的进程独立于宿主和其它的隔离的进程,因此也称其为容器。最初实现是基于 LXC,从 0.7 版本以后开始去除 LXC,转而使用自行开发的 libcontainer,从 1.11 开始,则进一步演进为使用 runC 和 containerd。

Docker 在容器的基础上,进行了进一步的封装,从文件系统、网络互联到进程隔离等等,极大的简化了容器的创建和维护。使得 Docker 技术比虚拟机技术更为轻便、快捷。

下面的图片比较了 Docker 和传统虚拟化方式的不同之处。传统虚拟机技术是虚拟出一套硬件后,在其上运行一个完整操作系统,在该系统上再运行所需应用进程;而容器内的应用进程直接运行于宿主的内核,容器内没有自己的内核,而且也没有进行硬件虚拟。因此容器要比传统虚拟机更为轻便。
在这里插入图片描述

docker思想

传统的方式中,在服务器中搭建一个常见的 LAMP(Linux+Apache+Mysql+PHP)网站的步骤:

下载安装 Apache,Mysql 和 PHP 以及其它的相关依赖环境。
分别进行配置和测试。
整合到一起进行功能测试。
这种方式操作枯燥繁琐,将不同的软件集成起来的过程中有很多不可控的风险,最无法忍受的是,一旦需要重新迁移服务器或者重新部署一套环境,这样的琐碎和无趣的“体力活”还将重新执行一遍。

针对这个问题,以前我们通常用虚拟机集成部署好一套环境,然后做成一个虚拟机模版来解决。不过这种方式有资源利用率低,灵活性差和迁移平台限制等问题。例如,我们想要的仅仅是一个 LAMP 环境,但是用这种方式却必须集成打包一个完整的操作系统(每个虚拟机需要单独分配独占的内存,磁盘等资源)。此外,这样打包后的一套 LAMP 环境中,软件之间版本依赖性强,很难进行变更更新。最后,通常这样的虚拟机还需要绑定特定的虚拟化管理程序来管理,这样对于迁移的平台就有了限制。

如今,Docker 通过对 Linux 容器技术 LXC(Linux Containers)等进一步优化,提供了各种容器管理工具,通过容器来管理应用,这样便可以达到 “ Build Once, Works Everywhere ” 的目的。也就是说对于开发和部署来说,使用 Docker 可以:

更快速的交付和部署应用环境。
更高效的资源利用率。
更便捷的迁移和扩展性。
更便捷的应用更新管理。

docker常用指令

docker images:查看已经安装的 docker 镜像。
docker image rm image_id:删除镜像。
docker pull:获取镜像。
docker search:从仓库查找镜像文件。
docker exec –it fID bash:进入 docker 容器内部。

docker run:运行 docker 镜像。
docker ps:查看运行容器进程。
docker run –d:在后台运行 docker 镜像。
docker run –p:3306:3306 端口映射。
docker stop ID:停止正在运行的容器。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值