AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
SKILL unreviewed Apache-2.0 Self-run

Image Management

skill-chaterm-terminal-skills-image-management · by chaterm

Docker 镜像管理

No reviews yet
0 installs
30 views
0.0% view→install

Install

$ agentstack add skill-chaterm-terminal-skills-image-management

Open-source listing, not yet scanned by AgentStack. Follow the source repository for install instructions.

Security review

⚠ Flagged

1 finding(s); flagged for manual review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures
  • high Destructive filesystem operation.

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Reliability & compatibility

Not yet reviewed
0 installs to date
no reviews yet
6mo ago

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Image Management? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

Docker 镜像管理

概述

镜像构建、多阶段构建、镜像优化等技能。

镜像操作

查看镜像

# 列出镜像
docker images
docker images -a                    # 包含中间层
docker images --format "table {{.Repository}}\t{{.Tag}}\t{{.Size}}"

# 镜像详情
docker inspect image_name
docker history image_name           # 构建历史

# 搜索镜像
docker search nginx

拉取与推送

# 拉取镜像
docker pull nginx
docker pull nginx:1.20
docker pull registry.example.com/myapp:latest

# 推送镜像
docker push myrepo/myimage:tag

# 登录仓库
docker login
docker login registry.example.com
docker logout

镜像标签

# 添加标签
docker tag source_image:tag target_image:tag
docker tag myapp:latest myrepo/myapp:v1.0

# 删除镜像
docker rmi image_name
docker rmi -f image_name            # 强制删除
docker image prune                  # 删除悬空镜像
docker image prune -a               # 删除未使用镜像

导入导出

# 导出镜像
docker save -o myimage.tar myimage:tag
docker save myimage:tag | gzip > myimage.tar.gz

# 导入镜像
docker load -i myimage.tar
docker load < myimage.tar.gz

镜像构建

基础构建

# 构建镜像
docker build -t myimage:tag .
docker build -t myimage:tag -f Dockerfile.prod .

# 指定构建参数
docker build --build-arg VERSION=1.0 -t myimage:tag .

# 不使用缓存
docker build --no-cache -t myimage:tag .

# 指定目标阶段
docker build --target builder -t myimage:builder .

Dockerfile 基础

# 基础镜像
FROM node:18-alpine

# 元数据
LABEL maintainer="your@email.com"
LABEL version="1.0"

# 设置工作目录
WORKDIR /app

# 复制文件
COPY package*.json ./
COPY . .

# 运行命令
RUN npm install

# 环境变量
ENV NODE_ENV=production
ENV PORT=3000

# 暴露端口
EXPOSE 3000

# 启动命令
CMD ["node", "app.js"]

多阶段构建

# 构建阶段
FROM node:18-alpine AS builder
WORKDIR /app
COPY package*.json ./
RUN npm ci
COPY . .
RUN npm run build

# 生产阶段
FROM node:18-alpine AS production
WORKDIR /app
COPY --from=builder /app/dist ./dist
COPY --from=builder /app/node_modules ./node_modules
EXPOSE 3000
CMD ["node", "dist/main.js"]

Go 应用多阶段构建

# 构建阶段
FROM golang:1.21-alpine AS builder
WORKDIR /app
COPY go.mod go.sum ./
RUN go mod download
COPY . .
RUN CGO_ENABLED=0 GOOS=linux go build -o main .

# 生产阶段
FROM alpine:latest
RUN apk --no-cache add ca-certificates
WORKDIR /root/
COPY --from=builder /app/main .
EXPOSE 8080
CMD ["./main"]

镜像优化

减小镜像体积

# 1. 使用精简基础镜像
FROM alpine:latest
FROM node:18-alpine
FROM python:3.11-slim

# 2. 合并 RUN 命令
RUN apt-get update && \
    apt-get install -y --no-install-recommends \
        package1 \
        package2 && \
    rm -rf /var/lib/apt/lists/*

# 3. 使用 .dockerignore
# .dockerignore 文件
node_modules
.git
*.md
Dockerfile
.dockerignore

# 4. 多阶段构建只复制必要文件
COPY --from=builder /app/dist ./dist

构建缓存优化

# 先复制依赖文件,利用缓存
COPY package*.json ./
RUN npm ci

# 再复制源代码
COPY . .
RUN npm run build

安全最佳实践

# 1. 使用非 root 用户
RUN addgroup -S appgroup && adduser -S appuser -G appgroup
USER appuser

# 2. 固定版本
FROM node:18.17.0-alpine3.18

# 3. 扫描漏洞
# docker scan myimage:tag

# 4. 最小权限
RUN chmod 500 /app/main

私有仓库

搭建私有仓库

# 运行 Registry
docker run -d -p 5000:5000 --name registry registry:2

# 推送到私有仓库
docker tag myimage:tag localhost:5000/myimage:tag
docker push localhost:5000/myimage:tag

# 拉取
docker pull localhost:5000/myimage:tag

配置认证

# 创建密码文件
htpasswd -Bc /auth/htpasswd admin

# 运行带认证的 Registry
docker run -d -p 5000:5000 \
  -v /auth:/auth \
  -e "REGISTRY_AUTH=htpasswd" \
  -e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" \
  -e "REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd" \
  registry:2

常见场景

场景 1:分析镜像层

# 查看镜像层
docker history myimage:tag --no-trunc

# 使用 dive 分析
docker run --rm -it \
  -v /var/run/docker.sock:/var/run/docker.sock \
  wagoodman/dive:latest myimage:tag

场景 2:清理磁盘空间

# 查看磁盘使用
docker system df
docker system df -v

# 清理未使用资源
docker system prune              # 清理悬空资源
docker system prune -a           # 清理所有未使用资源
docker system prune --volumes    # 包括卷

场景 3:镜像漏洞扫描

# Docker Scout
docker scout cves myimage:tag

# Trivy
docker run --rm \
  -v /var/run/docker.sock:/var/run/docker.sock \
  aquasec/trivy image myimage:tag

故障排查

| 问题 | 排查方法 | |------|----------| | 构建失败 | 检查 Dockerfile 语法、网络 | | 镜像过大 | 使用多阶段构建、精简基础镜像 | | 拉取失败 | 检查网络、认证、镜像名 | | 缓存失效 | 检查 COPY 顺序、文件变更 |

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.