SuperAPI AI Directory

container-ops

Deployment & operations

View repository

Updated 10-15 17:33

About this skill

Docker Container Operations

Overview

Daily operations of Docker containers, including lifecycle management, resource limits, log viewing, etc.

Container Lifecycle

# 运行容器
docker run -d --name myapp nginx
docker run -it --rm ubuntu bash
Common Parameters

docker run -d
--name myapp
-p 8080:80
-v /host/path:/container/path
-e ENV_VAR=value
--restart unless-stopped
nginx

Starting and Stopping Containers

docker start/stop/restart container_name docker pause/unpause container_name

Removing Containers

docker rm container_name docker rm -f container_name # Force removal docker container prune # Clean up stopped containers


## 容器查看

```bash
# 列出容器
docker ps                                # 运行中
docker ps -a                             # 所有
docker ps -q                             # 仅 ID
docker ps --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}"

# 容器详情
docker inspect container_name
docker inspect -f '{{.NetworkSettings.IPAddress}}' container_name

# 资源使用
docker stats
docker stats container_name
docker top container_name

Container Interaction

# 进入容器
docker exec -it container_name /bin/bash
docker exec -it container_name sh

# 执行命令
docker exec container_name ls -la

# 查看日志
docker logs container_name
docker logs -f container_name            # 实时跟踪
docker logs --tail 100 container_name    # 最后 100 行
docker logs --since 1h container_name    # 最近 1 小时

Resource Limits

# 内存限制
docker run -d --memory=512m nginx

# CPU 限制
docker run -d --cpus=1.5 nginx
docker run -d --cpu-shares=512 nginx

# 更新运行中容器
docker update --memory=1g container_name
docker update --cpus=2 container_name

File Operations

# 复制文件
docker cp container_name:/path/file ./local
docker cp ./local container_name:/path/

# 查看文件变更
docker diff container_name

# 导出容器
docker export container_name > container.tar
docker import container.tar myimage:tag

Common Scenarios

Scenario 1: Debugging a Container

# 1. 查看容器状态
docker inspect container_name | jq '.[0].State'

# 2. 查看日志
docker logs --tail 50 container_name

# 3. 进入容器排查
docker exec -it container_name sh

# 4. 查看进程
docker top container_name

Scenario 2: Container Fails to Start

# 查看退出原因
docker inspect container_name | jq '.[0].State.ExitCode'
docker inspect container_name | jq '.[0].State.Error'

# 查看日志
docker logs container_name

# 以交互模式启动排查
docker run -it --entrypoint sh image_name

Scenario 3: Batch Operations

# 停止所有容器
docker stop $(docker ps -q)

# 删除所有停止的容器
docker container prune -f

# 删除所有容器
docker rm -f $(docker ps -aq)

Troubleshooting

Issue Troubleshooting Method
Container Exits docker logs, docker inspect
Network Unreachable docker network inspect, check port mapping
Disk Full docker system df, docker system prune
Memory Overflow docker stats, check OOMKilled
Slow Startup Check health check configuration, image size