Docker入门

Docker 是 Golang 编写的, 自 2013 年推出以来,受到越来越多的开发者的关注。如果你关注最新的技术发展,那么你一定听说过 Docker。不管是云服务还是微服务(Microservices),越来越多的厂商都开始基于 Docker 作为基础设施自动化的工具。那么什么是 Docker?Docker与传统的虚拟机有什么区别?为何要采用 Docker?如何使用 Docker?

本文,就针对上述提到的问题,来简单介绍下 Docker。

什么是 Docker

Docker 是开源的应用容器引擎。

Docker 可以让你将所有应用软件以及它的以来打包成软件开发的标准化单元。

Docker 容器将软件以及它运行安装所需的一切文件(代码、运行时、系统工具、系统库)打包到一起,这就保证了不管是在什么样的运行环境,总是能以相同的方式运行。就好像 Java 虚拟机一样,“一次编写,到处运行(Write once, run anywhere)”,而 Docker 是“一次构建,到处运行(Build once,run anywhere)”。

aaarticlea/jpeg;base64,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tOjGDuNRFjUKihVHQAYp1FFQahRRRQAtFFFAwooooASiiigAooooAKKKKACiiigAooooAKKKKACiiigD5g/aO/5KFp//AGCo/wD0bLRR+0d/yULT/wDsFR/+jZaKAPqCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooASiiigAooooAKKKKACiiigCpqOnWmqWjW15AksTdVYZriLzRdV8NN5lpv1DS88xkkywj2PJf6cV6FRgEc00yZxUlZnn9lf22oRebbSq6jhhn5lPoR2NWaua54Ojupzf6VN9hvhz8q/JJ7MvTn1xWDFqMkNytjq0Qs7wnCg/ck91P+OKtM5J0nFaGjXMeMf+YT/1+p/MV09cx4x/5hP/AF+p/MUzM15P9W/+6a5zw7c2mp+H3soZVd0UpJjoGOa3b6zS/spLWVmWOQYbacE1Whg03w/p+yMJBAv5t/iadzP0GaJYXGm6altczid1+63ovYVI9+0ko0/SbY3d5nHlqR5cZ/2iPu/jU+m6Tq/iV9219O0tjzIw/ezD6dMH1zmu/wBJ0Ow0S1EFlAqAdXPLsfc9TUuVjopUL6yOc0fwQgmW+1uQXd0DlYsfuo/+A8gn3rsqMUtQ3c64xUVZC0UUUigooooAKKKKACiiigAooooASiiigAooooAKKKKACiiigAooooAKKKKACiiigD5g/aO/5KFp/wD2Co//AEbLRR+0d/yULT/+wVH/AOjZaKAPqCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooASiiigAooooAKKKKACiiigAooooAKoatpFlrNm1tewLIh6ZHKn1FX6KAPOL3TtV8L/MxfUdMyAJM5kiH+16j6CsHxReQXkOkS28gkQ3seCDyOR19K9kKgjBAI9DXEa98MtH1q8juIpZrErIJHS3JVWIOc4BGD71VzCVG7ujBk1CSa8+xaXAby76jb91Pcnp+Gc10ui+ClinS/1qX7bfLyi/8ALOL/AHR1/PNdDpOj2Oi2v2exgSJOrED5nPqT3NX6G7hGlGLuAAAwBgUtFFI2uhaKKKQwooooAKKKKACiiigAooooAKKKKAEooooAKKKKACiiigAooooAKKKKACiiigAooooA+YP2jv8AkoWn/wDYKj/9Gy0UftHf8lC0/wD7BUf/AKNlooA//9kA" alt="img">

Docker 是一种“容器即服务”(Docker Containers as a Service ,简称 CaaS),使得开发和IT运营团队可以对于应用的构建、发布、运行更加敏捷和可控。

