本文主要介绍Docker的核心及其安装的具体使用。通过示例代码进行了非常详细的介绍,对于大家的学习或者工作都有一定的参考价值。有需要的朋友下面和边肖一起学习。
一、Docker是什么?
(1)Docker是一个在Linux容器中运行应用的开源工具,是一个轻量级的“虚拟机”[br/]
Logo设计成蓝鲸,鲸鱼也算是一个主人。上面的容器可以理解为隔离的容器,每个容器都包含自己的应用程序。
(2)Docker和虚拟机的区别
Docker作为一种轻量级的虚拟化方式,相比传统虚拟机有着明显的优势。
Docker的优势很多,这和 *** 作系统虚拟化本身的特点是分不开的。传统虚拟机需要额外的hypervisor和虚拟机 *** 作系统层,而Docker容器直接在 *** 作系统层虚拟化,
如图所示:
(3)3)Docker的使用场景
现在,开发人员需要能够轻松地创建在云平台上运行的应用程序,而云平台必须与底层硬件分离。同时,他们需要随时随地访问这些资源,而这正是Docker所能提供的。Docker的容器技术可以轻松地为一台主机上的任何应用程序创建一个轻量级、可移植和自给自足的容器。通过这个容器打包应用程序意味着简化了重新部署和调试的琐碎重复任务,大大提高了工作效率。
二。Docker的核心概念和安装
(1)镜像
Docker的图像(mage)是创建容器的基础。类似于虚拟机的快照
可以理解为Docker容器引擎的只读模板。例如,一个映像可以是一个完整的CentOS *** 作系统环境,称为-CentOS
images;它可以是安装了MySQL的应用程序,称为MySQL映像,等等。
(2)集装箱
Dooker的容器是一个从镜像创建的运行实例。它可以被启动、停止和删除。创造的每一个容器都是一个平台,彼此隔离,互不可见,能保证安全。您可以将容器看作一个简单的Linux环境
。Docker使用容器来运行和隔离应用程序。
(3)仓库
Docker存储库用于集中存储图像。创建自己的映像后,可以使用push命令将其上传到公共或私有存储库。这样,当您下次想要在另一台机器上使用这个映像时,您只需要从存储库中将它拉下来。
(4)安装对接器
如果主机有网络,可以直接安装,
配置yum
[root@localhost~]#rm-rf/etc/yum.repos.d/* [root@localhost~]#vim/etc/yum.repos.d/a.repo [aaa] name=asd baseurl=file:///media gpgcheck=0 [root@localhost~]#mount/dev/cdrom/media/ [root@localhost~]#yum-yinstalldocker安装完成后,可以启动Docker,并设置自启动。
[root@localhost~]#systemctlstartdocker [root@localhost~]#systemctlenabledocker Createdsymlinkfrom/etc/systemd/system/multi-user.target.wants/docker.serviceto/usr/lib/systemd/system/docker.service. [root@localhost~]#dockerversion//查看Docker版本 Client: Version:1.13.1 APIversion:1.26 Packageversion:docker-1.13.1-75.git8633870.el7.centos.x86_64 Goversion:go1.9.4 Gitcommit:8633870/1.13.1 Built:FriSep2819:45:082018 OS/Arch:linux/amd64 Server: Version:1.13.1 APIversion:1.26(minimumversion1.12) Packageversion:docker-1.13.1-75.git8633870.el7.centos.x86_64 Goversion:go1.9.4 Gitcommit:8633870/1.13.1 Built:FriSep2819:45:082018 OS/Arch:linux/amd64 Experimental:false分为服务器端和客户端。
三。Docker镜像 *** 作
(1)搜索图像(假设计算机有网络)
[root@localhost~]#dockersearchdhcp INDEXNAMEDESCRIPTIONSTARSOFFICIALAUTOMATED docker.iodocker.io/networkboot/dhcpdSuitableforrunningaDHCPserverforyou...43[OK] docker.iodocker.io/joebiellik/dhcpdDHCPserverrunningonAlpineLinux15[OK] docker.iodocker.io/gns3/dhcpADHCPcontainerforGNS3usingdnsmasq3[OK] docker.iodocker.io/instantlinux/dhcpd-dns-pxeServeDNS,DHCPandTFTPfromasmallAlpi...2[OK] docker.iodocker.io/ictu/dhcpd-tftpddhcpdtftpdcontainer1[OK] docker.iodocker.io/marcelwiget/dhcptesterSimpledhcpclientsimula(2)获取图像。
[root@localhost~]#dockerpulldocker.io/network/dhcpd//下载上面最开头的dhcp另一种方法是插入下载的dhcp。
制作一张光盘,插入主机。
[root@localhost~]#mount/dev/cdrom/media/ [root@localhost~]#cd/media/ [root@localhostmedia]#ls dhcp [root@localhostmedia]#cpdhcp/ [root@localhostmedia]# [root@localhost/]#dockerload<dhcp fccbfa2912f0:Loadinglayer116.9MB/116.9MB e1a9a6284d0d:Loadinglayer15.87kB/15.87kB ac7299292f8b:Loadinglayer14.85kB/14.85kB a5e66470b281:Loadinglayer5.632kB/5.632kB a8de0e025d94:Loadinglayer3.072kB/3.072kB e2e29955c5aa:Loadinglayer12.7MB/12.7MB 12e14fab4dd4:Loadinglayer49.15kB/49.15kB 47bdfd3bbf39:Loadinglayer4.096kB/4.096kB Loadedimage:docker.io/networkboot/dhcpd:latest在本地下载图像。
(3)检查镜像信息。
[root@localhost/]#dockerimages REPOSITORYTAGIMAGEID//镜像IDCREATEDSIZE docker.io/networkboot/dhcpdlatest6f98b6b9b48619monthsago125MB映像的详细信息包括创建时间、系统版本、主机名、域名、用户、卷、标签、 *** 作系统、设备ID和其他信息。
[root@localhost/]#dockertagdocker.io/networkboot/dhcpddhcp:dhcp 第一个dhcp:名称 第二个dhcp:标签(4)删除图像。
[root@localhost/]#dockerrmidhcp:dhcp Untagged:dhcp:dhcp四。码头集装箱 *** 作
容器是Docker的另一个核心概念。简单来说,容器就是一个镜像的运行实例,一个独立的应用程序或一组应用程序及其必要的运行环境,包括文件系统、系统类库、shell环境等。镜像是一个只读模板,容器会给这个只读模板一个额外的可写层。
(1)容器的创建和启动
[root@localhost/]#dockercreate-itdocker.io/networkboot/dhcpd/bin/bash e392026ddd186d01cbd3306acae15f2f197dc9874a84ea241d347c7fe20a0946常见选项:-i表示保持容器的输入打开;-t表示让Docker分配一个伪终端。
[root@localhost/]#dockerps-a\\查看所有容器运行状态 CONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMES e392026ddd18docker.io/networkboot/dhcpd"/entrypoint.sh/b..."AboutaminuteagoCreatedelegant_goldwasser输出信息显示容器的ID号、加载的映像、运行的程序、创建时间、当前状态、端口映射、容器名等。其中状态列被创建以指示当前容器是新创建的并且处于停止状态。
[root@localhost/]#dockerstarte392026ddd18\\启动容器,上面的ID e392026ddd18容器启动后,您可以看到容器状态列已经变为UP,这表明容器已经启动。
(2)集装箱的运营和终止
[root@localhost/]#dockerstop容器的ID号(3)集装箱的进入
[root@localhost/]#dockerexec-ite392026ddd18/bin/bash root@e392026ddd18:/#用户可以通过创建的终端输入命令,并通过exit命令退出容器。
root@e392026ddd18:/#ls bincoreentrypoint.shhomelib64mntprocrunsrvtmpvar bootdevetclibmediaoptrootsbinsysusr root@e392026ddd18:/#exit exit(4)集装箱的进出口
由于容器被最小化,有些命令无法使用,所以需要从容器导出到本地设置,然后再导入到容器中。
导出命令如下所示:
[root@localhost/]#dockerexporte392026ddd18>/etc/dhcp/dhcpd.conf该编号是容器的ID号。
为配置导出dhcp主配置文件,
导入命令如下所示:
[root@localhost/]#dockerimport/etc/dhcp/dhcpd.conf>e392026ddd18(5)容器删除
您可以使用dockerrm命令删除终止的容器。
一个镜像可以包含多个容器。
[root@localhost/]#dockerstope392026ddd18\\先停止 e392026ddd18 [root@localhost/]#dockerrme392026ddd18\\再删除 e392026ddd18 [root@localhost/]#dockerps-a CONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMESV.Docker资源控制
Cgroup,简称Controlgroup,是Linux内核提供的一种限制使用物理资源的机制,主要包括CPU、内存、blkio。下面从以下三个方面来说说Docker是如何使用Cgroup机制进行管理的。
(1)限制CPU使用率
例如,容器60ff4594cc73的CPU使用率设置为20000,CPU使用率限制为20%:
[root@localhost~]#echo20000>/sys/fs/cgroup/cpu/system.slice/docker-60ff4594cc73b5474477636b25b41f16e166a3606aed226522d420d0c296990d.scope/cpu.cfs_quota_us(2)多任务按比例共享CPU
例如,运行三个新建的容器A、B和C,CPU资源比例为1:1:2,可以这样执行:
[root@localhost/]#dockerrun-tid--cpu-shares1024+镜像A [root@localhost/]#dockerrun-tid--cpu-shares1024+镜像B [root@localhost/]#dockerrun-tid--cpu-shares2048+镜像C这就是本文的全部内容。希望对大家的学习有帮助,支持我们。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)