Docker入门
Docker
Docker的简单入门

如图可见Docker的标志是一个装有集装箱的鲸鱼,这个标志也间接说明的它是做什么的;
一、Docker的作用
1.简单介绍Docker
在进入Docker入门前先说一个在开发中经常会遇到的问题:
- 在软件开发工作中,我们总会遇到经典的“世界名画”:为什么在你的本地能正常运行,在我 的本地就不行?
Docker,正是为了解决这个经典痛点而生的。
它的核心能力,是对软件及其完整运行环境进行标准化封装。
接下来就详细介绍一下Docker是怎么实现这个操作的,让你可以我不可以变为,你可以我也可以;
2.Docker的核心重点
Docker的整个体系,围绕两个核心概念展开:镜像(Image) 与 容器(Container)。
- 镜像,是一个只读的、标准化的应用运行模板。它完整定义了应用运行所需的所有环境、文件与配置,就像蛋糕的模具、建筑的施工图纸,是固定不变的“蓝本”。我们无需手动配置任何环境,只需把镜像从仓库拉取到本地,就拥有了应用运行的全部基础。
- 容器,是镜像的运行实例,也就是基于这个模板启动的、可运行的“成品”。基于同一个镜像,你可以在任意多台机器上启动任意多个容器,每个容器都是独立、隔离的运行环境,且行为完全一致,从根本上解决了“本地能跑、线上不行”的问题。

如图所示,镜像就像精确到克的蛋糕配方 + 所有原材料的预打包套装,容器就像按照配方烤好的、可以直接食用的蛋糕;
镜像中拥有很多很多的东西,它需要一个可以将它运行启动的在载体,这个载体就是容器。
3.镜像仓库
如果把容器镜像比作软件的 “安装包”,那么镜像仓库就相当于专门托管这些 “安装包” 的 GitHub—— 它不仅提供存储服务,还支持镜像的版本管理、标签标记和权限控制。Docker 官方运营的 Docker Hub 是全球最大、最主流的公共镜像仓库,我们既可以从上面拉取官方维护的基础镜像(如 Ubuntu、Nginx、MySQL),也可以上传和分发自己打包的自定义镜像。
二、Docker的入门
1.Docker的下载安装
不管是任何工具都需要下载,Docker也不例外也是需要下载;
可以在Docker的官网上进行下载对应的版本:
https://www.docker.com/
这是Docker的官方网站,由于是国外的软件网站进入会比较慢;进入网站后会显示如图所示的界面;
根据自己的电脑选择对应的版本进行安装即可,win版一般选择AMD64即可,Mac根据自己电脑的芯片选择对应的版本即可:
2.Linux上Docker的安装
这里单独介绍一下Linux上关于Docker的安装,Linux安装为命令行格式,可以在
get.docker.com
地址中获取安装命令行:
curl -fsSL https://get.docker.com -o install-docker.sh
这就是安装指令,
-
第一次执行curl命令可能会出现curl未安装的错误,解决办法是:
sudo apt install curl -y,-y代表后续会允许安装操作,可以不需要输入Y进行允许操作。 -
还有一个问题就是Linux安装使用国外路径可能会出现网络异常,连接被对方重置的问题:

解决办法就是用国内的镜像源进行安装: -
下载阿里云 Docker 安装脚本
curl -fsSL https://get.docker.alibaba-inc.com -o install-docker.sh
- 执行安装
sudo sh install-docker.sh
sudo代表为管理员身份执行命令,如果Linux中不是root用户就需要使用sudo执行,这就需要看你创建的虚拟机是否创建管理员身份了,要是创建了管理员身份就不需要使用sudo。
3.Win或Mac安装
-
Win系统或Mac系统就需要根本自己电脑下载对应的安装包进行安装,只需要无脑下一步即可,这里就不多介绍了;
-
Windows安装就需要打开本机的启用或关闭Windows功能打开Virtual Machine Platform(虚拟机平台),适用于Linux的Windows子系统,如果Win系统安装完成后打开DockerDesktop出现starting状态无法进入可以看Docker处于starting状态如何解决解决starting问题。
三、Docker的命令
1.Docker命令介绍

Docker的命令包括四个部分:docker.io为docker仓库的注册表地址(可以省略),公共仓库
library为命名空间(作者名),如果为官方空间可以省略,如图中的library为官方空间
:latest为镜像版本号(可以指定版本进行下载),如果不写为获取最新的版本号,这段指令可以简写为:
docker pull nginx

