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

相关文章
|
人工智能 自然语言处理 前端开发
DeepSite:基于DeepSeek的开源AI前端开发神器,一键生成游戏/网页代码
DeepSite是基于DeepSeek-V3模型的在线开发工具,无需配置环境即可通过自然语言描述快速生成游戏、网页和应用代码,并支持实时预览效果,显著降低开发门槛。
1851 93
DeepSite:基于DeepSeek的开源AI前端开发神器,一键生成游戏/网页代码
|
Oracle 关系型数据库 数据库
|
4月前
|
缓存 前端开发 JavaScript
Vue微服务架构实践:从单应用到微前端的落地方案
本文详解Vue微前端架构,针对大型项目面临的代码冗余、协作困难等问题,拆解从子应用改造、主应用搭建到部署优化的全流程。基于qiankun框架,实现团队独立开发、技术栈灵活、增量升级与独立部署,提升系统可维护性与扩展性,为中大型前端项目提供落地实践方案。
669 0
|
数据可视化 Linux
Linux centos7.x系统 下没有ens33 网卡的解决方案
此时还没有enp0s31f6网卡相关的配置信息 , 所以我们需要配置enp0s31f6网卡相关的信息
2250 0
|
4月前
|
敏捷开发 Dubbo Java
需求开发人日评估
本文介绍敏捷开发中工时评估方法,以“人日”为单位,针对开发、自测、联调、测试及发布各阶段提供参考周期,并列举常见需求如Excel导入导出、单表增删改查、跨服务调用等的典型人日估算,助力团队科学规划迭代进度。
94 1
|
4月前
|
缓存 JavaScript 前端开发
Vue项目实战入门:从0到1搭建电商商品列表页
本文以电商商品列表页为实战案例,详解Vue3项目从需求分析、环境搭建到核心功能实现的完整流程。涵盖组件化开发、Pinia状态管理、Vue Router路由跳转及Axios接口封装,助你掌握Vue工程化开发核心技能,快速构建可落地的前端应用。
396 0
|
4月前
|
JavaScript 前端开发 小程序
Vue为何能稳居前端框架主流宝座
自2014年发布以来,Vue凭借“低门槛、渐进式、生态完善、持续进化”四大优势,迅速跻身前端主流框架。其简洁的模板语法降低学习成本,灵活架构适配各类项目,官方生态与活跃社区提升开发效率,Vue3性能升级与跨平台能力更支撑大厂核心业务,成为中小企业与头部企业共同选择,地位日益稳固。
220 0
|
4月前
|
SQL Dubbo Java
线程池:故障梳理总结
本文从故障与技术双重视角,总结线程池满导致服务不可用的常见原因及应对策略。涵盖数据库慢查询、连接池配置不当、超时设置缺失等典型问题,结合真实案例分析,提出fast-fail、流控、背压、合理重试等最佳实践,助力开发者提升系统稳定性与容错能力。
81 0
|
4月前
|
网络协议 网络安全 网络虚拟化
DNS 隧道
DNS隧道利用DNS协议在53端口传输非DNS流量,如HTTP数据。虽有合法用途,但常被攻击者用于恶意目的,伪装出站流量,窃取数据或建立命令与控制通道,隐蔽性强,威胁网络安全。
|
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...
1124 0