当前位置: 首页 > news >正文

Docker 入门教程(一):从概念到第一个容器

文章目录

  • 🐳 Docker 入门教程(一):从概念到第一个容器
    • 1. Docker 是什么?
    • 2. Docker 的核心概念
    • 3. 安装 Docker
    • 4. 运行你的第一个 Docker 容器

🐳 Docker 入门教程(一):从概念到第一个容器

Docker 是现代开发和运维中的重要工具之一,它简化了软件交付流程、提升了部署效率。本文将带你从 0 开始认识 Docker,并亲手运行第一个容器。


1. Docker 是什么?

Docker 是一个开源容器化平台,用于构建、运行和管理容器(Container)。容器是一种轻量、可移植、自包含的软件打包方式,它将代码及其依赖一起封装,使软件“在任何地方运行”变得可能。

容器 vs 虚拟机

特性容器(Docker)虚拟机(VM)
启动速度秒级分钟级
占用资源
是否需要完整操作系统
可移植性较低
使用场景微服务、CI/CD、快速部署全系统隔离

2. Docker 的核心概念

理解 Docker 的几个核心概念是掌握它的第一步:

镜像(Image)
镜像是一个只读的模板,用于创建容器。你可以将它理解为系统快照,比如一个包含了 Python 解释器的 Ubuntu 环境。

容器(Container)
容器是镜像的运行实例。它是一个运行中的轻量进程,彼此隔离,启动快,可销毁可重建。

Dockerfile
Dockerfile 是构建镜像的脚本文件,包含了系统安装、环境配置、依赖安装等指令。

仓库(Registry)
镜像存储的地方,最常见的是 Docker Hub,你也可以搭建自己的私有 Registry。


3. 安装 Docker

Docker 支持主流操作系统,安装步骤略有不同:

🪟 Windows/macOS

  • 推荐使用 Docker Desktop
  • 安装后自动包含 Docker CLI、Compose、Kubernetes(可选)

🐧 Linux(以 Ubuntu 为例)

# 卸载旧版本
sudo apt remove docker docker-engine docker.io containerd runc# 更新软件包
sudo apt update# 安装依赖
sudo apt install ca-certificates curl gnupg# 添加 Docker GPG 密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg# 设置仓库
echo \"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \$(lsb_release -cs) stable" | \sudo tee /etc/apt/sources.list.d/docker.list > /dev/null# 安装 Docker 引擎
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io# 启动并设置开机启动
sudo systemctl start docker
sudo systemctl enable docker

测试是否安装成功

docker version

4. 运行你的第一个 Docker 容器

现在我们来运行第一个容器:

Hello World 示例

docker run hello-world

解释:

  • docker run: 运行一个容器
  • hello-world: Docker 官方提供的测试镜像

这条命令会做以下事情:

  1. 本地查找是否已有 hello-world 镜像
  2. 如果没有,就从 Docker Hub 下载
  3. 创建并运行容器,输出一段欢迎信息后自动退出

输出示例:

Hello from Docker!
This message shows that your installation appears to be working correctly.
...

常见命令预览

命令说明
docker ps查看运行中的容器
docker ps -a查看所有容器(包括已退出)
docker images查看本地镜像
docker rm [容器ID]删除容器
docker rmi [镜像ID]删除镜像
http://www.lqws.cn/news/533143.html

相关文章:

  • php的案例分析----typecho项目
  • 华为云Flexus+DeepSeek征文|华为云ModelArts搭建Dify-LLM应用开发平台(AI智能选股大模型)
  • 制药行业的精细化管理:GCOM80-2NET自动化解决方案
  • 用pthread_setschedparam设置调度策略
  • Altera PCI IP target设计分享
  • STM32F103ZET6开发板【项目工程创建】+具体实现步骤流程
  • 构建高效字符串编解码系统:Prefix-Token-Suffix三元组方法
  • python pyecharts 数据分析及可视化
  • 创客匠人解析视频号公私域互通逻辑:知识变现的破圈与沉淀之道
  • [特殊字符]推客带货小程序解决方案——0门槛裂变营销,佣金赚不停!
  • 408考研逐题详解:2010年第7题——连通图的边
  • 代码随想录|图论|06岛屿数量(广搜BFS)
  • PhoneRescue 4.3绿色版!解决iPhone数据丢失、系统崩溃等场景
  • 单片机 - STM32F103“复用功能重映射”完整解析:从JTAG释放到TIM重映射实战详解
  • CTF:PHP 多关卡绕过挑战
  • 专注推理查询(ARQs):一种提升大型语言模型指令遵循度、决策准确性和防止幻觉的结构化方法
  • 【攻防篇】解决:阿里云docker 容器中自动启动xmrig挖矿
  • ISP Pipeline(5): Auto White Balance Gain Control (AWB) 自动白平衡
  • 数据结构大项目
  • react - ReactRouter—— 路由传参
  • 【STM32 学习笔记】PWR电源控制
  • Java 大视界 -- 基于 Java 的大数据可视化在智慧城市能源消耗动态监测与优化决策中的应用(324)
  • 【linux】全志Tina配置swupdate工具进行分区打包
  • 《PT100两线制温度测量系统设计:从电路原理到嵌入式实现》
  • 【嵌入式ARM汇编基础】-ELF文件格式内部结构详解(二)
  • 香港政府发表《香港数字资产发展政策宣言 2.0》,提出「LEAP」框架
  • 星型模式(Star Schema)
  • lua脚本为什么能保证原子性
  • 云效代码仓库导入自建gitlab中
  • Redis核心知识详解:从全局命令到高级数据结构