image-management
9
总安装量
4
周安装量
#32123
全站排名
安装命令
npx skills add https://github.com/chaterm/terminal-skills --skill image-management
Agent 安装分布
claude-code
4
opencode
3
windsurf
2
codex
2
github-copilot
2
antigravity
2
Skill 文档
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 /app/dist ./dist
COPY /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 /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 /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 顺åºãæä»¶åæ´ |