登录  | 加入社区

黑狼游客您好!登录后享受更多精彩

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

查看: 452|回复: 0

高中生也能读懂的Docker入门教程

[复制链接]

180

主题

180

帖子

0

现金

黑狼菜鸟

Rank: 1

积分
0
发表于 2019-1-17 03:38:57 | 显示全部楼层 |阅读模式 来自 江苏徐州
F113H1H1q3XHikfF.jpg



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)”。


RAeP5VMo77jPJzDa.jpg



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


概括的说: Docker 是为开辟职员和体系管理员用于构建、发布、并运行分布式应用步伐的开放式平台。该平台由 Docker 引擎(一个便携、轻便的运行时和打包工具) 和 Docker Hub (一个共享应用步伐和主动化工作流的云服务)等构成。Docker 可以使应用步伐从组件敏捷组装并消除了开辟、质量包管和生产情况之间的摩擦题目。如许一来,IT部分可以更快地发布,而这些应用步伐不管是运行在条记本电脑、数据中央的假造机,照旧任何的云,其运行过程和效果都是同等的。


我们再来看下 Docker 的 Logo 。很显着,这是一只鲸鱼,它托着很多集装箱。我们可以把宿主机可当做这只鲸鱼,把相互隔离的容器可当作集装箱,每个集装箱中都包罗本身的应用步伐。这 Logo 简直的太形象了!


GDAHAduTZa9ShJov.jpg



Docker 的长处


  • 轻量级:全部容器在一台呆板上共享同一个操纵体系内核,如许他们立刻开始,并更有用地使用内存。Image 是从分层文件体系的构建,如许他们可以或许共享公共文件,使得磁盘利用率和 Image 的下载更加高效。
  • 开放:Docker 容器是基于开辟的尺度,答应容器运行在主流的 Linux 发布版和 Microsoft 操纵体系作为全部的底子办法。
  • 安全:容器使得应用步伐相互隔离,而底子架构同时为应用步伐提供了额外的掩护层。

Docker 与 假造机的区别


容器与假造机有着雷同的资源隔离和分配的长处,但差别的架构方法使容器可以或许更加便携,高效等。


假造机的架构

q21WA6e2MaMIweM8.jpg



每个假造机都包罗应用步伐、须要的二进制文件和库以及一个完备的客户操纵体系(Guest OS),只管它们被分离,它们共享并使用主机的硬件资源,快要必要十几个 GB 的巨细。


容器的架构

kH737d7hp7W9BJhJ.jpg



容器包罗应用步伐及其全部的依靠,但与其他容器共享内核。它们以独立的用户空间历程情势运行在主机操纵体系上。他们也不依靠于任何特定的底子办法,Docker 容器可以运行在任何盘算机上,任何底子办法和任何云上。


Docker 的容器使用了 LXC,管理使用了 namespaces 来做权限的控制和隔离,cgroups 来举行资源的设置,而且还通过 aufs 来进一步进步文件体系的资源使用率,而这些技能都不是 Docker 独创。


LXC

LXC 与假造机的差别之处在于,它是一个操纵体系级别的假造化情况,而不是硬件假造化情况。他们都做同样的事变,但 LXC 是操纵体系级别的假造化情况,假造情况有它本身的历程和网络空间,而不是创建一个完备成熟的假造机。因此,一个 LXC 假造操纵体系具有最小的资源需求,并启动只需几秒钟。


正如你可以在下图中看到的,左侧是 LXC 假造的 Ubuntu ,默认安装利用 11 MB 巨细。


PqiEee4kI7jmhqet.jpg



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 下令:


[size=0em]yum install docker


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


[size=0em]service docker start
chkconfig docker on



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


[size=0em]service docker start
chkconfig docker on



测试


[size=0em]docker version


输入上述下令,返回docker的版本相干信息,证实docker安装乐成。


Hello World


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


由于国内毗连 Docker 的官方堆栈很慢,因此我们在一样平常利用中会利用Docker 中国加快器。通过 Docker 官方镜像加快,中国区用户可以或许快速访问最盛行的 Docker 镜像。该镜像托管于中国大陆,当地用户如今将会享受到更快的下载速率和更强的稳固性,从而可以或许更灵敏地开辟和交付 Docker 化应用。


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


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


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



运行下面的下令,将 image 文件从堆栈抓取到当地。


[size=0em]docker pull library/hello-world


上面代码中,docker image pull是抓取 image 文件的下令。library/hello-world是 image 文件在堆栈内里的位置,此中library是 image 文件地点的组,hello-world是 image 文件的名字。


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


[size=0em]docker images
#表现效果
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/hello-world latest f2a91732366c 3 months ago 1.848 kB



如今,运行这个 image 文件。


[size=0em]docker run hello-world
#表现效果
Hello from Docker!
This message shows that your installation appears to be working correctly.
...



输出这段提示以后,hello world就会制止运行,容器主动停止。有些容器不会主动停止,由于提供的是服务,好比Mysql镜像等。


常用下令


除过以上我们利用的Docker下令外,Docker另有一些别的常用的下令。


拉取docker镜像


[size=0em]docker pull image_name


检察宿主机上的镜像,Docker镜像生存在/var/lib/docker目次下:


[size=0em]docker images


删除镜像


[size=0em]docker rmi docker.io/tomcat:7.0.77-jre7 大概 docker rmi b39c68b7af30


检察当前有哪些容器正在运行


[size=0em]docker ps


检察全部容器


[size=0em]docker ps -a


启动、制止、重启容器下令:


[size=0em]docker start container_name/container_id
docker stop container_name/container_id
docker restart container_name/container_id



背景启动一个容器后,假如想进入到这个容器,可以利用attach下令:


[size=0em]docker attach container_name/container_id


删除容器的下令


[size=0em]docker rm container_name/container_id


检察当前体系Docker信息


[size=0em]docker info


从Docker hub上下载某个镜像:


[size=0em]docker pull centos:latest
docker pull centos:latest



实行docker pull centos会将Centos这个堆栈下面的全部镜像下载到当地repository。

Linux云盘算及运维架构师高薪实战班“2018年12月10日即将开课中,120天打击Linux运维年薪30万,改变速约~~~~


*声明:推送内容及图片泉源于网络,部门内容会有所改动,版权归原作者全部,如泉源信息有误或侵占权益,请接洽我们删除或授权事件。
- 竣事 -


F5OT60pTZQ1QIFtK.jpg

jggcS9x9VdZXEzEz.jpg




上一篇:图文教程|假造机中CentOS体系安装+设置共享文件夹+VMwareTools安装具体教程 ...
下一篇:LinuxCentOS安装教程
您需要登录后才可以回帖 登录 | 加入社区

本版积分规则

 

QQ|申请友链|小黑屋|手机版|Hlshell Inc. ( 豫ICP备16002110号-5 )

GMT+8, 2024-6-2 03:19 , Processed in 0.111245 second(s), 47 queries .

HLShell有权修改版权声明内容,如有任何爭議,HLShell將保留最終決定權!

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表