上海力晟建设工程有限公司网站,网站建设seo优化内蒙,开发网站建设设计公司,.jsp网站开发技术安装docker一、概念1.1 docker是什么#xff1f;1.2 什么是容器#xff1f;1.3 docker与虚拟机的区别1.4 容器#xff0c;镜像#xff0c;仓库1.5 微服务、云计算二、Rocky #xff08;使用 dnf 或 yum 安装#xff09;第1步#xff1a;卸载以前安装过的docker相关的软件…
安装docker一、概念1.1 docker是什么1.2 什么是容器1.3 docker与虚拟机的区别1.4 容器镜像仓库1.5 微服务、云计算二、Rocky 使用 dnf 或 yum 安装第1步卸载以前安装过的docker相关的软件第2步 配置安装docker的源默认使用官方的源在安装的时候出错下载不下来软件建议使用阿里云的源第3步 安装docker第4步 启动docker第5步查看dockerd进程确认docker服务已经启动了三、docker 基本使用3.1 配置国内源3.2 下载nginx镜像3.3 查看本机已经下载的镜像3.4 启动一个nginx的容器3.5 查看启动的容器3.6 镜像导入/导出3.7 删除镜像二、Ubuntu使用 apt-get 进行安装三、CentOS 使用 yum 进行安装一、概念 
1.1 docker是什么 
就是一个软件跑容器的软件 - 容器化软件 
有什么作用解决了什么问题 
将任何软件都可以放到容器里去运行更加节约企业的服务器资源降低基础设施成本软件的快速部署和缩放 --》改变了软件部署和安装的方式 1.2 什么是容器 
类似软件的集装箱 官方网站https://www.docker.com/resources/what-container/  使用容器的好处 1.成本低廉 2.管理方便 
颗粒度更加小的虚拟化技术–》容器技术–》可以控制资源 
很多企业里的物理机的资源使用率比较低一个业务一群机器导致大量的资源浪费成本过高 
docker技术可以控制资源的使用率可以让物理机很饱和的运行 --》减少机器的数量同时业务也能正常的运行 使用docker可以降低基础设施成本 1.3 docker与虚拟机的区别 特性容器化Docker虚拟机Hypervisor隔离层级进程级隔离共享宿主 OS 内核硬件级隔离每个 VM 有独立 OS 内核隔离策略HypervisorCGroups资源占用极轻量MB 级仅需应用自身资源重量级GB 级需承载完整 OS 资源启动速度秒级直接启动应用进程分钟级需启动完整 OS多应用支持同一宿主 OS 下可运行多个不同应用容器每个 VM 通常运行一个主要应用因 OS 资源占用高兼容性依赖宿主 OS 内核如 Linux 容器难跑 Windows 应用支持任意 OS只要 Hypervisor 兼容镜像存储KB-MBGB-TB集群规模上万上百高可用策略弹性、负载、动态备份、容灾、迁移1.4 容器镜像仓库 
镜像 image 是软件单元本质上是一个文件文件里面有应用程序代码nginx、mysql等、微型操作系统、依赖软件 --》需要运行软件仓库 repository 存放镜像的地方 hub.docker.com hub.docker.com 是docker官方提供的镜像的集市。 全球最大的镜像集散地镜像仓库 国内的站点 --》网站提供镜像下载功能容器 container 运行的镜像本质上是一个进程提供服务 
1.5 微服务、云计算 
微小的服务尽量的将某个功能或者服务独立出来跑在单独的容器里且可独立开发、测试、部署和扩展 
微服务的核心特征 
单一职责每个服务只负责一个业务模块独立部署修改一个服务时无需重新部署整个应用技术多样性不同服务可选择适合自身的技术栈弹性扩展可针对高负载服务单独扩容 
微服务架构虽然解决了单体应用的耦合问题但也带来了部署复杂、环境不一致、资源管理难等挑战 —— 而 Docker 恰好能针对性解决这些问题 
微服务面临的挑战Docker 的解决方案核心价值环境不一致“开发能跑生产报错”容器打包应用  依赖确保所有环境镜像一致消除 “环境差异”降低部署故障服务部署复杂需手动配置依赖、端口通过 Dockerfile 自动化构建镜像Compose 一键部署多服务标准化部署流程提升效率资源隔离差多服务共享主机资源易冲突容器间资源隔离CPU、内存、网络互不干扰避免 “服务抢占资源”提升系统稳定性服务扩容慢需手动搭建新主机环境容器轻量启动秒级可快速复制镜像启动新容器支持 “秒级扩容”应对流量峰值版本管理难多服务版本迭代回滚复杂镜像版本化回滚时只需切换镜像版本简化版本管理降低回滚风险
云计算Cloud Computing 
物理机–》虚拟化–》云计算–》云服务–》容器–》云原生 云原生 就是与容器、k8s、Prometheus、etcd相关的技术 
云计算是一种基于互联网的计算方式通过这种方式共享的软硬件资源和信息可以按需求提供给计算机各种终端和其他设备 
云计算利用强大的分布式计算和存储能力将数据和应用程序从本地计算机或服务器转移到云中使得用户可以随时随地获取所需的信息和服务 公有云 阿里云、腾讯云、华为云、AWS亚马逊、google云、微软云azure、电信云 买服务器  私有云/专有云 自己使用不与其他人分享的云平台 --》购买阿里云/腾讯云、华为云的云平台软件自己的服务器 国家电网、财通证券 政府、国企  混合云 公有云、私有云 12306 购买火车票  
服务模式英文全称核心定义用户视角典型场景IaaSInfrastructure as a Service基础设施即服务提供最底层的 IT 基础设施虚拟服务器ECS、存储OSS、网络VPC等用户需自行部署操作系统、数据库、应用程序租用一台虚拟电脑自己装系统和软件企业搭建自有服务器集群、开发测试环境PaaSPlatform as a Service平台即服务提供 “应用开发 / 运行平台”包含操作系统、数据库、中间件如 Tomcat、开发工具等用户只需上传应用代码即可运行租用一个已装好环境的开发平台直接写代码快速开发 Web 应用、移动 APP 后端、大数据分析如使用 Hadoop 平台SaaSSoftware as a Service软件即服务提供 “开箱即用的软件应用”用户无需安装直接通过浏览器或客户端使用如在线 Office、CRM 系统所有维护由服务商负责直接用在线软件不用管背后的技术企业办公钉钉、企业微信、在线协作飞书文档、客户管理SalesforceServerless1.FaaSFunction as a Service函数即服务2.BaaSBackend as a Service后端即服务开发者无需管理服务器只需编写业务逻辑代码按实际执行消耗付费直接使用别人的容器平台云厂商按照使用时长和算力来收费企业不需要购买服务器了适合流量波动大、执行时间短、事件驱动型的业务场景
函数计算Function Compute是一个事件驱动的全托管 Serverless 计算服务您无需管理服务器等基础设施只需编写代码并上传函数计算会为您准备好计算资源并以弹性、可靠的方式运行您的代码 二、Rocky 使用 dnf 或 yum 安装 
参考Centos的官方文档https://docs.docker.com/engine/install/centos/  
第1步卸载以前安装过的docker相关的软件 
[rootlocalhost ~]#sudo dnf remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine第2步 配置安装docker的源默认使用官方的源在安装的时候出错下载不下来软件建议使用阿里云的源 
# 两条命令等同yum 是 dnf 的软链接执行 yum install yum-utils 本质也是安装 dnf 兼容的扩展工具
[rootlocalhost ~]# sudo yum install -y yum-utils
[rootlocalhost ~]# sudo dnf -y install dnf-plugins-core[rootlocalhost ~]# sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
[rootlocalhost ~]# sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
Adding repo from: https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo第3步 安装docker 
docker-ce 是docker引擎提供docker服务的docker-ce-cli 提供docker客户端命令的containerd.io 是提供容器运行时管理的docker-buildx-plugin 是docker的一个插件用来构建镜像docker-compose-plugin docker的单机里的容器编排工具可以同时启动很多容器 
[rootlocalhost ~]# sudo dnf install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin  -y第4步 启动docker 
[rootlocalhost ~]# systemctl start docker
[rootlocalhost ~]# systemctl enable docker
Created symlink /etc/systemd/system/multi-user.target.wants/docker.service → /usr/lib/systemd/system/docker.service.第5步查看dockerd进程确认docker服务已经启动了 
[rootlocalhost yum.repos.d]# ps aux|grep docker
root       17423  0.3  2.1 1908364 80208 ?       Ssl  11:42   0:00 /usr/bin/dockerd -H fd:// --containerd/run/containerd/containerd.sock
root       17661  0.0  0.0   6408  2176 pts/0    S   11:42   0:00 grep --colorauto docker
# 查看版本
[rootdocker ~]# docker --version
Docker version 28.4.0, build d8eb465三、docker 基本使用 
3.1 配置国内源 
在使用 Docker 时默认是访问docker官方提供的镜像下载的网站配置合适的镜像源可以显著提升镜像拉取速度尤其是在国内网络环境下 
[rootlocalhost ~]# mkdir  -p /etc/docker/
# 添加2个国内的源
[rootlocalhost docker]# sudo tee /etc/docker/daemon.json -EOF
{registry-mirrors: [https://docker.xuanyuan.me,https://docker.1panel.live]
}
EOF
{registry-mirrors: [https://docker.xuanyuan.me,https://docker.1panel.live]
}[rootlocalhost docker]# sudo systemctl daemon-reload
[rootlocalhost docker]# sudo systemctl restart docker3.2 下载nginx镜像 
docker pull 不接版本号默认下载最新的 
[rootlocalhost docker]# docker pull nginx
Using default tag: latest
latest: Pulling from library/nginx
b1badc6e5066: Pull complete 
a2da0c0f2353: Pull complete 
e5d9bb0b85cc: Pull complete 
14a859b5ba24: Pull complete 
716cdf61af59: Pull complete 
14e422fd20a0: Pull complete 
c3741b707ce6: Pull complete 
Digest: sha256:33e0bbc7ca9ecf108140af6288c7c9d1ecc77548cbfd3952fd8466a75edefe57
Status: Downloaded newer image for nginx:latest
docker.io/library/nginx:latest3.3 查看本机已经下载的镜像 
docker images 
[rootlocalhost docker]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
nginx        latest    ad5708199ec7   3 weeks ago   192MB3.4 启动一个nginx的容器 
–》启动nginx程序 docker run 
--name sc-nginx-1指定容器名称为 sc-nginx-1方便后续管理-p 8080:80端口映射将宿主机的 8080 端口映射到容器内的 80 端口-d后台运行容器 detached 模式nginx使用的镜像名称默认拉取 latest 标签版本 
[rootlocalhost docker]# docker run --name sc-nginx-1  -p 8080:80  -d  nginx
12af7441bf2e0fdefb41445aca7f4ec4a6284acfb24c89f70672689002895dff3.5 查看启动的容器 
docker ps 
[rootlocalhost docker]# docker ps
CONTAINER ID   IMAGE     COMMAND                  CREATED          STATUS          PORTS                                     NAMES
12af7441bf2e   nginx     /docker-entrypoint.…   29 seconds ago   Up 29 seconds   0.0.0.0:8080-80/tcp, [::]:8080-80/tcp   sc-nginx-1浏览器访问宿主机的8080端口可正常显示nginx的首页 
3.6 镜像导入/导出 
导出 [rootlocalhost images]# docker save -o nginx.tar nginx 导入 [rootlocalhost images]# docker load -i nginx.tar nginx 3.7 删除镜像 [rootlocalhost docker]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE nginx latest ad5708199ec7 3 weeks ago 192MB [rootlocalhost ~]# docker rmi nginx 二、Ubuntu使用 apt-get 进行安装 
官方文档https://docs.docker.com/engine/install/ubuntu/ https://developer.aliyun.com/mirror/docker-ce roothuang:~# cat /etc/issue Ubuntu 24.04.2 LTS \n \l 
之前装了的版本要移除 for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done step 1: 安装必要的一些系统工具 
sudo apt-get updatesudo apt-get install ca-certificates curl gnupgstep 2: 信任 Docker 的 GPG 公钥 
sudo install -m 0755 -d /etc/apt/keyringscurl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpgsudo chmod ar /etc/apt/keyrings/docker.gpgstep 3: 写入软件源信息 
echo \deb [arch$(dpkg --print-architecture) signed-by/etc/apt/keyrings/docker.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu \$(. /etc/os-release  echo $VERSION_CODENAME) stable | \sudo tee /etc/apt/sources.list.d/docker.list  /dev/nullstep 4: 安装Docker 
sudo apt-get updatesudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y三、CentOS 使用 yum 进行安装 
step 1: 安装必要的一些系统工具 sudo yum install -y yum-utils 
step 2: 添加软件源信息 yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo step 3: 安装Docker sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin step 4: 开启Docker服务 sudo service docker start