概括的说: Docker 是为开发人员和系统管理员用于构建、发布、并运行分布式应用程序的开放式平台。该平台由 Docker 引擎(一个便携、轻巧的运行时和打包工具) 和 Docker Hub (一个共享应用程序和自动化工作流的云服务)等组成。Docker 可以使应用程序从组件迅速组装并消除了开发、质量保证和生产环境之间的摩擦问题。这样一来,IT部门可以更快地发布,而这些应用程序不管是运行在笔记本电脑、数据中心的虚拟机,还是任何的云,其运行过程和结果都是一致的。

我们再来看下 Docker 的 Logo 。很明显,这是一只鲸鱼,它托着许多集装箱。我们可以把宿主机可当做这只鲸鱼,把相互隔离的容器可看成集装箱,每个集装箱中都包含自己的应用程序。这 Logo 简直的太形象了!

Docker 的优点

  • 轻量级:所有容器在一台机器上共享同一个操作系统内核,这样他们立即开始,并更有效地利用内存。Image 是从分层文件系统的构建,这样他们能够共享公共文件,使得磁盘使用率和 Image 的下载更加高效。
  • 开放:Docker 容器是基于开发的标准,允许容器运行在主流的 Linux 发布版和 Microsoft 操作系统作为所有的基础设施。
  • 安全:容器使得应用程序彼此隔离,而基础架构同时为应用程序提供了额外的保护层。

Docker 与 虚拟机的区别

容器与虚拟机有着类似的资源隔离和分配的优点,但不同的架构方法使容器能够更加便携,高效等。

虚拟机的架构

每个虚拟机都包括应用程序、必要的二进制文件和库以及一个完整的客户操作系统(Guest OS),尽管它们被分离,它们共享并利用主机的硬件资源,将近需要十几个 GB 的大小。

容器的架构

容器包括应用程序及其所有的依赖,但与其他容器共享内核。它们以独立的用户空间进程形式运行在主机操作系统上。他们也不依赖于任何特定的基础设施,Docker 容器可以运行在任何计算机上,任何基础设施和任何云上。

Docker 的容器利用了 LXC,管理利用了 namespaces 来做权限的控制和隔离,cgroups 来进行资源的配置,并且还通过 aufs 来进一步提高文件系统的资源利用率,而这些技术都不是 Docker 独创。

LXC

LXC 与虚拟机的不同之处在于,它是一个操作系统级别的虚拟化环境,而不是硬件虚拟化环境。他们都做同样的事情,但 LXC 是操作系统级别的虚拟化环境,虚拟环境有它自己的进程和网络空间,而不是创建一个完整成熟的虚拟机。因此,一个 LXC 虚拟操作系统具有最小的资源需求,并启动只需几秒钟。

正如你可以在下图中看到的,左侧是 LXC 虚拟的 Ubuntu ,默认安装使用 11 MB 大小。

Docker 与 Microservices 的关系

Microservices(微服务) 依赖于“基础设施自动化”,而 Docker 正是“基础设施自动化”的利器。可以说 Docker 的火爆,一定程度上也带动了微服务架构的兴起,而微服务的广泛应用也促进了 Docker 繁荣。可以说两者相辅相成。

有关微服务的介绍,可以移步至《简述 Microservices(微服务)》。

http://www.importnew.com/24651.html

为什么要用 Docker

开发更加敏捷:Docker 让开发人员可以自由定义环境,创建和部署的应用程序更快、更容易,IT 运维人员快速应对变化也更加灵活性。

  • 更加可控:Docker 使得开发人员保存从基础设施到应用的代码,帮助 IT 运维人管理拥有标准的、安全的、可扩展的操作环境。
  • 高可移植性:Docker 允许自由选择,可以是从笔记本电脑到一个团队,从私人基础设施到公共云提供商。

这样,你可以专注于开发应用,其他的繁琐事交给 Docker 去做吧。

如何使用 Docker

这可真是一个大话题,如果完整阐述足够写一本书了。好在我们的目的是做入门普及,因此我们就简单讲一下 Docker 的安装、基本使用和常用命令。

