Docker详解与安装

发布时间:2023-09-10 点击:121
云计算
一、揭开 docker 的神秘面纱
docker 是在linux容器中运行的应用的开源工具,是一种轻量级的“虚拟机”诞生于2013年,短短几年时间,已经成为了开源社区最火爆的项目。
.
那么为什么docker会这么火呢?看看下图就知道了:
作为一种轻量级的虚拟机方式,docker 与传统虚拟机相比具有显著的优势。
docker 之所以拥有众多优势,与操作系统虚拟化自身的特点是分不开的。传统虚拟机需要额外的虚拟机管理程序和虚拟机操作系统层,而docker容器是直接在操作系统层面上实现的虚拟化。
docker 的使用场景
现在开发者需要能方便地创建运行在云平台上的应用,必须要脱离底层硬件,同时还需要任何时间地点可获取这些资源,这正是docker所能提供的。docker 的容器技术可以在一台主机上轻松为任何应用创建一个轻量级的、可移植的、自给自足的容器。通过这中容器打包应用程序,意味着简化了重新部署、调试这些琐碎的重复工作,极大的提高了工作效率。例如,服务器从腾讯云迁移到阿里云,如果采用docker容器技术,迁移只需要在新的服务器上启动需要的容器即可。
二、docker 的核心概念:
1.镜像
docker的镜像(mage) 是创建容器的基础,类似虚拟机的快照.可以理解为是一个 面向docker 容器引擎的只读模板。比如,一个镜像可以是一个完整的 centos操作系统环境,称为一个centos 镜像;可以是一个安装了mysql的应用程序.称为一个mysol镜像.等等
doacker提供了简单的机制来创建和更新现有的镜像.用户也可以从网上下载已经做好的应用镜像来直接使用。
2.容器
docker的容器(conainer! 是从镜像创建的运行实例,它可以被启动.停止和删除。所创建的每个容器都是相互隔离.互不可见,可以保证安全性的平台。可以把容器看作一个简易版的linux环境,docker 利用容器来运行和隔离应用。
3.仓库
docker仓库(repository) 是用来集中保存镜像的地方,当创建了自己的镜像之后,可以使用push 命令将它上传到公有仓库(pbli) 或者私有仓库(private), 这样一来当下次要 在另外一台机器上使用这个镜像时,只需要从仓库上拉取下来就可以了。
仓库注册服务器(registry) 是存放仓库的地方,其中包含了多个仓库,每个仓库集中存放某一类镜像,并且使用不同的标签(tag) 来区分它们,目前最大的公共仓库是docker hb,存放了数量庞大的镜像供用户下载使用。
三、安装docker
centos 系统下安装 docker 可以有两种方式:一种是使用 curl 获得 docker 的安装脚本进行安装。另一种是使用 yum 仓库来安装docker。
注意:目前docker只能支持64位操作系统
注意:目前docker只能支持64位操作系统
注意:目前docker只能支持64位操作系统
这里我使用的是docker自己的yum源进行安装
开始安装:
[root@test /]# yum -y install docker # 安装docker[root@test /]# systemctl start docker # 启动服务[root@test /]# systemctl enable docker # 设为开机自启动created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.安装好的docker有两个程序:docker服务端和docker客户端。其中docker服务进程,管理着所有的容器。docker 客户端则扮演着docker服务端的远程控制器,可以用来控制 docker 的服务端进程。大部分的情况下,docker服务端和客户端运行在一台机器上。
[root@test /]# docker version 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/amd64server: 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: falsedocker 镜像操作
docker 运行容器前需要本地存在对应的镜像,如果不存在本地镜像,docker 就会尝试从默认镜像仓库 https://hub.docker.com 处下载,这是一个由 docker 官方维护的一个公共仓库。
1、搜索镜像:
[root@test /]# docker search dhcp # 命令格式 docker search 关键字index name description stars official automateddocker.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]............... // 省略部分内容2、获取镜像:
搜索到符合的镜像,可以使用docker pull 进行下载到本地
[root@test /]# docker pull docker.io/networkboot/dhcpdusing default tag: latesttrying to pull repository docker.io/networkboot/dhcpd ... latest: pulling from docker.io/networkboot/dhcpd898c46f3b1a1: downloading 5.602 mb/32.47 mb63366dfa0a50: download complete 041d4cd74a92: download complete 6e1bee0f8701: download complete 114483241095: downloading 3.693 mb/6.702 mbef446bdcb1f0: waiting 3、查看镜像信息:
[root@test /]# docker imagesrepository tag image id created sizedocker.io/networkboot/dhcpd latest 52cbff801df2 8 months ago 105 mb从回显的信息中可以读出:repository:镜像属于的仓库tag:镜像的标签信息,标记同一个仓库的不同镜像image id :镜像的唯一id号,唯一标识了该镜像created:镜像创建时间virtual size:镜像大小用户可根据镜像的唯一标识id号,获取镜像的详细信息:
[root@test /]# docker inspect 52cbff801df2[ { id: sha256:52cbff801df2c6e2da3

购买云服务器选错了公共镜像
云服务器ecs没有管理员权限
饿了么投放100万食品安全封签 2018年覆盖30城
阿里云已购买买的服务器
企业网站域名好不好过期?域名是否会过期
阿里云服务器网站有什么用
野草云服务器上放多个网站
dnf用哪款虚拟主机比较好