Docker 入门:从零理解容器化开发

举报
yd_236211712 发表于 2026/10/22 00:36:40 2026/10/22
【摘要】 本文从零介绍 Docker:为什么需要容器化、镜像/容器/仓库三大核心概念、安装步骤、第一个容器实战、常用命令、Dockerfile 构建镜像与 Volume 数据持久化,帮你快速跨过 Docker 入门门槛。

一、为什么需要 Docker

在传统开发模式中,“在我机器上能跑”是最让人头疼的一句话。开发环境、测试环境、生产环境的差异,常常导致应用在不同机器上表现不一致。Docker 的出现正是为了解决这个问题:它把应用及其依赖打包成一个标准化的“容器”,无论在哪里运行,行为都完全一致。

与虚拟机相比,容器不需要完整的操作系统内核,而是共享宿主机的内核,因此启动速度以秒计、资源占用也小得多。这使得 Docker 成为现代云原生开发的基础工具。

二、三个核心概念

学习 Docker,先要理解三个核心概念:

  • 镜像(Image):只读的模板,包含了运行应用所需的一切:代码、运行时、库、环境变量等。可以把镜像理解为“安装包”。
  • 容器(Container):镜像的运行实例。容器是轻量、可执行的独立运行环境,多个容器可以从同一个镜像启动,彼此隔离。
  • 仓库(Repository):集中存放镜像的地方。最常用的是 Docker Hub,你可以从上面拉取官方镜像,也可以把自己的镜像推送上去。

三、安装 Docker

以 Ubuntu 为例,安装非常简单:

sudo apt update
sudo apt install docker.io
sudo systemctl start docker
sudo systemctl enable docker

安装完成后运行 docker version 验证。如果看到客户端和服务端版本信息,说明安装成功。

四、运行第一个容器

执行下面这条命令,启动你的第一个容器:

docker run hello-world

这条命令做了三件事:本地没有 hello-world 镜像,就从 Docker Hub 拉取;用镜像创建并启动容器;容器输出一段欢迎信息后退出。

再试一个更有意思的:

docker run -d -p 8080:80 nginx

-d 表示后台运行,-p 8080:80 把宿主机的 8080 端口映射到容器的 80 端口。打开浏览器访问 http://localhost:8080,就能看到 Nginx 的欢迎页。

五、常用命令速览

  • docker ps:查看运行中的容器
  • docker ps -a:查看所有容器(含已停止)
  • docker images:查看本地镜像
  • docker stop/start <容器名或ID>:停止/启动容器
  • docker rm <容器>:删除容器
  • docker rmi <镜像>:删除镜像
  • docker logs <容器>:查看容器日志
  • docker exec -it <容器> bash:进入运行中的容器

六、Dockerfile:构建自己的镜像

把应用打包成镜像,需要写一个 Dockerfile。下面是一个 Node.js 应用的例子:

FROM node:18
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 3000
CMD ["node", "app.js"]

每一行都是一层镜像层:FROM 指定基础镜像,WORKDIR 设置工作目录,COPY 拷贝文件,RUN 执行安装,EXPOSE 声明端口,CMD 指定容器启动时执行的命令。

构建镜像:

docker build -t my-node-app .

运行自己的镜像:

docker run -d -p 3000:3000 my-node-app

七、数据持久化:Volume

容器删除后,里面的数据也会消失。如果要保存数据,可以使用 Volume:

docker run -d -v mydata:/data nginx

-v 把宿主机的卷 mydata 挂载到容器的 /data 目录,数据会保存在卷中,容器删除后依然存在。

八、小结

Docker 的核心价值在于“一次构建,到处运行”。掌握镜像、容器、仓库三个概念,学会 run、ps、build 等常用命令,再能写出简单的 Dockerfile,你就已经跨过了 Docker 的入门门槛。接下来可以继续学习 Docker Compose 编排多容器应用,以及在云服务器上部署容器化应用。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。