Docker 入门实战:从第一个容器到自己的镜像
【摘要】 用最直白的方式讲清 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)