linux docker初探

由于我也是刚接触这个,所以记录的都是一些操作性的东西。

由于这几天找工作的需要复习一下自己以前学习过的hadoop,自己想从新搭建一个hadoop集群,顺便再从新学习一下,自己以前学的真是太水了。但是苦于自己没有这么多机器,电脑也是linux,开虚拟机又觉得卡,所以想到使用docker。或许大家会想docker不就是提供这种虚拟化服务的吗?和虚拟机不是一样吗?我刚开始也是这么想的,但是看了一下别人的博客,发现原来docker是一个轻量级虚拟化程序,其实我也是不太了解,今天记录的主要目的是开启自己在这个模块的学习。untu

借用别人举得一个例子,docker中的镜像和容器这两个概念其实就是类与对象,我们可以使用一个镜像来创建多个容器,这些容器就是对象,而镜像就是类,这个比喻我觉得还是比较通俗易懂的。

其中docker又包含三个主要的组件:
A: Docker Client 是用户界面,它支持用户与Docker Daemon之间通信。这个其实就可以理解为我们安装的镜像文件-容器。
B: Docker Daemon运行于主机上,处理服务请求。这个就是我们在linux上安装的docker程序,用于接收容器的请求。
        C: Docker Index是中央registry,支持拥有公有与私有访问权限的Docker容器镜像的备份。


另外docker还包括三个基本要素:

 A:  Docker Containers负责应用程序的运行,包括操作系统、用户添加的文件以及元数据。
 B:  Docker Images是一个只读模板,用来运行Docker容器。
C:  DockerFile是文件指令集,用来说明如何自动创建Docker镜像。


docker安装:   直接使用apt提供的包进行安装就可以了

sudo apt install docker engine;

然后监测一下docker是否安装成功:

docker version

安装完成之后我们就可以下载镜像文件了:下载镜像文件可以从docker的镜像库中进行下载,里面提供了很多的镜像文件,操作类似与git。

下载: sudo docker pull ubuntu:15.10即可从官方下载ubuntu15.10的镜像文件

安装完成之后我们就可以通过docker images命令查看我们的docker中原有的镜像文件:

REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
master              latest              50db828e1a40        11 hours ago        140.8 MB
ubuntu              15.10               9b9cb95443b5        8 weeks ago         137.2 MB
ubuntu              master              9b9cb95443b5        8 weeks ago         137.2 MB
hello-world         latest              c54a2cc56cbb        11 weeks ago        1.848 kB
现在我们已经有了docker和镜像文件:我们如何实例化出另外的机器呢?

我们通过命令docker run -it ubuntu:15.10 即可运行我们的镜像,其实是实例化了一个镜像,实例化为一个容器:通过docker ps -a我们就可以看到刚才我们实例化的容器

CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                    PORTS               NAMES
b51d5e1f52e7        ubuntu:15.10        "/bin/bash"         About an hour ago   Up About an hour                              agitated_roentgen
c51eda80913e        hello-world         "/hello"            13 hours ago        Exited (0) 13 hours ago                       focused_mahavira
这样我们就虚拟化出了一台主机,我们可以在上面进行一些操作,但是现在是没有任何软件的ubuntu,甚至连vim都没有,我们需要下载。首先需要更新apt本地库,apt update。然后我们才能开始下载。安装完成vim,注意这里已经安装完成了。

当我们兴致勃勃的以为已经完成大业的时候,我们退出了这个容器。党我们第二次使用docker run -it  ubuntu:15.10启动的时候,我们发现有没有vim工具了。这是为什么?难道是docker加载之后会自动清空。但是使用docker ps -a 发现又多出了一个容器。

这是为什么:其实是这样的,docker下载的镜像其实是一个只读的文件,我们在创建容器的时候可以看做只是对镜像创建了它的一个副本,或者说是添加了它的改动层,这样更加恰当。每一次运行都创建一个单独的改动层,并且每一个改动层之间相互隔离。所以我们不能看到第一个改动层安装的vim。

那么是不是意味着我们需要为每一个容器都下载一边这些公用的工具呢?

其实并不是,docker不光给我们提供了下载镜像,创建容器的方法,还给我们自己创建镜像的操作,我们可以根据自己的容器来创建一个镜像,那么这个镜像就包含了我们安装的工具,这样我们再使用这个镜像来创建容器,这些新建的容器中就能包含我们的工具了。操作如下:


A.我们首先运行我们原来创建的包含vim的容器:docker start -ai agitated_roentgen  就可以运行我们的容器,其中命令中的a表示将容器的输出导出到终端,i表示进行交互式的操作。agitated_roentgen是容器的名称,我们再创建的时候也可以指定这个名称。

B. 然后我们将我们的容器进行保存,方法是: docker commit -a "Jordan Bach" -m "saved my message" insane_wright hadoop_docker:v0.0.1  其中参数:a指的是作者    m指的是信息     insane_wright指的是我们的容器     hadoop_docker是我们新镜像的名称    :v0.0.1是版本号   这样我们就将我们的容器打成了一个镜像

C. 接下来我们就将我们的镜像进行实例: 通上面的方法: docker run -it  --name  name +镜像的id ;这里的--name是我们想要给容器取的名字,镜像的id就是我们的镜像的id


这样我们大多数的操作就完成了。接着就是实例化多个容器,给不同的容器添加上name,接着添加ssh认证。就完成了我们使用docker创建hadoop集群的第一步。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值