Docker 第二天学习指南:镜像与容器常用命令
Docker 最核心的概念就是镜像和容器。我们可以把它们类比成“程序安装包”和“正在运行的软件”:
-
镜像 (Image):一个只读的“模板”,包含了运行应用程序所需的一切(代码、运行时、库等)。可以把它想象成我们安装操作系统时用的ISO文件,或者面向对象编程中的“类”。
-
容器 (Container):镜像的“运行实例”。当你“运行”一个镜像时,就会得到一个容器。它就像一台启动了的轻量级虚拟机,可以被启动、停止、删除。它则是根据类创建出来的“对象”。
第一部分:镜像操作——管理你的“安装包”
可以把镜像想象成你电脑里的安装包或ISO文件。
| 命令 | 作用 | 常用选项/说明 | 使用示例 |
|---|---|---|---|
docker pull |
从镜像仓库(默认 Docker Hub)下载镜像到本地。 | 如果不指定标签(版本),默认会拉取名为 latest 的最新版。 |
docker pull nginx:latestdocker pull python:3.9 |
docker images |
列出本地已下载的所有镜像。 | 可以看到镜像的名字、标签、ID 和大小。 | docker images |
docker rmi |
删除本地的一个或多个镜像。 | ⚠️ 注意:如果一个镜像正在被某个容器使用(即使容器是停止状态),通常无法直接删除,需要先处理掉依赖它的容器。 | docker rmi nginx:latestdocker rmi -f (强制删除,不推荐) |
docker search |
在 Docker Hub 上搜索公开的镜像。 | 可以帮你快速查找官方或社区提供的镜像。 | docker search ubuntu |
第二部分:容器操作——管理你的“运行环境”
容器是真正运行应用的地方。
| 命令 | 作用 | 常用选项/说明 | 使用示例 |
|---|---|---|---|
docker run |
创建并启动一个新的容器。 | 这是最核心的命令,常用参数众多,详见下文。 | docker run -d --name web -p 80:80 nginx |
docker ps |
列出当前正在运行的容器。 | -a:列出所有容器,包括已经停止的。 |
docker ps -a |
docker stop |
优雅地停止一个正在运行的容器。 | 会给容器内的主进程发送一个 SIGTERM 信号。 |
docker stop <容器名或ID> |
docker start |
启动一个已停止的容器。 | 常用 | docker start <容器名或ID> |
docker rm |
删除一个已停止的容器。 | 如果想强制删除一个正在运行的容器,可以加上 -f 参数。 |
docker rm <容器名或ID>docker rm -f <容器名或ID> |
docker logs |
查看容器的运行日志,对于调试非常有用。 | -f:实时跟踪日志输出。 |
docker logs -f <容器名或ID> |
docker exec |
进入一个正在运行的容器内部执行命令。 | 常用 -it 参数开启一个交互式终端。 |
docker exec -it <容器名或ID> bash |
第三部分:关键参数详解(以 docker run 为例)
理解这些参数,才能用好 docker run 命令。
-
-d(后台运行):让容器在后台静默运行,不会占用你的命令行界面。 -
--name(命名):给容器起一个有意义的名字,方便后续管理(如docker stop my-nginx),如果不指定,Docker 会随机生成一个名字。 -
-p(端口映射):这是你访问容器内服务的关键。格式是-p <宿主机端口>:<容器内端口>。例如,-p 8080:80意味着访问你电脑的 8080 端口,就等于访问了 Nginx 容器的 80 端口。 -
-v(数据卷挂载):实现数据持久化和配置文件修改。格式是-v <宿主机目录>:<容器内目录>。例如,-v ./my-html:/usr/share/nginx/html可以将你当前目录下的my-html文件夹挂载到 Nginx 的默认网站目录,从而自定义网站内容。
第四部分:动手实践——运行你的第一个 Nginx 容器
环境准备:确保你已经安装了 Docker。
步骤 1:拉取 Nginx 镜像
打开终端,输入以下命令从 Docker Hub 下载 Nginx 镜像:
docker pull nginx:latest
步骤 2:运行 Nginx 容器
使用 docker run 命令,将容器的 80 端口映射到你电脑的 8080 端口,并为它取名 my-first-nginx:
docker run -d --name my-first-nginx -p 8080:80 nginx:latest
步骤 3:验证运行
在命令行输入 docker ps,你应该能看到名为 my-first-nginx 的容器状态为 Up。
打开你的浏览器,访问 http://localhost:8080。如果看到 “Welcome to nginx!” 的欢迎页,说明你已经成功运行了第一个 Docker 容器!
步骤 4:探索与清理
现在,你可以尽情尝试其他命令了:
-
查看日志:
docker logs my-first-nginx -
停止容器:
docker stop my-first-nginx(此时访问localhost:8080将无法打开) -
启动容器:
docker start my-first-nginx -
删除容器:(需要先停止它)
docker rm my-first-nginx -
删除镜像:(需要先删除依赖它的容器)
docker rmi nginx:latest
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐

所有评论(0)