当前位置: 首页 > 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]删除镜像

相关文章:

  • 【C++】ATM机模拟系统 :完整窗口实现
  • 【论文】云原生事件驱动架构在智能风控系统中的实践与思考
  • 抖音图文带货和短视频带货有什么区别
  • 玄机抽奖Spring Web项目
  • 9. 回文数
  • linux网络编程socket套接字
  • 与 AI 聊天更顺畅:cat_code.py
  • MySQL5.7和8.0 破解root密码
  • C++ STL ——string的使用讲解及其底层实现
  • react-嵌套路由 二级路由
  • 128K 长文本处理实战:腾讯混元 + 云函数 SCF 构建 PDF 摘要生成器
  • Spring Cloud Config动态刷新实战指南
  • CyberGlove触觉反馈手套遥操作机器人灵巧手解决方案
  • java中的anyMatch和allMatch方法
  • [3D-portfolio] 版块包装高阶组件(封装到HOC) | Email表单逻辑 | 链式调用
  • 【Electron】electron+react的插件@electron/remote用法,在渲染进程直接调用主进程的API
  • 码蹄集:MT2045斐波那契,但是是字符串
  • Java设计模式->责任链模式的介绍
  • Java 编程之备忘录模式
  • SQL学习笔记3