Docker 基础入门:从安装到第一个容器实战

简介: 本文带你快速入门Docker,详解容器化技术原理,涵盖CentOS环境下的安装步骤、核心概念(镜像、容器、仓库)及实战部署Nginx应用,助你轻松掌握云原生基础技能。

作为云原生时代的核心工具,Docker 的 “容器化” 能力能帮开发者快速打包、部署应用。本文带你从 0 开始,搞定 Docker 的安装、核心概念,再跑通第一个实战案例。
一、Docker 是什么?
简单说:Docker 是一个容器引擎,能把应用 + 依赖(比如库、配置)打包成一个 “容器”,实现 “一次构建,到处运行”—— 不用再担心 “本地能跑,线上崩了” 的环境问题。
二、Docker 快速安装(以 CentOS 为例)
先卸载旧版本(如果有的话):
bash
运行
sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine
安装依赖包:
bash
运行
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
设置 Docker 镜像源(用阿里云加速):
bash
运行
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
安装 Docker 引擎:
bash
运行
sudo yum install -y docker-ce docker-ce-cli containerd.io
启动 Docker 并设置开机自启:
bash
运行
sudo systemctl start docker
sudo systemctl enable docker
验证安装:输入docker --version,能看到版本号就成功啦!
三、Docker 核心概念(3 分钟搞懂)
镜像(Image):相当于 “应用安装包”,是容器的 “模板”(比如 Ubuntu 系统镜像、Nginx 镜像)。
容器(Container):镜像运行后的 “实例”,是独立的运行环境(一个镜像可以启动多个容器)。
仓库(Repository):存放镜像的地方(比如 Docker Hub 是官方公共仓库,阿里云也有私有镜像仓库)。
四、实战:启动你的第一个 Nginx 容器
拉取 Nginx 官方镜像:
bash
运行
docker pull nginx:latest # 拉取最新版Nginx镜像
查看本地镜像:
bash
运行
docker images # 能看到nginx镜像就说明拉取成功
启动 Nginx 容器:
bash
运行
docker run -d -p 8080:80 --name my-nginx nginx
-d:后台运行容器;
-p 8080:80:把主机的 8080 端口映射到容器的 80 端口(Nginx 默认监听 80);
--name my-nginx:给容器起个名字叫 “my-nginx”。
验证效果:打开浏览器访问http://你的服务器IP:8080,能看到 Nginx 的默认页面就成功啦!
五、常用 Docker 命令(收藏备用)
查看运行中的容器:docker ps
停止容器:docker stop my-nginx
删除容器:docker rm my-nginx(需先停止)
进入容器内部:docker exec -it my-nginx /bin/bash

相关文章
|
10月前
|
人工智能 自然语言处理 前端开发
DeepSite:基于DeepSeek的开源AI前端开发神器,一键生成游戏/网页代码
DeepSite是基于DeepSeek-V3模型的在线开发工具,无需配置环境即可通过自然语言描述快速生成游戏、网页和应用代码,并支持实时预览效果,显著降低开发门槛。
1768 93
DeepSite:基于DeepSeek的开源AI前端开发神器,一键生成游戏/网页代码
|
2月前
|
缓存 前端开发 JavaScript
Vue微服务架构实践:从单应用到微前端的落地方案
本文详解Vue微前端架构,针对大型项目面临的代码冗余、协作困难等问题,拆解从子应用改造、主应用搭建到部署优化的全流程。基于qiankun框架,实现团队独立开发、技术栈灵活、增量升级与独立部署,提升系统可维护性与扩展性,为中大型前端项目提供落地实践方案。
190 0
|
5月前
|
Linux
Linux系统修改网卡名为eth0、eth1
在Linux系统中,可通过修改GRUB配置和创建Udev规则或使用systemd链接文件,将网卡名改为`eth0`、`eth1`等传统命名方式,适用于多种发行版并支持多网卡配置。
954 3
|
2月前
|
敏捷开发 Dubbo Java
需求开发人日评估
本文介绍敏捷开发中工时评估方法,以“人日”为单位,针对开发、自测、联调、测试及发布各阶段提供参考周期,并列举常见需求如Excel导入导出、单表增删改查、跨服务调用等的典型人日估算,助力团队科学规划迭代进度。
44 1
|
2月前
|
缓存 JavaScript 前端开发
Vue项目实战入门:从0到1搭建电商商品列表页
本文以电商商品列表页为实战案例,详解Vue3项目从需求分析、环境搭建到核心功能实现的完整流程。涵盖组件化开发、Pinia状态管理、Vue Router路由跳转及Axios接口封装,助你掌握Vue工程化开发核心技能,快速构建可落地的前端应用。
95 0
|
2月前
|
JavaScript 前端开发 小程序
Vue为何能稳居前端框架主流宝座
自2014年发布以来,Vue凭借“低门槛、渐进式、生态完善、持续进化”四大优势,迅速跻身前端主流框架。其简洁的模板语法降低学习成本,灵活架构适配各类项目,官方生态与活跃社区提升开发效率,Vue3性能升级与跨平台能力更支撑大厂核心业务,成为中小企业与头部企业共同选择,地位日益稳固。
122 0
|
2月前
|
敏捷开发 Java 测试技术
为什么要单元测试
本文探讨单元测试如何让软件开发提速而非拖慢进度。通过剖析测试体系演进、测试金字塔理念,揭示单元测试在提升代码质量、调试效率和研发信心方面的核心价值,助力项目高效迭代,实现从“爬行”到“奔跑”的进化。
49 0
|
2月前
|
SQL Dubbo Java
线程池:故障梳理总结
本文从故障与技术双重视角,总结线程池满导致服务不可用的常见原因及应对策略。涵盖数据库慢查询、连接池配置不当、超时设置缺失等典型问题,结合真实案例分析,提出fast-fail、流控、背压、合理重试等最佳实践,助力开发者提升系统稳定性与容错能力。
58 0
|
6月前
|
存储 SQL 大数据
告别 Count Distinct 慢查询:StarRocks 高效去重全攻略
在大数据分析中,去重计算(如 Count Distinct)因高计算开销常成为性能瓶颈,尤其在高基数和高并发场景下更为明显。本文以 StarRocks 为分析平台,深入探讨多种去重优化策略,包括使用函数、数据类型转换(如 String 转 Int)、高效数据结构(如 Bitmap 和 HLL),以及物化视图的预计算方案。通过实际案例分析,对比不同方法在性能、精度和易用性方面的优劣,帮助用户在不同业务场景下选择最合适的优化手段。此外,文章还详细解析了如何结合 SQL 查询构建物化视图,以提升去重计算效率,并讨论了精确与近似去重的适用场景。最终目标是为复杂数据分析提供高效、灵活的解决方案。
|
SQL 关系型数据库 MySQL
SQL Error (2013): Lost connection to MySQL server at 'waiting for initial communication packet', sys...
SQL Error (2013): Lost connection to MySQL server at 'waiting for initial communication packet', sys...
1041 0