Docker安装

建议在linux环境下安装Docker,window环境搭建比较复杂且容易出错,使用Centos7+yum来安装Docker环境很方便。

Docker 软件包已经包括在默认的 CentOS-Extras 软件源里。因此想要安装 docker,只需要运行下面的 yum 命令:

yum install docker

安装完成后,使用下面的命令来启动 docker 服务,并将其设置为开机启动:

service docker start
chkconfig docker on

LCTT 译注:此处采用了旧式的 sysv 语法,如采用CentOS 7中支持的新式 systemd 语法,如下:

service docker start
chkconfig docker on

测试

docker version

输入上述命令,返回docker的版本相关信息,证明docker安装成功。

Hello World镜像初试

下面,我们通过最简单的 image 文件"hello world",感受一下 Docker。

因为国内连接 Docker 的官方仓库很慢,因此我们在日常使用中会使用Docker 中国加速器。通过 Docker 官方镜像加速,中国区用户能够快速访问最流行的 Docker 镜像。该镜像托管于中国大陆,本地用户现在将会享受到更快的下载速度和更强的稳定性,从而能够更敏捷地开发和交付 Docker 化应用。

Docker 中国官方镜像加速可通过 registry.docker-cn.com访问。该镜像库只包含流行的公有镜像,私有镜像仍需要从美国镜像库中拉取。

修改系统中docker对应的配置文件即可,如下:

vi /etc/docker/daemon.json
#添加后
{
"registry-mirrors": ["https://registry.docker-cn.com"],
"live-restore": true
}

运行下面的命令,将 image 文件从仓库抓取到本地。

docker pull library/hello-world

上面代码中,docker image pull是抓取 image 文件的命令。library/hello-world是 image 文件在仓库里面的位置,其中library是 image 文件所在的组,hello-world是 image 文件的名字。

抓取成功以后,就可以在本机看到这个 image 文件了。

docker images

#显示结果
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/hello-world latest f2a91732366c 3 months ago 1.848 kB

现在,运行这个 image 文件。

docker run hello-world
#显示结果
Hello from Docker!
This message shows that your installation appears to be working correctly.

输出这段提示以后,hello world就会停止运行,容器自动终止。有些容器不会自动终止,因为提供的是服务,比如Mysql镜像等。

常用命令

除过以上我们使用的Docker命令外,Docker还有一些其它常用的命令。

拉取docker镜像

docker pull image_name

查看宿主机上的镜像,Docker镜像保存在/var/lib/docker目录下:

docker images

删除镜像

docker rmi docker.io/tomcat:7.0.77-jre7 或者 docker rmi b39c68b7af30

查看当前有哪些容器正在运行

docker ps

查看所有容器

docker ps -a

启动、停止、重启容器命令:

docker start container_name/container_id
docker stop container_name/container_id
docker restart container_name/container_id

后台启动一个容器后,如果想进入到这个容器,可以使用attach命令:

docker attach container_name/container_id

删除容器的命令

docker rm container_name/container_id

查看当前系统Docker信息

docker info

从Docker hub上下载某个镜像:

docker pull centos:latest

执行docker pull centos会将Centos这个仓库下面的所有镜像下载到本地repository。

