Docker (一) 概述与安装
1. Docker是什么
Docker是一个开源的应用客器引擎,基于GO语言开发实现,属于操作系统层面的虚拟化技术。
Docker可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何安装有 Docker的电脑( windows和 Linux)上。
容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iphone和app),更重要的是容器性能开销极低。
2. Docker能够做什么
Docker可以解决虚拟机能够解决的问题,同时也能够解决虚拟机由于电脑资源要求过高而无法解决的问题。
虚拟机和 Docker虚拟化的不同之处
3. 为什么使用 Docker
1)更快速的交付和部署
对开发和运维员来说,最希望的就是一次创建或配置,可以在任意地方正常运行。
例如:开发者可以使用一个标准的镜像来构建一套开发容器,开发完成之后,运维人员可以直接使用这个容器来部署代码。 Docker容器很轻很快!容器的启动时间是秒级的,大量地节约开发、测试、部署
的时间.
节约安装各种开发环境的软件的时间。
解决开发环境和生产环境不一致的问题
2)更轻松的迁移和扩展:
Docker容器几乎可以在任意的平台上运行,包括物理机、虚拟机、公有云、私有云、个人电脑、服务器等。这种兼容性可以让用户把一个应用程序从一个平台直接迁移到另外一个
3)更高的资源利用率
Docker对系统资源的利用率很高,一台主机上可以同时运行数千个Docker容器。容器除了运行其中应用外,基本不消耗额外的系统资源,使得应用的性能很高,同时系统的开销尽量小。传统虚拟机方式运行10个不同的应用就要起10个虚拟机,而 Docker只需要启动10个隔离的应用容器即可。
虚拟机与docker的对比
虚拟机:

虚拟机技术缺点:
1、资源占用十分多
2、冗余步骤多
3、启动很慢!
docker:
容器化技术不是模拟的一个完整的操作系统

比较Docker和虚拟机技术的不同:
- 传统虚拟机,虚拟出一条硬件,运行一个完整的操作系统,然后在这个系统上安装和运行软件
- 容器内的应用直接运行在宿主机的内容,容器是没有自己的内核的,也没有虚拟我们的硬件,所以就轻便了
- 每个容器间是互相隔离,每个容器内都有一个属于自己的文件系统,互不影响。
4. Docker的基本概念
Docker使用C/S架构,通过docker客户端连接到Docker服务器上从而管理Docker服务器里面的镜像和容器,类似于git的架构

4.1.镜像( Image)
Docker镜像( Image)就是一个只读的模板。例如:一个镜像可以包含一个完整的操作系统环境,
里面仅安装了apche或用户需要的其它应用程序,镜像可以用来创建 Docker容器,一个镜像可以创建很多容器。 Docker提供了一个很简单的机制来创建镜像或者更新现有的镜像,用户甚至可以直接从其他人那里下载一个己经做好的镜像来直接使用
docker镜像就好比是一个模板,可以通过这个模板来创建容器服务,tomcat镜像===>run==>tomcat01容器(提供服务器),
通过这个镜像可以创建多个容器(最终服务运行或者项目运行就是在容器中的)。
4.2.容器( Container)
Docker利用容器( Container)来运行应用。容器是从镜像创建的运行实例。它可以被启动、开始、
停止、删除。每个容器都是相互隔离的、保证安全的平台。可以把容器看做是一个简易版的linux环境(包括root用户权限、进程空间、用户空间和网络空问等)和运行在其中的应用程序
文件系统隔离技术使得 Docker成为了一个非常有潜力的虚拟化技术。在容器中可以对文件进行修改删除、创建。
Docker利用容器技术,独立运行一个或者一个组应用,通过镜像来创建的。
启动,停止,删除,基本命令!
目前就可以把这个容器理解为就是一个简易的linux系统
4.3.仓库( Registry)
仓库( Repository)是集中存放镜像文件的场所。有时候会把仓库和仓库注册服务器( Registry)
混为一谈,并不严格区分。实际上仓库注册服务器上往往存放着多个仓库,每个仓库中又包含了多个镜像,每个镜像有不同的标签(tag)。
仓库分为公开仓库(Public)和私有仓库( Private)两种形式。最大的公开仓库是 Docker hub,存放了数量庞大的镜像供用户下载。国内的公开仓库包括时速云、网易云等,可以提供大陆用户更稳定快速的访问。当然,用户也可以在本地网络内创建一个私有仓库。
当用户创建了自己的镜像之后就可以使用push命令将它上传到公有或者私有仓库,这样下次在另外台机器上使用这个镜像时候,只需要从仓库上pull下来就可以了。
Docker仓库的概念跟Git类似,注册服务器可以理解为 GitHub这样的托管服务。
仓库就是存放镜像的地方!
仓库分为公有仓库和私有仓库!
Docker Hub(默认是国外的)
阿里云...都有容器服务器(配置镜像加速!)
5. Docker 安装
5.1.安装需要的软件包
yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
yum install -y yum-utils device-mapper-persistent-data lvm2
5.2设置yum源(选择其中一个)
yum-config-manager --add-repo http://download.docker.com/linux/centos/docker-ce.repo(中央仓库)
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo(阿里仓库)

5.3 可以查看所有仓库中所有docker版本,并选择特定版本安装。
yum list docker-ce --showduplicates | sort -r

5.4 安装Docker,命令:yum install docker-ce-版本号,我选的是docker-ce-19.03.5,
yum install -y docker-ce-26.1.4 docker-ce-cli-26.1.4 containerd.io
5.5 启动Docker,命令:systemctl start docker,然后加入开机启动,如下
systemctl start docker
systemctl enable docker
docker version

5.6 运行hello-world
docker run hello-world



如果报:context deadline exceeded 错误 说明是网络连接问题,需要镜像加速器
解决方案: 配置国内镜像加速器
5.7镜像加速器
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": [
"https://docker.m.daocloud.io",
"https://docker.1panel.live",
"https://hub.rat.dev",
"https://dhub.kubesre.xyz"
]
}
EOF
重载配置并重启docker
sudo systemctl daemon-reload
sudo systemctl restart docker
确认配置是否更新
docker info | grep -A 5 "Registry Mirrors"
同时也可以使用阿里云的镜像加速器 此处需要注意:仅限阿里云用户,在支持公网访问的阿里云产品上使用该镜像加速能力。
- 访问 阿里云容器镜像服务 页面:
https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors - 登录你的阿里云账号。
- 在左侧菜单找到 “镜像加速器”。
- 你会看到一段类似
https://xxxx.mirror.aliyuncs.com的地址,复制它。 - 在 registry-mirrors中添加即可
5.8了解卸载docker
# 卸载依赖
yum remove docker-ce docker-ce-cli containerd.io
# 删除资源 docker的默认工作路径
rm -rf /var/lib/docker/
6. 底层原理
Docker是什么工作的?
Docker 是一个Client-Server结构的系统,Docker的守护进程运行在主机上。通过Socket以客户端访问!
DockerServer 接收到Docker-Client 的指令,就会执行这个命令!

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐


所有评论(0)