作为IT工程师,掌握Docker容器的批量操作技巧能显著提高工作效率。以下是几种常用的批量操作方法:
# 停止所有运行中的容器
docker stop $(docker ps -q)
# 停止名称匹配特定模式的容器
docker stop $(docker ps -q --filter "name=web*")
# 删除所有已停止的容器
docker rm $(docker ps -a -q)
# 删除所有容器(包括运行中的)
docker rm -f $(docker ps -a -q)
# 启动所有已停止的容器
docker start $(docker ps -a -q --filter "status=exited")
# docker-compose.yml 示例
version: '3'
services:
web:
image: nginx:latest
ports:
- "80:80"
db:
image: postgres:13
environment:
POSTGRES_PASSWORD: example
常用命令:
# 启动所有服务
docker-compose up -d
# 停止并删除所有服务
docker-compose down
# 重启所有服务
docker-compose restart
# 初始化Swarm集群
docker swarm init
# 部署服务
docker service create --name web --replicas 3 -p 80:80 nginx
# 扩展服务
docker service scale web=5
# 更新服务
docker service update --image nginx:1.19 web
# 为所有容器执行命令
docker ps -q | xargs -I {} docker exec {} echo "Hello from container {}"
# 查看所有容器日志
docker ps -q | xargs -I {} sh -c 'echo "=== Container {} ===" && docker logs {}'
# 跟踪多个容器日志
docker-compose logs -f
# 停止、删除、拉取最新镜像并重新创建容器
docker ps -q | xargs -I {} sh -c 'docker stop {} && docker rm {} && docker pull $(docker inspect --format="{{.Config.Image}}" {}) && docker run -d $(docker inspect --format="{{.Config.Image}}" {})'
docker run --label env=production
--filter
参数精确操作特定容器docker stats
批量查看容器资源使用情况通过掌握这些批量操作技巧,您可以显著提高容器管理的效率和可靠性。