Docker 属于 Linux 容器的一种封装,提供简单易用的容器使用接口。它是目前最流行的 Linux 容器解决方案。
而 Linux 容器是 Linux 发展出了另一种虚拟化技术,简单来讲, Linux 容器不是模拟一个完整的操作系统,而是对进程进行隔离,相当于是在正常进程的外面套了一个保护层。对于容器里面的进程来说,它接触到的各种资源都是虚拟的,从而实现与底层系统的隔离。
Docker 将应用程序与该程序的依赖,打包在一个文件里面。运行这个文件,就会生成一个虚拟容器。程序在这个虚拟容器里运行,就好像在真实的物理机上运行一样。有了 Docker ,就不用担心环境问题。
总体来说, Docker 的接口相当简单,用户可以方便地创建和使用容器,把自己的应用放入容器。容器还可以进行版本管理、复制、分享、修改,就像管理普通的代码一样。
Docker 仓库是集中存放镜像文件的场所。镜像构建完成后,可以很容易的在当前宿主上运行,但是, 如果需要在其它服务器上使用这个镜像,我们就需要一个集中的存储、分发镜像的服务,Docker Registry (仓库注册服务器)就是这样的服务。有时候会把仓库 (Repository) 和仓库注册服务器 (Registry) 混为一谈,并不严格区分。Docker 仓库的概念跟 Git 类似,注册服务器可以理解为 GitHub 这样的托管服务。实际上,一个 Docker Registry 中可以包含多个仓库 (Repository) ,每个仓库可以包含多个标签 (Tag),每个标签对应着一个镜像。所以说,镜像仓库是 Docker 用来集中存放镜像文件的地方类似于我们之前常用的代码仓库
镜像是 Docker 运行容器的前提,仓库是存放镜像的场所,可见镜像更是 Docker 的核心。Docker 镜像可以看作是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。镜像不包含任何动态数据,其内容在构建之后也不会被改变。
镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。
安装docker 分为几个步骤 我们一起来看下吧
首先第一步我们需要
利用yum安装依赖包
yum install -y yum-utils device-mapper-persistent-data lvm2
设置下载docker的镜像源,双向选择 可以使用阿里云的镜像源,也可以使用官方的镜像源,看个人怎么选择
[root@docker ~]# yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
已加载插件:fastestmirror, langpacks
adding repo from: https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
grabbing file https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo to /etc/yum.repos.d/docker-ce.repo
repo saved to /etc/yum.repos.d/docker-ce.repo
yum makecache fast 将软件包信息提前在本地缓存一份,用来提高搜索安装软件的速度
yum -y install docker-ce
docker-ce是docker团队认证、docker团队维护的一个社区版发行包,两者使用相同的包管理,docker-ce是所有 依赖包由docker团队管理,可以保证docker运行的稳定,适合作为纯docker管理的生产环境,即整个系统只有一个docker在跑,剩下所有应用都通过发布docker的容器来部署。docker企业版是docker-ee
[root@docker ~]# yum makecache fast
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
[root@docker ~]# yum -y install docker-ce
service docker start和systemctl start docker.service都可以
docker version/docker --version 查看版本信息,version更加详细(官方软件源默认启用了最新的软件)
[root@docker ~]# docker version
Client: Docker Engine - Community
Version: 19.03.13
API version: 1.40
Go version: go1.13.15
Git commit: 4484c46d9d
Built: Wed Sep 16 17:03:45 2020
OS/Arch: linux/amd64
Experimental: false
Server: Docker Engine - Community
Engine:
Version: 19.03.13
API version: 1.40 (minimum version 1.12)
Go version: go1.13.15
Git commit: 4484c46d9d
Built: Wed Sep 16 17:02:21 2020
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.3.7
GitCommit: 8fba4e9a7d01810a393d5d25a3621dc101981175
runc:
Version: 1.0.0-rc10
GitCommit: dc9208a3303feef5b3839f4323d9beb36df0a9dd
docker-init:
Version: 0.18.0
GitCommit: fec3683
[root@docker ~]# docker --version
Docker version 19.03.13, build 4484c46d9d
这个需要在官网寻找自己的加速器
首先登陆阿里云官网:https://www.aliyun.com/?utm_content=se_1000301881‘
每个人的加速器地址都不一样。
[root@docker docker]# systemctl daemon-reload
[root@docker docker]# systemctl restart docker
[root@docker ~]# docker pull tomcat
[root@docker ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
tomcat latest f796d3d2c195 4 days ago 647MB
nginx latest 7e4d58f0e5f3 9 days ago 133MB
busybox latest 6858809bf669 11 days ago 1.23MB
centos 7 7e6257c9f8d8 5 weeks ago 203MB
docker inspect tomcat:latest
docker inspect f796d3d2c195
使用 inspect 命令查看镜像详细信息,包括制作者、适应架构、各层的数字摘要等,后面可以跟镜像名也可以跟ID