Docker 入门:先搞懂镜像和容器,再记十条常用命令
【摘要】 很多人第一次接触 Docker,卡住的不是命令,而是概念:镜像和容器到底是什么关系,为什么删了容器数据就没了,为什么同一个镜像能跑出好几个互不干扰的服务。把这层关系想通,后面的命令都是顺理成章的事。一、用做菜来理解三个核心概念镜像(Image):一份打包好的"菜谱 + 预制料包"。里面有所需的操作系统基础层、运行时和你的程序文件,只读,不能直接"吃"。容器(Container):照着菜谱真正...
很多人第一次接触 Docker,卡住的不是命令,而是概念:镜像和容器到底是什么关系,为什么删了容器数据就没了,为什么同一个镜像能跑出好几个互不干扰的服务。把这层关系想通,后面的命令都是顺理成章的事。
一、用做菜来理解三个核心概念
- 镜像(Image):一份打包好的"菜谱 + 预制料包"。里面有所需的操作系统基础层、运行时和你的程序文件,只读,不能直接"吃"。
- 容器(Container):照着菜谱真正下锅做出的那盘菜。它是镜像的一个运行实例,有自己独立的文件系统视图、进程和网络空间。你可以同时用同一个镜像跑出多个容器,就像同一份料包做几盘菜,互不影响。
- 仓库(Registry):存放镜像的"超市",最常用的是 Docker Hub。
docker pull就是把料包买回家,docker push是把自己打包的料包上架。
容器删掉之后,它运行期间改动的那一层也会消失。所以数据库文件、上传内容这类需要长期保存的数据,要挂载到数据卷(Volume)或宿主机目录上,这是新手最容易踩的坑。
二、十条最常用的命令
docker pull nginx:latest # 拉取镜像
docker images # 查看本地镜像
docker run -d -p 8080:80 --name web nginx # 后台启动容器,把宿主机8080映射到容器80
docker ps # 查看正在运行的容器
docker ps -a # 查看全部容器(含已停止的)
docker logs -f web # 持续查看容器日志
docker exec -it web bash # 进入容器内部排查问题
docker stop web # 停止容器
docker rm web # 删除已停止的容器
docker rmi nginx:latest # 删除镜像
其中 docker run 的三个参数最值得记牢:-d 表示后台运行,-p 是端口映射(左边宿主机、右边容器内),--name 给容器起个固定名字,后续 logs、exec 都靠它定位。
三、给新手的三个建议
- 先用官方镜像练手:nginx、mysql、redis 都有维护良好的官方镜像,文档齐全,出问题好排查。
- 数据一定要外置:凡是删了会心疼的数据,一律用
-v挂载出来,别赌容器不删。 - 学会看日志:服务起不来,先
docker logs看报错,再docker exec进去看配置,八成问题都能自己定位。
理解了镜像是模板、容器是实例,再配上这十条命令,日常的本地开发环境搭建基本就够用了。下一步可以了解 Dockerfile,把自己的程序也打包成镜像,分发和部署都会方便很多。
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)