测试用例:
docker run hello-world
执行后Docker会自动拉取hello-world镜像,并输出欢迎信息,就说明Docker环境已经安装成功了。
2.容器生命周期命令
| 命令 | 作用 | 说明 |
|---|---|---|
| docker create [参数] 镜像名 | 创建容器 | 仅生成容器实例,处于停止状态 |
| docker start 容器ID/容器名 | 启动已创建的容器 | 启动处于停止状态的容器 |
| docker run [参数] 镜像名 | 创建并启动容器 | 最常用命令,等价于 create + start |
| docker stop 容器ID/容器名 | 停止运行中的容器 | 优雅停止容器,等待进程退出 |
| docker restart 容器ID/容器名 | 重启容器 | 先 stop 再 start |
| docker rm 容器ID/容器名 | 删除已停止的容器 | 加 -f 参数可强制删除运行中的容器 |
| docker exec [参数] 容器ID/容器名 命令 | 在运行中的容器内执行命令 | 加 -it 参数可进入容器交互式终端 |
| docker ps | 查看运行中的容器 | 加 -a 参数查看所有容器(包括停止的) |
| docker inspect 容器ID/容器名 | 查看容器 / 镜像 / 网络 / 卷的详细信息 | 可获取容器 IP、挂载路径、环境变量等 |
3.Docker常用指令
| 指令 | 作用 |
|---|---|
| docker pull <镜像名>:<标签>(可省略) | 从仓库拉取镜像 |
| docker images | 查看本地所有镜像 |
| docker rmi <镜像ID/名> | 删除本地镜像 |
| docker build -t <镜像名>:<标签>(可省略) | 基于 Dockerfile 构建镜像 |
| docker save -o <文件名>.tar <镜像名> | 导出镜像为 tar 文件 |
| docker load -i <文件名>.tar | 从 tar 文件导入镜像 |
| docker ps | 查看运行中的容器 |
| docker ps -a | 查看所有容器(包括停止的) |
| docker logs -f <容器ID/名> | 实时查看容器日志 |
| docker exec -it <容器ID/名> /bin/bash | 进入容器内部 |
| docker rm <容器ID/名> | 删除停止的容器 |
| docker cp <本地路径> <容器ID/名>:<容器路径> | 在主机和容器间拷贝文件 |
四、关于国内拉取镜像比较慢
由于国内网络环境问题,直接拉取 Docker Hub 镜像速度较慢,建议配置国内镜像加速源可以缓解拉取镜像慢;
1.创建国内镜像加速
- 创建Docker 守护进程配置文件
sudo vi /etc/docker/daemon.json
- 写入以下JSON内容(JSON内容对格式要求比较严格,格式错误会导致 Docker 无法启动)
{
"registry-mirrors": [
"https://docker.m.daocloud.io",
"https://docker.1panel.live",
"https://hub.rat.dev"
]
}
- 重启 Docker 服务使配置生效
# 重启Docker服务
sudo systemctl restart docker
# 兼容旧版 service 命令
sudo service docker restart
- 验证配置是否生效
docker info
# 查看输出末尾 Registry Mirrors 下有上述地址即配置成功
五、Dockerfile 与 Docker Compose
1.关于Dockerfile
Dockerfile 是一个文本文件,通过一系列指令详细描述了如何从基础镜像构建出自定义镜像,是实现镜像标准化、自动化构建的核心。
举个通俗易懂的例子就是:
- Dockerfile 就是一份写在纯文本里的标准化菜谱。
它会精确告诉你:先拿什么基础食材(基础镜像),然后依次加什么调料、切什么菜、用什么火候、煮多长时间……Docker 照着这份菜谱,就能每次都做出味道、分量完全一致的菜(自定义镜像)。它解决了 “换个人做味道就变” 的问题,还能一键自动完成整个烹饪过程。
2.关于Docker Compose
Docker Compose 用于定义和运行多容器应用,通过一个 YAML 文件配置应用所需的所有服务,然后一键启动所有容器。Docker Compose 会自动为应用创建独立的自定义网络,实现服务间的相互通信。
同样举一个例子:
- 如果说 Dockerfile 是单道菜的详细菜谱,那 Docker Compose 就是一整桌宴席的总菜单。
单道菜 = 单个 Docker 容器
一桌宴席 = 你的多容器应用(比如一桌包含凉菜、热菜、汤、主食的完整宴席)
YAML 配置文件 = 宴席清单,写清楚要做哪几道菜、每道菜用什么菜谱、什么时候上、怎么摆盘
一键启动 = 厨房照着清单一次性把所有菜都做好、按顺序端上桌
自动创建独立网络 = 给这桌宴席安排一个独立的包间,只有这桌的客人能互相交流,不会和其他桌混在一起
它解决了 “每次请客都要自己一道道菜做、还要安排座位和上菜顺序” 的麻烦,让你一键就能摆出一桌标准统一的宴席。
3.Docker Compose的指令
| 指令 | 作用 |
|---|---|
| docker compose up -d | 启动所有服务(前台运行,加 -d 后台运行) |
| docker compose down | 停止并删除所有服务容器、网络 |
| docker compose stop | 仅停止服务,不删除容器和网络 |
| docker compose start | 启动已停止的服务 |
六、推荐快速学习Docker的教程
这是我学习Docker推荐快速学习的一个教程它只有40分钟左右可以快速入门了解Docker。
快速入门Docker指南
总结
这篇 Docker 入门教程就告一段落了。从 “为什么我的代码在你电脑上跑不起来” 这个困扰无数开发者的经典痛点出发,我们一起认识了 Docker 这个容器化时代的核心工具,拆解了镜像、容器、仓库这三个最核心的概念,走完了从跨平台安装、基础命令使用到国内环境优化的完整流程,最后还初步了解了 Dockerfile 和 Docker Compose 这两个实现自动化构建和多容器编排的利器;最后感兴趣的兄弟们强烈建议自己在Linux中尝试使用一下Docker,多多使用这些指令你会熟记于心。
最后,希望这篇教程能帮你快速进入容器化世界的大门,从此告别环境不一致的烦恼,让开发和部署变得更加高效和轻松。如果在实践过程中遇到问题,不妨回头再翻翻这篇教程,有各种想法都可以在评论区留言交流。祝你们的开发道路上越来越顺利!
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐

所有评论(0)