Docker 入门实战:从第一个容器到自己的镜像

举报
yd_217917957 发表于 2026/10/27 04:20:00 2026/10/27
【摘要】 用最直白的方式讲清 Docker 的镜像、容器与仓库,带你跑起第一个容器并构建自己的镜像。

第一次用 Docker 时,很多人都会问:它和虚拟机有什么不同?为什么程序在自己电脑上能跑,换一台机器就出问题?其实 Docker 的核心思路很简单:把程序和运行环境一起打包,走到哪里都能用同样的方式运行。

一、三个核心概念

镜像是只读模板,包含了程序和依赖;容器是镜像运行起来的实例;仓库是存放镜像的地方。改动容器不会自动改变镜像,想固化改动就要重新构建镜像,或者用卷保存数据。容器共享宿主机内核,所以启动快、占用资源少,但隔离强度不如虚拟机,适合大多数开发和 Web 服务场景。

二、跑起第一个容器

确认 Docker 可用后,先运行一个测试容器:

docker run hello-world
docker run -d --name my-web -p 8080:80 nginx

第二条命令中,-d 表示后台运行,–name 是容器名,-p 是端口映射。访问本机 8080 端口就能看到默认页面。用 docker ps 查看运行中的容器,用 docker logs my-web 查看日志,出问题先看日志,再查端口和配置。

三、做出自己的镜像

只会用别人的镜像还不够。假设有一个静态页面,写一个简单的 Dockerfile:

FROM nginx
COPY index.html /usr/share/nginx/html/index.html

然后构建并运行:

docker build -t my-first-web .
docker run -d -p 8081:80 my-first-web

构建时只复制需要的文件,不要把临时文件塞进镜像,否则体积和传输时间都会变大。

四、数据与常用命令

容器删除后,内部数据通常也会消失,需要长期保存的数据要用卷或挂载到宿主机。多个容器互相访问时,可以放进同一个自定义网络,用容器名互相调用。

docker ps -a
docker images
docker stop my-web
docker rm my-web

结语

入门 Docker 不需要一次学完所有命令,先亲手走通这条链路:拉取镜像、启动容器、查看日志、构建自己的镜像、处理一次端口冲突。能独立完成这些,之后再学多容器编排和镜像优化都会顺畅很多。

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

评论(0)

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

全部回复

上滑加载中

设置昵称

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

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

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