代销福利彩票的条件|dj东京娱乐登录网
   3个月前 (08-22) 网友投稿  Docker
文章评分 0 次,平均分 0.0

大白话Docker入门(一)

随着docker现在越来越热门,自己也对docker的好奇心也越来越重,终于忍不住利用了一些时间把docker学习一遍。目前的资料不少,但是由于docker的发展较快,每个团队对docker的关注点也并不相同,大部分的文章还是不够完整和易懂,所以希望有这样一篇文章能让大家通过简单的阅读来客观全面的?#40092;?#19968;下docker。

(提前申明一下,文章内容?#25442;?#28041;及较深入的使用,主要为了阐述docker的概念和入门的使用。并且我也是docker的初学者,并没有过丰富的使用经验,所?#38405;?#23481;若有不妥,请大家指正,希望能在日后不?#31995;?#23436;善。)

先简单?#40092;?#19968;下Docker

Docker由下面几样东西组成,先简单?#40092;?#19968;下吧

Docker Client?: Docker提供给用户的客户端。Docker Client提供给用户一个终端,用户输入Docker提供的命令来管理本地或者远程的服务器。

Docker Daemon?: Docker服务的守护进程。每台服务器(物理机或虚机)?#29616;?#35201;安装了Docker的环境,基本上?#22242;?#20102;一个后台程序Docker Daemon,Docker Daemon会?#37038;誅ocker Client发过来的指令,并对服务器的进行具体操作。

Docker Images?: 俗称Docker?#26408;?#20687;,这个可?#35759;?#20102;。你暂时可以认为这个就像我们要给电脑装系统用的系统CD盘,里面有操作系?#36710;?#31243;序,并?#19968;?#26377;一些CD盘在系?#36710;?#22522;础上安装了必要的软件,做成的一张?“只读”?的CD。

Docker Registry?: 这个可认为是Docker Images的仓库,就像git的仓库一样,用来管理Docker镜像?#27169;?#25552;供了Docker镜像的上传、下载和浏览等功能,并且提供安全的账号管理可以管理只有自己可见的私人image。就像git的仓库一样,docker也提供了官方的Registry,叫做Dock Hub(http://hub.Docker.com)

Docker Container?: 俗称Docker的容器,这个是最关键的东西了。Docker Container是真正跑项目程序、消耗机器?#35797;础?#25552;供服务的地方,Docker Container通过Docker Images启动,在Docker Images的基础上运?#24515;?#38656;要的代码。?你可以认为Docker Container提供了系统硬件环境,然后使用了Docker Images这些制作好的系统盘,再?#30001;?#20320;的项目代码,跑起来就可以提供服务了。?听到这里,可能你会觉得是不是有点像一个VM利用保存的备份或者快照跑起来环境一样,其实是挺像?#27169;?#20294;是实际?#40092;?#26377;本质的区别,后面?#19968;?#32454;说。

大白话Docker入门(一)

Docker是怎么玩?#27169;?/h3>

一下接触这么多东西肯定有一点点晕了吧,没关系,我们把这些串起来走一遍就会好了。

首先你得安装一下docker的环境,这个我在这里就不说了,针?#38405;?#30340;系统看一下docker的官网(?http://www.docker.com/products/docker?) 吧。

安装好后,我们在terminal中就有了docker的命令了,这个命令就是Docker Client?#30149;?#25152;有的操作都是通过docker命令完成的。?#28909;??docker version

ruideMacBook-Pro:~ ruihuang$ docker version
Client:
 Version:      1.12.1
 API version:  1.24
 Go version:   go1.7.1
 Git commit:   6f9534c
 Built:        Thu Sep  8 10:31:18 2016
 OS/Arch:      darwin/amd64
Server:
 Version:      1.12.1
 API version:  1.24
 Go version:   go1.6.3
 Git commit:   23cf638
 Built:        Thu Aug 18 17:52:38 2016
 OS/Arch:      linux/amd64

查看一下我们拥有了哪些images吧,命令:?docker images

ruideMacBook-Pro:~ ruihuang$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED
job1                latest              de714ebe3a54        29 hours ago
ubuntu              latest              f753707788c5        3 weeks ago
busybox             latest              e02e811dd08f        4 weeks ago

可以看到我们拥有3个images,其中ubuntu大家都知道,busybox是一个linux下的大工具箱,它集成压缩了 Linux 的许多工具和命令,而job1则是我自己基于busybox创建的一个image,可以通过busybox的工具进行一些命令的执行,?#28909;?echo 'hello world'。

再查看一下我们?#24515;?#20123;Docker Container吧,命令:?docker ps

ruideMacBook-Pro:~ ruihuang$ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED
2c08ddb62c77        ubuntu              "/bin/bash"         28 hours ago
5aa853bdb033        ubuntu              "/bin/bash"         28 hours ago

这里看到的都是正在运行的Container,如果要查看所有的Container就使用?docker ps -a

下面我们从Docker hub的Registry下载一个Image,命令:?docker pull image-name

再看一下现在images,命令:?docker images

ruideMacBook-Pro:~ ruihuang$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED
job1                latest              de714ebe3a54        30 hours ago
ubuntu              latest              f753707788c5        3 weeks ago
busybox             latest              e02e811dd08f        4 weeks ago
hello-world         latest              c54a2cc56cbb        4 months ago

我们看到刚才我们从docker hub上面下载了一个docker官方已经制作好的叫做hello-world的image,下载完成后,就在本地可以查看到这个image了。

我们把hello-world的image,放到一个docker container里面让他跑起来吧。命令??docker run image-name

ruideMacBook-Pro:~ ruihuang$ docker run hello-world
Hello from Docker!
This message shows that your installation appears to be working correctly.
To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
 3. The Docker daemon created a new container from that image which runs the executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it  to your terminal.

这个image运行后很简单,就是打印了这段话。告诉了我们,我们已经成功的让docker daemon从docker hub上拉了一个"hello-world"的image,并且通过这个image创建了一个container,并且通过daemon将输出的内容传回了docker client,也就是我们现在看到的这段话。

我们最后再看一下是否真的创建了docker container,命令?docker ps -a

ruideMacBook-Pro:~ ruihuang$ docker ps -a
CONTAINER ID  IMAGE        COMMAND    CREATED            STATUS
3d9b24449cb3  hello-world  "/hello"  9 minutes ago     Exited (0) 9 minutes ago
c08ddb62c77    ubuntu  "/bin/bash"  28 hours ago       Up 28 hours

首先看到,确实已经创建了docker container了,可见?docker run??的命令实际?#40092;莄reate 和 start的结合命令,基于hello-world的image创建并启动了container。container启动后执行了打印的程序,打印完上面我们看到的那句话,程序执行完成,container也跟着关闭了。从STATUS可以看出,在9分钟前hello-world的这个container已经exited了。

思考一下

这里我们可以想象一下,这个hello-world里面到底有什么?前面我也说了,其实一个image就是一个系统盘?#30001;?#20320;的代码,所以对于这个hello-world的image,我想里面就是一个busybox这样的命令工具箱和一个打印文本(echo ....)的个sh文件,当image加载后执行了这个sh文件这么简单。

那么再思考一下,如果要我去创建这个image,我也可?#38405;?#19968;个ubuntu的image,并且安装了jre,再写一个class,main方法里面打印这段文本,最后build成这一个image,上传到docker hub。是不是也是一个hello-world-for-java的image呢。其它人下载后也可以一样的打印出预期的结果。

小结

好?#36865;?#36807;这个简单的演示,希望大家已经初步?#40092;?#20102;docker是怎么运作的。下面我们再来聊docker的概念和他可以为我们带?#35789;?#20040;吧。




//下面这个css和插件后台设置的主题有关系,如果需要换样式,则需要修改以下CSS名称

  
 

除特别注明外,本站所有文章均为铁匠运维网原创,转载请注明出处来自http://www.uryjp.tw/24622.html

切换注册

登录

忘记密码 ?

您也可以使用第三方帐号快捷登录

切换登录

注册

扫一扫二维码分享
代销福利彩票的条件 双色球开奖复式如何计奖 双色球投注站编号 福建11选5走势图表 排列三走势图彩吧助手 黑龙江十一选五自助 九乐棋牌游戏官方下载 湖南福彩中奖者未领 浙江11选5计划软件 贵州茅台股票分析结论 青海11选5任8预测