一、 Docker:单个容器的魔术师
Docker是容器化技术的核心,它能将应用及其依赖打包到一个轻量、可移植的容器中,然后在任何安装了Docker的机器上运行。 [1] 以下是管理Docker镜像和容器生命周期的必备命令。
1. 镜像管理 (Image Management)
镜像是创建容器的模板。你可以把它理解为一个包含了应用代码、运行时、库、环境变量和配置文件的只读文件。
搜索镜像: 从Docker Hub官方仓库搜索你需要的镜像。
docker search ubuntu
拉取镜像: 从仓库下载一个镜像到本地。
# 拉取最新版的Nginx镜像 docker pull nginx:latest
查看本地镜像: 列出你已经下载到本地的所有镜像。 [1]
docker images
删除镜像: 当镜像不再需要时,可以将其删除以释放空间。
# 删除指定的Nginx镜像 docker rmi nginx:latest
构建镜像: 从一个
Dockerfile
文件创建自定义镜像。 [9]# 在当前目录下的Dockerfile构建一个名为my-app版本为1.0的镜像 docker build -t my-app:1.0 .
2. 容器生命周期管理 (Container Lifecycle)
容器是镜像的运行实例。你可以对它进行创建、启动、停止、删除等操作。
运行容器: 这是最核心的命令,基于指定镜像创建一个新容器并启动它。 [6]
# -d: 后台运行 # -p 8080:80: 将主机的8080端口映射到容器的80端口 # --name my-nginx: 给容器起个名字 docker run -d -p 8080:80 --name my-nginx nginx:latest
查看正在运行的容器: 列出当前正在运行的容器。 [1]
docker ps
要查看所有容器(包括已停止的),可以添加
-a
参数:docker ps -a
停止容器: 停止一个正在运行的容器。 [1]
docker stop my-nginx
启动/重启容器: 启动一个已停止的容器或重启一个正在运行的容器。 [1, 6]
docker start my-nginx docker restart my-nginx
删除容器: 删除一个或多个已经停止的容器。 [6]
docker rm my-nginx
如果要删除一个正在运行的容器,需要添加
-f
参数强制删除:docker rm -f my-nginx
3. 容器交互与监控
进入容器: 在一个正在运行的容器内部执行命令,通常用于调试。 [9]
# -it: 以交互模式进入容器 docker exec -it my-nginx /bin/bash
查看容器日志: 获取容器的标准输出日志,是排查问题的首选方式。
# -f: 实时跟踪日志 docker logs -f my-nginx
查看容器详细信息: 显示一个容器的底层详细配置和状态信息。 [1]
docker inspect my-nginx
二、 Docker Compose:多容器应用的指挥家
当你的应用由多个服务(如Web服务器、数据库、缓存服务)组成时,Docker Compose可以让你通过一个简单的YAML文件来定义和管理整个应用。
[视频嵌入: 动画演示Docker Compose如何一键启动包含Web、API、DB的复杂应用]
1. 核心配置文件:docker-compose.yml
这是Docker Compose的灵魂,一个简单的示例如下:
version: '3.8'
services:
web:
image: nginx:latest
ports:
- "8081:80"
redis:
image: "redis:alpine"
2. 项目生命周期命令
这些命令通常需要在包含 docker-compose.yml
文件的目录下执行。
构建、创建、启动并关联服务: 这是最常用的命令,它会一站式地完成所有服务的启动。 [8]
# -d: 在后台运行 docker-compose up -d
如果需要重新构建镜像再启动,可以加上
--build
参数。 [8]
停止并移除容器和网络: 清理
up
命令创建的所有资源。 [4]docker-compose down
如果想同时删除数据卷,可以添加
-v
参数:docker-compose down -v
。 [10]
列出项目中的容器: 功能类似
docker ps
,但仅显示当前Compose项目管理的容器。 [2, 4]docker-compose ps
启动/停止/重启服务: 对Compose文件中定义的服务进行生命周期管理。 [4, 8]
docker-compose start docker-compose stop docker-compose restart
3. 服务管理与监控
查看服务日志: 汇总并显示所有服务的日志。
# -f: 实时跟踪日志 docker-compose logs -f
也可以只看特定服务的日志:
docker-compose logs -f web
在服务中执行命令: 类似于
docker exec
,但作用于Compose定义的服务。 [4]# 在名为'web'的服务容器中执行 ls -l 命令 docker-compose exec web ls -l
验证配置文件: 检查
docker-compose.yml
文件的语法和配置是否正确,非常有用。 [5]docker-compose config
结论
掌握了以上命令,你就拥有了驾驭Docker和Docker Compose的基本能力。Docker赋予了你封装和隔离应用的超能力,而Docker Compose则让你能轻松编排复杂的多服务应用。
这趟旅程才刚刚开始。建议你亲手实践这些命令,将它们应用到你的项目中。你会发现,容器化带来的不仅仅是技术上的便利,更是一种现代化、高效率的开发与部署哲学。
希望这篇速查手册能成为你工具箱中的常备利器!
评论区