gpt4 book ai didi

Docker的核心及安装的具体使用

转载 作者:qq735679552 更新时间:2022-09-27 22:32:09 33 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章Docker的核心及安装的具体使用由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

一.docker是什么?

(1)docker是在linux容器里运行应用的开源工具,是一种轻量级的“虚拟机” 。

logo设计为蓝色鲸鱼,鲸鱼可以看作为宿主机,上面的集装箱可以理解为相互隔离的容器,每个集装箱中包含自己的应用程序.

Docker的核心及安装的具体使用

(2)docker和虚拟机的区别 。

作为一种轻量级的虚拟化方式,docker 与传统虚拟机相比具有显著的优势.

Docker的核心及安装的具体使用

docker之所以拥有众多优势,与操作系统虚拟化自身的特点是分不开的。传统虚拟机需要有额外的虚拟机管理程序和虛拟机操作系统层,而docker容器是直接在操作系统层面之上实现的虚拟化, 如图:

Docker的核心及安装的具体使用

(3)docker的使用场景 。

现在开发者需要能方便地创建运行在云平台上的应用,必须要脱离底层的硬件,同时还需要任何时间地点可获取这些资源,这正是docker所能提供的。docker 的容器技术可以在一台主机 上轻松为任何应用创建一个轻量级的、可移植的、自给自足的容器。通过这种容器打包应用程序,意味着简化了重新部署、调试这些琐碎的重复工作,极大地提高了工作效率.

二.docker的核心概念及安装 。

(1)镜像 。

docker的镜像(mage) 是创建容器的基础,类似虚拟机的快照 可以理解为是一一个面向docker容器引擎的只读模板。比如,一个镜像可以是一个完整的 centos 操作系统环境,称为-个centos 镜像;可以是一个安装了mysql的应用程序,称为一个mysql镜像,等等.

(2)容器 。

dooker的容器(container) 是从镜像创建的运行实例。它可以被启动、停止和删除。所创建的每一个容器都是相互隔离、互不可见,可以保证安全性的平台。可以把容器看作一个简易版的linux环 境,docker 利用容器来运行和隔离应用.

(3)仓库 。

docker仓库(repository) 是用来集中保存镜像的地方,当创建了自己的镜像之后,可以使用push命令将它上传到公有仓库(public) 或者私有仓库(private), 这样一来当 下次要在另外一台机器上使用这个镜像时,只需要从仓库上拉取下来就可以了.

(4)安装docker 。

主机有网的话可以直接安装, 。

配置yum 。

