【Docker基础学习】从VM虚拟机到Docker

运维记忆

工作这么多年以来,接触运维还是停留在七八年前,那时候刚进入一个创业公司,作为一名后端开发,有些时候还是会接触到服务器,在黑窗窗里敲一些命令。后来,去到的公司职能都划分的比较清晰,前端、后端、运维,所以我的运维记忆还停留用VM虚拟机学习安装各种软件环境。现在回到二线城市工作,开发需要全面,前端、后端、运维你都会是最好的。所以,我开始学习使用Docker了。Docker是什么,如果你和我一样,也接触过用VM虚拟机学习运维,那么下面的对比图就很清楚两者的区别了。

传统虚拟机与Docker容器对比

简单理解:Docker 是轻量级的虚拟机,但比传统虚拟机更高效、更快速。

安装Docker

下载地址:
Windowshttps://docs.docker.com/desktop/setup/install/windows-install/
Machttps://docs.docker.com/desktop/setup/install/mac-install/
Linuxhttps://docs.docker.com/desktop/setup/install/linux/

三大核心组件

组件 说明 类比
镜像(Image) 只读模板,包含应用运行所需的所有内容 安装光盘/ISO文件
容器(Container) 镜像的运行实例 安装好的操作系统/应用程序
仓库(Registry) 存放镜像的地方 应用商店/GitHub

三者之间的关系如下图所示:

Docker架构

基本命令

镜像操作

powershell 复制代码
# 搜索镜像
docker search nginx

# 拉取镜像(从Docker Hub)
docker pull nginx:latest
docker pull ubuntu:20.04

# 查看本地镜像
docker images
docker image ls

# 删除镜像
docker rmi <镜像ID或名称>
docker image rm nginx:latest

# 查看镜像详情
docker inspect nginx

# 保存镜像为文件
docker save -o nginx.tar nginx:latest

# 从文件加载镜像
docker load -i nginx.tar

容器操作

powershell 复制代码
# 1. 运行容器(最常用)
docker run [选项] <镜像名>

# 示例:运行nginx并映射端口
docker run -d -p 8080:80 --name my-nginx nginx
# -d: 后台运行
# -p: 端口映射(主机:容器)
# --name: 为容器命名

# 2. 查看容器
docker ps           # 查看运行中的容器
docker ps -a        # 查看所有容器(包括停止的)

# 3. 停止/启动/重启容器
docker stop my-nginx
docker start my-nginx
docker restart my-nginx

# 4. 进入容器内部
docker exec -it my-nginx /bin/bash
# -i: 交互模式
# -t: 分配伪终端

# 5. 查看容器日志
docker logs my-nginx
docker logs -f my-nginx  # 实时查看

# 6. 删除容器
docker rm my-nginx
docker rm -f my-nginx   # 强制删除运行中的容器

# 7. 复制文件
docker cp file.txt my-nginx:/tmp/      # 主机→容器
docker cp my-nginx:/tmp/file.txt ./    # 容器→主机
相关推荐
ACP广源盛139246256731 天前
IX8024与科学大模型的碰撞@ACP#筑牢科研 AI 算力高速枢纽分享
运维·服务器·网络·数据库·人工智能·嵌入式硬件·电脑
百年੭ ᐕ)੭*⁾⁾1 天前
docker使用neo4j
docker·容器·neo4j
峥无1 天前
Linux系统编程基石:静态库·动态库·ELF文件·进程地址空间全景图
linux·运维·服务器
码云数智-大飞1 天前
本地部署大模型:隐私安全与多元优势一站式解读
运维·网络·人工智能
Harvy_没救了1 天前
【网络部署】 Win11 + VMware CentOS8 + Nginx 文件共享服务 Wiki
运维·网络·nginx
春风有信1 天前
【2026.05.01】Windows10安装Docker Desktop 4.71.0.0步骤及问题解决
运维·docker·容器
2401_873479401 天前
断网时如何实时判断IP归属?嵌入本地离线库,保障风控不中断
运维·服务器·网络
守城小轩1 天前
基于Chrome140的Yahoo自动化(关键词浏览)——需求分析&环境搭建(一)
运维·自动化·chrome devtools·浏览器自动化·指纹浏览器·浏览器开发
handler011 天前
Linux 内核剖析:进程优先级、上下文切换与 O(1) 调度算法
linux·运维·c语言·开发语言·c++·笔记·算法
日取其半万世不竭1 天前
LVM 逻辑卷管理:不停机扩容磁盘的正确方式
运维·服务器