文档介绍:该【2025年Docker安装部署 】是由【小屁孩】上传分享,文档一共【10】页,该文档可以免费在线阅读,需要了解更多关于【2025年Docker安装部署 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。 : .
操千曲尔后晓声,观千剑尔后识器。——刘勰
Docker安装部署
前⾔
·2025·3···docker··············Docker CE 和Docker EE。
Docker CE 即社区免费版,Docker EE 即企业版,强调安全,但是需要付费。
Docker官⽅。
⼀、docker简介
1、Docker 是⼀个开源的应⽤容器引擎,基于 Go 语⾔ 并遵从 协议开源。
2、Docker 可以让开发者打包他们的应⽤以及依赖包到⼀个轻量级、可移植的容器中,然后发布到任何流⾏的 Linux 机器上,也可以实现虚拟化。
3、容器是完全使⽤沙箱机制,相互之间不会有任何接⼝(类似 iPhone 的 app),更重要的是容器性能开销极低。
4、Docker 从 版本之后分为 CE(Community Edition: 社区版) 和 EE(Enterprise Edition: 企业版),我们⽤社区版就可以了。
5、Docker是通过内核虚拟化技术(namespaces及cgroups)来提供容器的资源隔离与资源限制。由于Docker通过操作系统层的虚拟化实现隔离(对操作系统的
内核有要求),所以Docker容器在运⾏时,不需要类似虚拟机(VM )额外的操作系统开销,从⽽⽐ kvm 虚拟机更轻量。也可以把 docker理解为⼀种简单的打包技
术
docker⽬标
docker的主要⽬标是 "Build,Ship and Run any App,Angwhere",构建,运输,处处运⾏
构建:制作 docker镜像,打包容器的所有系统⽬录⽂件
运输:下载 docker镜像
运⾏:基于docker镜像提供的 rootfs,启动容器
总结:只要能运⾏ docker容器,那么 docker镜像中已经安装好的软件也可以运⾏,所以说 docker是⼀种件的打包技术。
应⽤场景
1、Web 应⽤的⾃动化打包和发布。
2、⾃动化测试和持续集成、发布。
3、在服务型环境中部署和调整数据库或其他的后台应⽤。
4、从头编译或者扩展现有的 OpenShift 或 Cloud Foundry 平台来搭建⾃⼰的 PaaS 环境。
docker优势
1:解决了操作系统和软件运⾏环境的依赖例如: nginx和git需要安装的openssl版本不同,在同⼀台设备上安装会造成软件冲突
2:对于开发⼈员来说,再也不⽤担⼼不会部署开发环境
3:开发环境,测试环境和⽣产环境⾼度⼀致。
4:让⽤户体验产品新特性的⼜⼀种思路。
5:容器不需要进⾏硬件虚拟以及运⾏完整操作系统等额外开销, Docker 对系统资源的利⽤率更⾼。⽆论是应⽤执⾏速度、内存损耗或者⽂件存储速度,都要⽐传
统虚拟机技术更⾼效。因此,相⽐虚拟机技术,⼀个相同配置的主机,往往可以运⾏更多数量的应⽤。 : .
长风破浪会有时,直挂云帆济沧海。——李白
6:传统的虚拟机技术启动应⽤服务往往需要数分钟,⽽ Docker 容器应⽤,由于直接运⾏于宿主内核,⽆需启动完整的操作系统,因此可以做到秒级、甚⾄毫秒级
的启动时间。⼤⼤的节约了开发、测试、部署的时间。
7:由于 Docker 确保了执⾏环境的⼀致性,使得应⽤的迁移更加容易。Docker 可以在很多平台上运⾏,⽆论是物理机、虚拟机、公有云、私有云,甚⾄是笔记本,
其运⾏结果是⼀致的。因此⽤户可以很轻易的将在⼀个平台上运⾏的应⽤,迁移到另⼀个平台上,⽽不⽤担⼼运⾏环境的变化导致应⽤⽆法正常运⾏的情况。
8:Docker 使⽤的分层存储以及镜像的技术,使得应⽤重复部分的复⽤更为容易,也使得应⽤的维护更新更加简单,基于基础镜像进⼀步扩展镜像也变得⾮常简
单。此外,Docker 团队同各个开源项⽬团队⼀起维护了⼀⼤批⾼质量的 官⽅镜像,既可以直接在⽣产环境使⽤,⼜可以作为基础进⼀步定制,⼤⼤的降低了应⽤
服务的镜像制作成本。
Docker与虚拟机的区别
⼆、 docker的架构
1、docker三个基本概念:
( Image ):Docker 镜像( Image ),就相当于是⼀个 root ⽂件系统。⽐如官⽅镜像 ubuntu: 就包含了完整的⼀套 最⼩系统的 root ⽂件
系统。
2. 容器( Container):镜像( Image )和容器( Container)的关系,就像是⾯向对象程序设计中的类和实例⼀样,镜像是静态的定义,容器是镜像运⾏时的实
体。容器可以被创建、启动、停⽌、删除、暂停等。
(Repository):仓库可看着⼀个代码控制中⼼,⽤来保存镜像。
Docker 使⽤客户端 -服务器 (C/S) 架构模式,使⽤远程 API来管理和创建 Docker容器。
Docker 容器通过 Docker 镜像来创建。
2、docker的镜像分层
⼀个完整的Docker镜像可以⽀撑⼀个 Docker容器的运⾏,在Docker容器运⾏过程中主要提供⽂件系统数据⽀撑。
Docker镜像作为中最基本的概念,有以下⼏个特性:
,每个镜像都由⼀个或多个镜像层组成;
⼀定的镜像层得到新镜像(此过程可通过编写 dockerfile或基于容器 Commit实现);
⼀镜像 ID ;
⽤时共享相同的镜像层(根据 ID ),所以在 pull镜像时,已有的镜像层会⾃动跳过下载;
,即使启动成容器,也⽆法对其真正的修改,修改只会作⽤于最上层的容器层;
Docker容器,可以理解为⼀个或多个运⾏进程,⽽这些运⾏进程将占有相应的内存,相应的 CPU计算资源,相应的虚拟⽹络设备以及相应的⽂件系统资源。⽽ : .
不飞则已,一飞冲天;不鸣则已,一鸣惊人。——《韩非子》
Docker容器所占⽤的⽂件系统资源,则通过Docker镜像的镜像层⽂件来提供。
3、镜像与容器的联系
当启动⼀个新的容器时,Docker会加载只读镜像,并在其之上添加⼀个读写层,即容器层。
docker 容器=镜像+可读层
4、镜像存储核⼼技术:联合⽂件系统
镜像的⾼效存储:引⼊联合⽂件系统,将镜像多层⽂件联合挂载到容器⽂件系统。
5、镜像存储核⼼技术:写时复制(COW )
引⼊写时复制(copy-on-write),需要修改⽂件操作时,会先从镜像⾥把要写的⽂件复制到⾃⼰的⽂件系统(容器的读写层)中进⾏修改。源镜像层中的⽂件不会
发⽣变化。
前提条件
⼀、内核
1.Docker运⾏内核要求⽐较⾼,因此⼀般建议使⽤Ubuntu这样的平台运⾏,但是Docker作为⼀个标准容器也⽀持CentOS, Mac OS X, Windows 等平台。⽬前
Docker⽀持以下版本CentOS:
(1)CentOS7 (64位)
(2) (64位及以后)
2.在运⾏CentOS 及以后版本时,需要内核版本>=-431 ,因为这些内核包含了运⾏Docker的⼀些特定修改。
uname -r
注:⽹上很多教程说 ⽤docker,其实是【可选】升级,但最好升级。
⼆、Device Mapper
1.Docker默认使⽤AUFS作为存储驱动,但是AUFS并没有被包括在Linux的主线内核中。CentOS 中可以使⽤Device Mapper作为存储驱动,
本引⼊的新功能。我们需要先确认是否启⽤该功能 :
ls -l /sys/class/misc/device-mapper
(1)如果没有检测到 Device Mapper,需要安装 device-mapper软件包 :
sudo yum install -y device-mapper : .
丹青不知老将至,贫贱于我如浮云。——杜甫
(2)然后重新加载dm_mod 内核模块:
sudo modprobe dm_mod
(3)再次确认存储驱动
ls -l /sys/class/misc/device-mapper
安装
7
CentOS7 能上外⽹
yum -y install gcc
yum -y install gcc-c++
卸载旧版本
yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-selinux \ docker-engine-selinux \ docker-engine
如果yum 报告未安装任何这些软件,表⽰情况正常。
(过程版)
安装依赖包
安装依赖包
yum install -y yum-utils device-mapper-persistent-data lvm2
设置stable镜像仓库
yum-config-manager --add-repo -
或
yum-config-manager --add-repo -ce/linux/centos/docker-
更新yum 软件包索引
yum makecache fast : .
士不可以不弘毅,任重而道远。仁以为己任,不亦重乎?死而后已,不亦远乎? ——《论语》
如果这是⾃添加 Docker 镜像仓库以来您⾸次刷新软件包索引,系统将提⽰您接受 GPG 密钥,并且将显⽰此密钥的指纹。验证指纹是否正确,并且在正确的情况
下接受此密钥。指纹应匹配 060A 61C5 1B55 8A7F 742B 77AA C52F EB6B 621E 9F35。
安装docker
1、安装指定版本:
yum list docker- --showduplicates | sort -r #从⾼到低列出Docker-ce的版本
该软件包名称是软件包名称(docker-ce)加上版本字符串(第⼆列),从第⼀个冒号(:)⼀直到第⼀个连字符,并⽤连字符(-)分隔。
例如:指定版本(docker-ce-)进⾏安装:
yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING>
# 例如:
yum install docker-ce- docker-ce-cli-
2、安装最新版本:
yum -y install docker-ce
启动docker
执⾏以下命令启动docker:
systemctl start docker
启动时报错信息解决⽅法:
Job for failed because the control process exited with error code. See "systemctl status " and "journalctl -xe" for details.
systemctl status
解决⽅案:卸载docker重新安装新的docker。
解决步骤:
1、卸载Docker,旧版本docker没安装成功直接卸载掉。
(1)查看安装过的包:
yum list installed | grep docker : .
勿以恶小而为之,勿以善小而不为。——刘备
本机安装过的旧版本:
docker-
docker-ce-
docker-ce-rootless-
(2)删除安装的Docker相关的软件包:
yum -y remove docker-
yum -y remove docker-ce-
yum -y remove docker-
2、安装Docker
(1)查看内核版本【Docker要求Centos系统的内核版本⾼】
uname -r 【本机的内核版本:-】
(2)把yum 包更新到最新(时间可能有点长,慢慢等待......)
yum update
(3)安装需要的软件包。
【yum-util提供yum-config-manager功能,另外两个是devicemapper驱动所需依赖】
yum install -y yum -utils device-mapper-persistent-data lvm2
(4)设置yum 源
yum install -y yum -utils device-mapper-persistent-data lvm2
(5)查看仓库的docker版本
yum list docker-ce --showduplicates | sort -r
(6)安装docker
yum install docker-ce
(7)启动docker,设置开机启动docker。
systemctl start docker
systemctl enable docker
systemctl stop docker【补充:这是关闭docker的命令】
(8)查看版本
docker version
⽤⼀张图总结docker命令 : .
非淡泊无以明志,非宁静无以致远。——诸葛亮
Docker⼯作流
docker安装与启动(⼿动版)
yum install -y epel-release
yum install docker-io # 安装docker
# 配置⽂件 vim /etc/sysconfig/docker
chkconfig docker on # 加⼊开机启动
service docker start # 启动docker服务
# 基本信息查看
docker version # 查看docker的版本号,包括客户端、服务端、依赖的Go 等 : .
长风破浪会有时,直挂云帆济沧海。——李白
docker info # 查看系统 (docker) 层⾯信息,包括管理的 images, containers数等
docker pull centos 下载
docker images [ centos ] 查看
docker run -i -t centos /bin/bash
查看镜像详细信息
注:下⾯容器⼀节会看到,这个命令也能够⽤来查看容器的详细信息
docker inspect [image-id]
docker安装与启动(shell版)
安装shell脚本
install-
#!/bin/bash
# 卸载旧版本
echo ""
echo ""
echo "#########################################################"
echo "# 卸载旧版本 -- 开始 #"
echo "#########################################################"
yum -y remove docker docker-common docker-selinux docker-engine
echo "#########################################################"
echo "# 卸载旧版本 -- 结束 #"
echo "#########################################################"
# 安装需要的依赖软件包
echo ""
echo ""
echo "#########################################################"
echo "# 安装需要的软件包 -- 开始 #"
echo "#########################################################"
yum install -y yum-utils device-mapper-persistent-data lvm2
echo "#########################################################"
echo "# 安装需要的软件包 -- 结束 #"
echo "#########################################################"
# 设置 yum 源,清华镜像仓库,速度很快
echo ""
echo ""
echo "#########################################################"
echo "# 设置 yum 源 -- 开始 #"
echo "#########################################################"
#安装wget ,如果已安装则会跳过
yum -y install wget
#根据你的发⾏版下载repo ⽂件:
wget -O /etc/- -
#把软件仓库地址替换为 TUNA: : .
以铜为镜,可以正衣冠;以古为镜,可以知兴替;以人为镜,可以明得失。——《旧唐书·魏征列传》
sed -i 's++-ce+' /etc/