Docker 入门常用命令:镜像、容器、数据卷与网络

举报
yd_270197239 发表于 2026/11/09 18:14:21 2026/11/09
【摘要】 第一次接触 Docker 时,最容易被各种命令淹没。其实入门只需要抓住一条主线:镜像是模板,容器是运行起来的实例,数据卷负责持久化数据,网络负责让容器之间互联互通。下面按镜像、容器、数据卷、网络四个部分,把最常用的命令梳理一遍。

第一次接触 Docker 时,最容易被各种命令淹没。其实入门只需要抓住一条主线:镜像是模板,容器是运行起来的实例,数据卷负责持久化数据,网络负责让容器之间互联互通。下面按这四个部分,把最常用、最值得先记住的命令梳理一遍。

一、镜像:只读的模板

镜像是只读的模板,所有容器都是从镜像启动的。查看本机已有镜像、拉取镜像、自己打包镜像、删除镜像,分别用下面几条命令:

docker images
docker pull nginx:latest
docker build -t myapp:1.0 .
docker rmi myapp:1.0

初学者常把镜像和容器混为一谈:删除镜像前要先停掉并删除依赖它的容器,否则会提示冲突。标签(tag)相当于镜像的版本号,写清楚 latest 之外的具体版本,上线后回滚才有据可查。

二、容器:镜像的运行实例

容器是镜像的运行实例。最常用的是 docker run,比如以后台方式启动一个 Nginx 并映射端口:

docker run -d --name web -p 8080:80 nginx
docker ps
docker ps -a
docker exec -it web sh
docker logs -f web
docker stop web
docker rm web

记住用 --name 给容器起个名字,后面所有命令都可以直接用名字而不用抄容器 ID,省事很多。docker ps 默认只显示运行中的容器,加上 -a 可以看到已停止的容器,排查问题时别漏了这个参数。

三、数据卷:让数据活下来

容器删掉后,写在容器可写层里的数据也会一起消失,数据库这类有状态服务不能这样裸奔。数据卷就是专门用来持久化的:

docker volume ls
docker volume create webdata
docker run -d -v webdata:/usr/share/nginx/html nginx
docker run -d -v /home/user/html:/usr/share/nginx/html nginx

需要提醒的是,挂载宿主机目录时要注意目录权限和路径写法,Windows 和 macOS 下尤其容易因为路径格式踩坑。匿名卷、具名卷和绑定挂载三者的区别,记住一句话就行:具名卷由 Docker 管理,适合数据库;绑定挂载直接用宿主机目录,适合开发时实时同步代码。

四、网络:容器之间互联互通

多个容器之间要互相访问,需要网络。查看网络、创建自定义网络、启动时加入网络:

docker network ls
docker network create mynet
docker run -d --network mynet --name api myapp

同一网络内的容器可以直接用容器名当主机名互相访问,不需要记住 IP。对外暴露服务靠端口映射:-p 8080:80 表示把宿主机 8080 端口转发到容器 80 端口,浏览器访问 localhost:8080 就能打开容器里的服务。

小结:一条上手流程

把上面四组命令串起来,一个最简单的上手流程就是:docker pull 拉镜像、docker run 起容器、-v 挂数据卷、–network 连网络,再用 docker ps 和 docker logs 查状态。遇到命令记不住时,docker --help、docker run --help 这类帮助命令随时可查。先在自己的电脑上把这十几条命令跑熟,再去学 Compose 编排和镜像瘦身,会顺畅很多。

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

评论(0)

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

全部回复

上滑加载中

设置昵称

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

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

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