Docker 入门:用一个命令跑起你的第一个容器

举报
yd_286221497 发表于 2026/11/10 08:33:02 2026/11/10
【摘要】 Docker 入门:用一个命令跑起你的第一个容器很多人第一次听到 Docker,都会觉得它很重。其实入门只需要一个命令,先跑起来,再慢慢理解后面的概念。 Docker 是什么一句话:Docker 是把应用和它依赖的环境打成一个包,再放到一个隔离的沙箱里运行的工具。以前装一个服务,要先装运行环境、装依赖、改配置,换台机器又要重来一遍。用 Docker 之后,别人做好的镜像拿来就能跑,你的机器...

Docker 入门:用一个命令跑起你的第一个容器

很多人第一次听到 Docker,都会觉得它很重。其实入门只需要一个命令,先跑起来,再慢慢理解后面的概念。

Docker 是什么

一句话:Docker 是把应用和它依赖的环境打成一个包,再放到一个隔离的沙箱里运行的工具。

以前装一个服务,要先装运行环境、装依赖、改配置,换台机器又要重来一遍。用 Docker 之后,别人做好的镜像拿来就能跑,你的机器和服务器跑出来的结果基本一致,少了很多“在我电脑上明明是好的”这种问题。

镜像和容器是两个最核心的概念,别混了。镜像是一份只读的模板,好比安装包;容器是镜像跑起来的实例,好比装好之后正在运行的程序。一个镜像可以跑出多个容器,容器删了,镜像还在,下次还能再跑。

先确认装好了

装好 Docker 之后,先跑这两条确认一下:

docker -v
docker ps

第一条能打出版本号,说明命令行能用。第二条列出正在运行的容器,刚装好时一般是空的,这很正常,不是报错。

如果 docker ps 提示权限问题,在 Linux 上通常是当前用户不在 docker 组里,加 sudo 再跑一次就能确认,先别急着改权限配置。

跑第一个容器

直接跑:

docker run hello-world

这条命令会做三件事:先在本地找 hello-world 这个镜像,找不到就去网上拉下来,然后用它起一个容器,容器跑完打印一段欢迎信息就退出了。

看到欢迎信息,就说明 Docker 已经能正常工作了。容器退出不代表失败,hello-world 本来就是跑完就退的设计,后面很多一次性任务也是这样。

想看刚才跑过的记录,可以跑:

docker ps -a

-a 是把已经退出的容器也列出来。只跑 docker ps 的话,只能看到还在运行的。

常用三条命令

入门先记住这三条就够了:

docker ps        # 看正在运行的容器
docker logs 容器名或ID前几位   # 看容器的输出日志
docker stop 容器名或ID前几位   # 停掉容器
docker rm 容器名或ID前几位     # 删掉已停止的容器

容器名和 ID 不用全写,前几位能唯一区分就行。日志是最常用的排错手段,服务起不来的时候,先看日志,别先猜配置。

端口和目录,各举一个例子

只跑 hello-world 还不够,真正用起来,经常要做两件事:让外面能访问容器里的服务,以及把数据存到容器外面。

端口映射的写法是 -p 外面端口:里面端口,例如:

docker run -d -p 8080:80 nginx

意思是把容器里 nginx 的 80 端口,映射到你机器的 8080 端口,浏览器打开 http://localhost:8080 就能看到 nginx 的欢迎页。-d 是后台运行,不加的话终端会被占用。

目录挂载的写法是 -v 本地目录:容器内目录,例如:

docker run -d -p 8080:80 -v /home/user/html:/usr/share/nginx/html nginx

这样容器里那个目录的内容就来自你本地的 /home/user/html,改本地文件,页面就跟着变,容器删了,本地文件还在。数据重要的服务,一定要挂出来,别只存在容器里。

新手最容易踩的两个坑

第一,容器退出了,以为是 Docker 坏了。其实很多容器没有前台进程,任务跑完就会退出,这是正常行为。想让它一直跑,要么跑一个常驻服务,要么加 -d 后台运行,别反复重装 Docker。

第二,端口被占用。启动时报端口已被使用,通常不是镜像的问题,是你机器上已经有个服务占了那个端口。换一个外面端口再试,例如把 8080 改成 8081,再用 docker ps 确认映射关系。

小结

入门不用一次学全,先跑通 docker run hello-world,再记住 ps、logs、stop、rm 这几条,遇到具体服务再学端口和挂载。跑起来之后,再去看镜像分层、网络、编排这些概念,会比一开始就啃文档轻松很多。


原创短文,2026-11-10,约 850 字,用于华为云开发者社区博客,每日发布文章任务。

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

评论(0)

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

全部回复

上滑加载中

设置昵称

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

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

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