Docker入门-笔记-1的更多相关文章

  1. Docker入门笔记

    Docker入门笔记 随笔记录初学Docker遇到的问题, 以免下次再犯. 本机系统Ubuntu18.04 安装 Docker有2个版本 Community Edition (CE) 社区版(免费) ...

  2. Docker入门笔记(1)

    Docker入门笔记(1) 1.安装Docker yum -y install docker-ce 2.查看Docker版本 [root@localhost ~]# docker -v Docker ...

  3. Centos7——docker入门(笔记)

    docker 入门(笔记) 一.Docker是什么? 官方原话: Docker provides a way to run applications securely isolated in a co ...

  4. Docker 入门笔记

    Docker 可以理解为一个轻量化的虚拟机, 启动速度快,本身占的资源小 [重要], 容器里是不能保存数据的,容器只要一停止, 所有的数据都会丢失,所以如果重要的数据, 都需要通过配制,把数据保存在 ...

  5. 笔记 docker入门笔记

    安装sudo apt-get remove docker docker-engine docker-ce docker.iosudo apt-get updatesudo apt-get instal ...

  6. Docker入门笔记(Centos7)

    centos7 wget https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo vim docker-c ...

  7. docker入门与部署微服务--学习笔记

    最近公司进一步去windows,走向 linux+云化. 原来的一大坨windows虚拟机服务器都要转向linux, 既然走向linux的话,那么docker肯定是要涉足的. 故学习了docker入门 ...

  8. docker学习笔记1 -- 安装和配置

    技术资料 docker中文官网:http://www.docker.org.cn/ 中文入门课程:http://www.docker.org.cn/book/docker.html docker学习笔 ...

  9. Docker入门命令

    Edit Docker入门命令 # 安装镜像sudo docker pull ubuntu:12.04# 镜像列表sudo docker images# 运行镜像sudo docker run -t ...

随机推荐

  1. Android性能优化总结

    合理的管理内存 节制地使用Service,尽量使用IntentService 避免在Bitmap上浪费内存,压缩图片处理 谨慎使用抽象编程 尽量避免会用依赖注入框架 使用ProGuard简化代码,好处 ...

  2. requests请求库练习--GitHub登录

    # coding = utf-8 """ 结合抓包工具,采用两种方法模拟登录github直接利用session登录和利用requests登录 ""&q ...

  3. 盒模型 | CSS权重 | CSS层叠

    span{ color:red;} *{ font-family:"楷体";line-height:2em; font-size:18px;} 盒模型 CSS定义所有的元素都可能拥 ...

  4. JavaScript实战实例剖析——(激励倒计时日历)

    如今JavaScript在前端开发中的地位越来越高,掌握JavaScript的深度往往能决定你职业道路深远,这次通过制作 带着倒计时功能的激励日历的小实例,进一步细致的掌握JavaScript的语法与 ...

  5. PowerMock学习(十)之Mock spy的使用

    前言 回顾下之前学过的内容,会发现一点,如果在mock后不写when和thenReturn去指定,即便是mock调用任何方法,什么也不会做,也看不到什么效果. 划重点的时候来了,本身mock出来的对象 ...

  6. 本地搭建的gitbook添加导航折叠插件

    如果有多个目录,Gitbook在浏览器上打开时,默认所有的目录都会打开,当目录比较多时,全部显示不利于阅读. 可以使用插件配置目录折叠,使得打开浏览器时这些目录默认是关闭的. 在执行gitbook i ...

  7. svn+apache搭建版本控制服务器

    Centos7(linux)搭建版本控制服务器(svn+apache) 1.简介: 版本控制服务器: 版本控制(Revision control)是一种软体工程技巧,籍以在开发的过程中,确保由不同人所 ...

  8. 基于Quartz.NET框架的任务计划管理工具

    最近接到一个小需求 ——可以定期同步20个Sql Server 7.0数据库里的数据(数据量会预计>10000),并保存为CSV格式文件 ——可以设置保存文件数据量 ——该应用需要用WinFor ...

  9. Python 中如何实现参数化测试?

    Python 中如何实现参数化测试? 之前,我曾转过一个单元测试框架系列的文章,里面介绍了 unittest.nose/nose2 与 pytest 这三个最受人欢迎的 Python 测试框架. 本文 ...

  10. python 协程与go协程的区别

    进程.线程和协程 进程的定义: 进程,是计算机中已运行程序的实体.程序本身只是指令.数据及其组织形式的描述,进程才是程序的真正运行实例. 线程的定义: 操作系统能够进行运算调度的最小单位.它被包含在进 ...