?
1
2
3
4
5
6
7
8
9
10
[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 -y install docker

安装完成可以启动docker,并设置开机自启 。

?
1
2
3
4
5
[root@localhost ~] # systemctl start docker
 
[root@localhost ~] # systemctl enable docker
 
created symlink from /etc/systemd/system/multi-user .target.wants /docker .service to /usr/lib/systemd/system/docker .service.
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
[root@localhost ~] # docker version //查看docker版本
client:
  version:     1.13.1
  api version:   1.26
  package version: docker-1.13.1-75.git8633870.el7.centos.x86_64
  go version:   go1.9.4
  git commit:   8633870 /1 .13.1
  built:      fri sep 28 19:45:08 2018
  os /arch :     linux /amd64
 
server:
  version:     1.13.1
  api version:   1.26 (minimum version 1.12)
  package version: docker-1.13.1-75.git8633870.el7.centos.x86_64
  go version:   go1.9.4
  git commit:   8633870 /1 .13.1
  built:      fri sep 28 19:45:08 2018
  os /arch :     linux /amd64
  experimental:  false

分为服务端与客户端 。

三.docker镜像操作 。

(1)搜索镜像(前提电脑有网) 。

?
1
2
3
4
5
6
7
8
9
[root@localhost ~] # docker search dhcp
 
index    name                      description                   stars   official  automated
docker.io  docker.io /networkboot/dhcpd          suitable for running a dhcp server for you...  43          [ok]
docker.io  docker.io /joebiellik/dhcpd           dhcp server running on alpine linux       15          [ok]
docker.io  docker.io /gns3/dhcp              a dhcp container for gns3 using dnsmasq     3          [ok]
docker.io  docker.io /instantlinux/dhcpd-dns-pxe      serve dns, dhcp and tftp from a small alpi...  2          [ok]
docker.io  docker.io /ictu/dhcpd-tftpd           dhcpd tftpd container              1          [ok]
docker.io  docker.io /marcelwiget/dhcptester        simple dhcp client simula

(2)获取镜像 。

?
1
[root@localhost ~] # docker pull docker.io/network/dhcpd //下载上面最开头的dhcp

还有一种就是插入已经下载好的dhcp 。

Docker的核心及安装的具体使用

做成光盘插入到主机中 。

?
1
2
3
4
5
6
[root@localhost ~] # mount /dev/cdrom /media/
[root@localhost ~] # cd /media/
[root@localhost media] # ls
dhcp
[root@localhost media] # cp dhcp /
[root@localhost media] #
?
1
2
3
4
5
6
7
8
9
10
[root@localhost /] # docker load < dhcp
fccbfa2912f0: loading layer 116.9 mb /116 .9 mb
e1a9a6284d0d: loading layer 15.87 kb /15 .87 kb
ac7299292f8b: loading layer 14.85 kb /14 .85 kb
a5e66470b281: loading layer 5.632 kb /5 .632 kb
a8de0e025d94: loading layer 3.072 kb /3 .072 kb
e2e29955c5aa: loading layer 12.7 mb /12 .7 mb
12e14fab4dd4: loading layer 49.15 kb /49 .15 kb
47bdfd3bbf39: loading layer 4.096 kb /4 .096 kb
loaded image: docker.io /networkboot/dhcpd :latest

将镜像下载到本地 。

(3)查看镜像信息 。

?
1
2
3
[root@localhost /] # docker images
repository          tag         image id // 镜像 id      created       size
docker.io /networkboot/dhcpd  latest       6f98b6b9b486    19 months ago    125 mb
  • repository: 镜像属于的仓库。
  • tag: 镜像的标签信息,标记同一个仓库中的不同镜像。
  • image id: 镜像的唯一id号,唯一标识了该镜像。
  • created: 镜像创建时间。
  • created: 镜像创建时间。
?
1
[root@localhost /] # docker inspect 6f98b6b9b486 \查看镜像id详细信息

镜像的详细信息中包括创建时间、系统版本.主机名.域名.用户.卷.标签.操作系统.设备id等各种信息.

?
1
2
3
[root@localhost /] # docker tag docker.io/networkboot/dhcpd dhcp:dhcp
第一个dhcp:名称
第二个dhcp:标签

(4)删除镜像 。

?
1
2
[root@localhost /] # docker rmi dhcp:dhcp
untagged: dhcp:dhcp

四.docker容器操作 。

容器是docker的另一一个核心概念,简单来说,容器是镜像的一个运行实例,是独立运行的一个或一组应用及它们所必需的运行环境,包括文件系统、系统类库. shell 环境等。镜像是只读模板,而容器会给这个只读模板一个额外的可写层 。

(1)容器的创建与启动 。

?
1
2
3
[root@localhost /] # docker create -it docker.io/networkboot/dhcpd /bin/bash
 
e392026ddd186d01cbd3306acae15f2f197dc9874a84ea241d347c7fe20a0946

常用选项: -i表示让容器的输入保持打开: -t表示让docker分配一个伪终端.

?
1
2
3
[root@localhost /] # docker ps -a \\查看所有容器运行状态
container id    image             command         created       status       ports        names
e392026ddd18    docker.io /networkboot/dhcpd  "/entrypoint.sh /b..."  about a minute ago  created                 elegant_goldwasser

输出信息显示容器的id号.加载的镜像.运行的程序.创建时间、目前所处的状态、端口映射.容器名称等。其中状态-栏为created表示当前的容器是新创建的并处于停止状态.

?
1
2
[root@localhost /] # docker start e392026ddd18  \\启动容器 ,上面的id
e392026ddd18

容器启动后,可以看到容器状态一栏已经变为up,表示容器已经处于启动状态.

(2)容器的运行与终止 。

?
1
[root@localhost /] # docker stop 容器的id号

(3)容器的进入 。

?
1
2
[root@localhost /] # docker exec -it e392026ddd18 /bin/bash
root@e392026ddd18:/ #

用户可以通过所创建的终端来输入命令,通过exit命令退出容器. 。

?
1
2
3
4
5
root@e392026ddd18:/ # ls
bin  core entrypoint.sh home lib64 mnt proc run  srv tmp var
boot dev  etc      lib  media opt root sbin sys usr
root@e392026ddd18:/ # exit
exit

(4)容器的导出导入 。

容器是最小化,导致一些命令不能使用,所以就要从容器里面导出到本地来设置,设置完再导入进容器就可以.

导出命令如下:

?
1
[root@localhost /] # docker export e392026ddd18>/etc/dhcp/dhcpd.conf

乱数字为容器的id号 。

把dhcp主配置文件导出来配置, 。

导入命令如下:

?
1
[root@localhost /] # docker import /etc/dhcp/dhcpd.conf > e392026ddd18

(5)容器的删除 。

可以使用dockerrm命令将一个已经终止状态的容器进行删除.

一个镜像可以包含多个容器 。

?
1
2
3
4
5
6
[root@localhost /] # docker stop e392026ddd18  \\先停止
e392026ddd18
[root@localhost /] # docker rm e392026ddd18  \\再删除
e392026ddd18
[root@localhost /] # docker ps -a
container id    image        command       created       status       ports        names

五.docker资源控制 。

cgroup是controlgroup的简写,是linux内核提供的一种限制所使用物理资源的机制,这些资源主要包括cpu.内存、blkio。 下面就这3个方面来谈一下docker是如何使用cgroup机制进行管理的.

(1)限制cpu使用速率 。

例如,将容器60ff4594cc73的cpu使用设置为20000,设置cpu的使用率限定为20%

?
1
[root@localhost ~] # echo 20000 >/sys/fs/ cgroup/ cpu/ system. slice/docker-60ff4594cc73b5474477 636b25b41f 16e1 66a3606aed22 6522d420d0c296990d. scope/cpu . cfs_ quota _us

(2)多任务按比例分享cpu 。

例如,运行3个新建容器a. b、c,占用cpu资源的比例为1:1:2就可以这样执行

?
1
2
3
[root@localhost /] # docker run -tid --cpu-shares 1024  +镜像a
[root@localhost /] # docker run -tid --cpu-shares 1024  +镜像b
[root@localhost /] # docker run -tid --cpu-shares 2048  +镜像c

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我.

原文链接:https://blog.51cto.com/14400213/2453357 。

最后此篇关于Docker的核心及安装的具体使用的文章就讲到这里了,如果你想了解更多关于Docker的核心及安装的具体使用的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com