用户名
Email
论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
应用中心
帖子
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
账号登录
立即注册
找回密码
用户名
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
qidao123.com技术社区-IT企服评测·应用市场
»
论坛
›
物联网
›
物联网
›
Docker的前世今生及安装与使用命令详解
Docker的前世今生及安装与使用命令详解
知者何南
论坛元老
|
2025-2-19 22:25:00
|
显示全部楼层
|
阅读模式
楼主
主题
1990
|
帖子
1990
|
积分
5970
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
在云原生期间,容器技术已经成为软件开发与部署的关键工具。其中,Docker 凭借其轻量、灵活和高效的特性迅速走红。本文将带你走进 Docker 的历史沿革,相识其从前世到今生的发展进程,并具体介绍如何安装 Docker 以及常用的操作命令。
一、Docker 的前世——容器化技术的萌芽与发展
1. 早期背景与虚拟化技术
在 Docker 出现之前,虚拟机(Virtual Machine)技术已经广泛应用于服务器资源的隔离和管理。虚拟机通过硬件虚拟化技术,将一台物理机分割成多个独立的系统实例,但相对来说资源开销较大、启动速率较慢。为了寻求更高效的资源使用率,Linux 社区早期就发展出基于内核特性的容器技术,如
chroot
、
cgroups
和
命名空间(namespaces)
等技术,这为厥后的容器化打下了基础。
2. Docker 的诞生与初步发展
2013 年,Solomon Hykes 及其团队在 dotCloud 平台上推出了 Docker 项目。Docker 使用 Linux 内核的容器化技术,将应用及其依赖打包成一个独立的、可移植的镜像,使得应用在不同环境中都能保持一致的运行状态。这一设计理念迅速得到开发者和运维人员的青睐。Docker 的出现不光简化了应用部署流程,还极大地推动了微服务架构和连续集成/连续交付(CI/CD)的发展。
3. Docker 的生态体系形成
随着 Docker 社区的强大,Docker 生态系统也在不停完善:
Docker Hub
:作为官方镜像堆栈,提供海量公共镜像供用户下载和分享。
Docker Compose
:让用户可以通过简单的 YAML 文件定义和管理多容器应用。
Docker Swarm
:原生的集群编排工具,使得 Docker 容器在集群环境下实现高可用和负载均衡。
同时,Kubernetes 等容器编排工具的崛起,也让 Docker 成为云原生应用的焦点构成部门。
二、Docker 的今生——云原生期间的明星
1. 广泛应用与财产生态
进入 2020 年代,Docker 不光在开发和测试环境中占据紧张职位,也逐渐成为生产环境中部署微服务架构的首选工具。借助其轻量级、启动快和高效资源使用的优势,Docker 成为了云平台、DevOps 和连续交付流程中的尺度组件。
2. 与 Kubernetes 的协同发展
尽管 Kubernetes 已经成为主流的容器编排平台,但 Docker 依然在镜像构建与容器运行时发挥着紧张作用。部门 Kubernetes 集群也使用 Docker 作为默认的容器运行时,二者形成了互补的生态系统,共同推动了云原生应用的发展。
3. 社区与开源精神
Docker 的乐成离不开活跃的开源社区。全球无数开发者和企业不停为 Docker 贡献代码、撰写文档和开发插件,使其不停进化,满意各种复杂场景下的应用需求。
三、Docker 的安装方法
安装 Docker 的步骤因操作系统不同而略有差异,下面以 Ubuntu、CentOS 以及 Windows/Mac 为例说明:
1. 在 Ubuntu 上安装 Docker
更新软件包索引:
sudo apt-get update
复制代码
安装必要的依赖包:
sudo apt-get install apt-transport-https ca-certificates curl gnupg lsb-release
复制代码
添加 Docker 官方 GPG 密钥:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
复制代码
设置稳定版堆栈:
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
复制代码
安装 Docker Engine:
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
复制代码
验证安装:
sudo docker run hello-world
复制代码
若能乐成输出欢迎信息,则说明 Docker 安装乐成。
2. 在 CentOS 上安装 Docker
卸载旧版本(若有):
sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine
复制代码
安装必要的软件包:
sudo yum install -y yum-utils
复制代码
设置稳定堆栈:
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
复制代码
安装 Docker Engine:
sudo yum install docker-ce docker-ce-cli containerd.io
复制代码
启动 Docker 并设置开机启动:
sudo systemctl start docker
sudo systemctl enable docker
复制代码
测试 Docker 是否正常工作:
sudo docker run hello-world
复制代码
3. 在 Windows 和 macOS 上安装 Docker
Windows:
访问 Docker Desktop for Windows 下载页面下载安装包。
双击安装包,根据向导完成安装。
安装完成后,重启盘算机,并启动 Docker Desktop 举行设置。
macOS:
访问 Docker Desktop for Mac 下载页面下载 DMG 文件。
将 Docker 拖动至“应用程序”文件夹,启动 Docker Desktop。
根据提示完成初次设置即可。
四、常见的 Docker 使用命令详解
把握以下常用命令,可以帮助你高效管理和使用 Docker 容器和镜像:
1. 容器管理命令
docker run
用于从镜像创建并启动一个容器。例如:
docker run -d -p 80:80 nginx
复制代码
该命令会在后台启动一个 Nginx 容器,并将容器的 80 端口映射到宿主机的 80 端口。
docker ps
检察当前正在运行的容器:
docker ps
复制代码
若要检察全部容器(包括停止的):
docker ps
-a
复制代码
docker stop
停止一个正在运行的容器:
docker stop <容器ID或名称>
复制代码
docker rm
删除一个或多个已停止的容器:
docker rm <容器ID或名称>
复制代码
docker exec
在一个正在运行的容器中执行命令,例如进入容器内部:
docker exec -it <容器ID或名称> /bin/bash
复制代码
2. 镜像管理命令
docker images
列出当地全部的 Docker 镜像:
docker images
复制代码
docker pull
从 Docker Hub 或其他堆栈拉取指定的镜像:
docker pull ubuntu:latest
复制代码
docker build
根据 Dockerfile 构建自定义镜像:
docker build -t myimage:1.0 .
复制代码
docker rmi
删除当地镜像:
docker rmi <镜像ID或名称>
复制代码
3. 网络与数据卷
docker network ls
列出全部 Docker 网络:
docker network ls
复制代码
docker volume ls
列出全部数据卷:
docker volume ls
复制代码
docker-compose
固然不是 Docker Engine 的命令,但 Docker Compose 允许用户通过 YAML 文件定义和管理多容器应用,极大简化了复杂应用的部署流程。例如:
docker-compose up -d
复制代码
用于在后台启动全部在 docker-compose.yml 中定义的服务。
五、如何更新 Docker 版本
在日常维护和新功能需求下,更新 Docker 版本是十分常见的操作。更新 Docker 版本前发起先备份紧张的容器和数据,以防升级过程中出现意外环境。下面介绍几种常见的更新方法。
1. 更新前的准备工作
检查当前版本
在更新之前,请先检察当前的 Docker 版本,确认是否需要更新。
docker --version
复制代码
备份数据和设置
如果你的容器中有紧张数据,发起先备份 /var/lib/docker 目录或通过容器内的备份方式保存数据。
注意:如果不删除 /var/lib/docker 目录,更新操作通常不会清除镜像和容器,但数据安全始终是第一位的。
停止 Docker 服务
更新前最好先停止 Docker 服务,确保容器运行状态不会干扰升级过程:
sudo systemctl stop docker
复制代码
2. 使用包管理器更新 Docker
根据你的操作系统,可以采用相应的包管理器来升级 Docker:
Ubuntu/Debian 系统:
更新软件包列表后升级 Docker CE:
sudo apt-get update
sudo apt-get upgrade docker-ce
复制代码
CentOS/Fedora 系统:
使用 yum 命令更新 Docker CE:
sudo yum update docker-ce
复制代码
也可以先检察可用的 Docker 版本,然后指定安装某个版本:
yum list docker-ce --showduplicates | sort -r
sudo yum install docker-ce-<版本号>
复制代码
例如:
sudo yum install docker-ce-25.0.3-1.el7
复制代码
3. 使用 Docker 官方脚本举行更新
Docker 官方提供了一个便捷的安装脚本,该脚本不光可用于全新安装,同样支持更新操作。操作步骤如下:
下载脚本:
curl -fsSL https://get.docker.com -o get-docker.sh
复制代码
运行脚本举行安装或升级:
sudo sh get-docker.sh
复制代码
此方法适用于大多数 Linux 系统,并会主动安装最新稳定版本。
4. 更新后验证
更新完成后,请重新启动 Docker 服务并检查版本:
sudo systemctl start docker
sudo systemctl enable docker
docker --version
复制代码
别的,也可以运行容器举行测试,确保全部服务正常:
docker run hello-world
复制代码
5. 更新中常见问题及注意事项
兼容性检查:
升级前请确认当前容器和镜像与新版本 Docker 兼容,有时 Docker 更新可能会引入不兼容的变更(例如 docker-runc 的参数问题),必要时请参照官方文档或社区经验举行调整。
日志与错误排查:
如果升级后遇到问题,检察 Docker 日志可以帮助定位错误原因:
sudo journalctl -u docker
复制代码
备份恢复:
更新前如果重命名或备份了 /var/lib/docker 目录,更新后可将数据恢复到原路径,确保容器、镜像和数据不丢失。
通过以上步骤,你可以根据自己的系统环境和安装方式选择符合的更新方法,顺遂将 Docker 升级到最新版本,从而享受到新特性和更稳定的运行环境。
六、总结
Docker 从最初借助 Linux 内核的容器技术起步,到现在成为云原生期间不可或缺的工具,其发展进程充分表现了技术演进与社区创新的力量。无论是在开发、测试照旧生产环境中,Docker 都能帮助团队更快地构建、部署和扩展应用。把握 Docker 的安装方法及常用命令,不光能进步运维效率,也为深入相识容器编排、微服务架构以及连续交付打下坚实基础。
随着容器化技术和云盘算的发展,Docker 生态系统还将不停扩展,为软件交付和系统管理带来更多的创新和便利。渴望这篇文章能为你打开 Docker 的大门,助你在技术路上更进一步。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
继续阅读请点击广告
回复
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
知者何南
论坛元老
这个人很懒什么都没写!
楼主热帖
SQLServer数据库基础教程
Sqlserver创建用户并授权
开源二三事|ShardingSphere 与 Databa ...
ESP32-C3 学习测试 蓝牙 篇(六、添加 ...
「笔记」某移动SRE运维体系交流 ...
华为再次登上央视!鸿蒙系统3.0今年上 ...
Oracle调度器Scheduler
我眼中的大数据(三)——MapReduce ...
Kubernetes(K8S) Controller - Statefu ...
这个简单的小功能,半年为我们产研团队 ...
标签云
国产数据库
集成商
AI
运维
CIO
存储
服务器
浏览过的版块
开源技术
运维.售后
数据仓库与分析
快速回复
返回顶部
返回列表