分享

Docker入门实操

 江海报览 2017-12-11

Linux容器作为一类操作系统层面的虚拟化技术成果,旨在立足于单一Linux主机交付多套隔离性Linux环境。

与虚拟机不同,容器系统并不需要运行特定的guest os。相反,容器共享同一套主机操作系统内核,同时利用guest os的系统库以交付必要的系统功能。由于无需借助于专门的操作系统,因此容器在启动速度上要远远优于虚拟机。



上图是经典对比图,左图是传统的虚拟化,属于平台虚拟化(模拟,全虚拟化,半虚拟化)每个虚拟机运行在自己独立完整的操作系统中;右图是容器,与虚拟机不同,容器系统并不需要运行特定的访客操作系统。


 容器能够利用NamespacesSELinuxchroot以及CGroupsLinux内核功能,从而交付一套类似于虚拟机的隔离性环境。Linux安全模块能够确保来自容器的主机设备与内核访问行为受到妥善管理,从而避免入侵活动的发生。除此之外,容器还能够通过其主机操作系统运行多种不同Linux发行版——只要各类操作系统拥有同样的底层CPU架构要求(然而在生产环境中并不能做到真正意义上的完全隔离);


Docker 是开源基于LXC(linux container)的高级容器引擎,基于go 语言开源,使用内核的cgroups(文件系统隔离)及namespace(一种命名方法);请记住Docker是容器引擎,平常我们一般都说Docker 是容器,但是其本质别搞混了。


安装及运行docker


实验环境中的DockerCentOS7.3):

1.           安装

[root@minion ~]# yum -y install docker(注意配置好yum源,使用的是centos自带的yum源


2.           运行:

安装完成以后我们可以使用docker这个命令,同时在上图中我们看到以下信息:此时的Docker 是客户端,有版本,API版本,go 版本等信息,最重要的是最后的提示,此时的Docker Daemon 并未运行

启动docker服务,然后继续查看版本信息,可以看到服务端相关的信息,如下图所示:


3.           查看帮助:


4.   查看本地仓库的镜像:


5.   在DockerHub 上搜索共享镜像:


6.           拉取共享镜像:

在拉取前需要更改/etc/docker/daemon.json(国内访问dockerhub速度你懂得,在这里使用了ustc的镜像加速)

{'registry-mirrors':['https://docker.mirrors.ustc.edu.cn']}


7.           再次查看本地仓库:

像不像git,哈哈。。。


8.           总结:

哈哈,总算是把准备工作搞定了,其实准备工作里有很多细节性的东西,比如docker images 里有tag 标签,我们是可以指定标签名字的,如果使用Docker 私有仓库将会接触很多TAG,可以指定上传镜像TAG及下载镜像TAG;同样我们也可以定制自己的镜像,将一些常用服务做成镜像,那么在下次使用时就再也不用安装及配置啦;Docker 镜像是分层的,类似我们小时候用的字帖;

是的,容器运行需要:仓库、镜像、容器引擎


运行容器


1.        运行一个名字为C1的容器,并获取一个shell



此时我们进入C1 容器的shell 在这里可以执行一些基本命令,

例如我们装一下ip 这个命令


是不是与在宿主机上没有区别呢?


同样我们是不是可以干坏事呢(从docker里面可以直接进入物理机)



2.        离开容器(为什么是离开,如果是退出,那么容器就挂了)

Ctrl+p+q

在这里能看到正在运行的容器,容器的ID 使用的镜像,执行的命令,创建时间以及它的名字


3.        连接正在运行的容器

又进来了!


4.        退出容器

直接从容器退出后,docker ps 已经看不到了,那么使用参数-a即可:


5.        启动一个退出的容器

又活了


6.        使用宿主机停止容器


7.        删除容器

先停止再删除


上面docker rm “ID编号docker rm “name”效果一样

容器已经没有了;


总结:通过这几个命令,已经可以运行,连接,查看,删除容器了,如果想真正使用这些容器,这些远远不够

 

 

四、总结

一向不关于总结,总是想到哪里说到哪里,以上是Docker 的基本命令及操作,通过这些命令我们可以轻易的运行一个容器,并在不使用后销毁,在运行容器的时候你会发现不到很快容器就运行起来了,具体时间看宿主机配置,一般都在1秒左右,和传统虚拟机相比快多啦;

同时,虽然我们已经能够运行容器,但是也存在着问题,端口,服务,存储等等。



    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多