Upvotes
0
Upvotes: 0可以幫我寫一個docker 常用指令彙整嗎?
當然可以。下面給你一份「Docker 常用指令彙整」(偏實戰、直接可複製貼上)。我把它分成:日常操作、映像檔、容器、logs/exec、網路、volume、compose、清理、除錯小抄。
docker version
docker info
docker context ls
docker system df
docker search nginx
docker pull nginx:latest
docker images
docker image ls
docker image inspect nginx:latest
docker history nginx:latest
docker build -t myapp:1.0 .
docker build -t myapp:1.0 -f Dockerfile .
docker build --no-cache -t myapp:1.0 .
docker tag myapp:1.0 myrepo/myapp:1.0
docker push myrepo/myapp:1.0
docker rmi myapp:1.0
docker image prune
docker image prune -a
# 前台跑(Ctrl+C 結束)
docker run --rm nginx:latest
# 背景跑(daemon)
docker run -d --name web -p 8080:80 nginx:latest
# 掛載資料夾(開發常用)
docker run -d --name app -p 8000:8000 \
-v "$PWD":/app -w /app myapp:1.0
# 設環境變數
docker run -d --name app -e ENV=prod myapp:1.0
# 限制資源(簡單版)
docker run -d --name app --cpus=2 --memory=2g myapp:1.0
docker ps
docker ps -a
docker ps --format 'table {{.Names}}\t{{.Status}}\t{{.Ports}}'
docker inspect <container>
docker stop web
docker start web
docker restart web
docker rm web
docker rm -f web
docker logs web
docker logs -f web
docker logs --tail 200 web
docker exec -it web sh
docker exec -it web bash
docker exec web ls -la
docker cp web:/etc/nginx/nginx.conf .
docker cp ./local.conf web:/etc/nginx/conf.d/default.conf
# port 映射:主機:容器
-p 8080:80
# 只綁定 localhost(比較安全)
-p 127.0.0.1:8080:80
# 自訂 host entry
--add-host host.docker.internal:host-gateway
docker network ls
docker network inspect bridge
docker network create mynet
docker run -d --name db --network mynet postgres:16
docker run -d --name api --network mynet myapp:1.0
docker network connect mynet web
docker network disconnect mynet web
docker volume ls
docker volume create pgdata
docker volume inspect pgdata
docker run -d --name db \
-e POSTGRES_PASSWORD=pass \
-v pgdata:/var/lib/postgresql/data \
postgres:16
docker run --rm -it -v pgdata:/data alpine sh
# 進去後 ls -la /data
docker volume rm pgdata
docker volume prune
docker compose version
docker compose up -d
docker compose up --build -d
docker compose down
docker compose down -v # 連 volumes 一起刪(小心)
docker compose ps
docker compose logs -f
docker compose exec <service> sh
docker compose pull
docker compose restart
docker system prune
docker system prune -a
docker builder prune
docker container prune
docker image prune -a
docker volume prune
docker stats
docker stats web
docker ps -a
docker logs <container>
docker inspect <container> | less
docker inspect -f '{{.State.Pid}}' web
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' web
docker run --rm -it alpine sh
如果你想要更貼近你平常的用法(例如:開發掛載 $PWD + -w、GPU、Postgres、或偏 Podman 風格),我也可以幫你整理成「你自己的版本」一頁 A4 小抄。你現在最常用的情境是哪三種?(例如:Web app、DB、訓練/跑腳本)
可以 list tag嗎?
可以。你如果是想「列出本機有哪些 image tag」,Docker 其實沒有獨立的 tag ls 指令,通常是用列出 images 來看每個 image 的 tags。
docker images
# 或
docker image ls
docker image ls --format '{{.Repository}}:{{.Tag}}'
docker image ls --format '{{.Repository}}:{{.Tag}}' | grep '^nginx:'
docker image ls --digests
docker image inspect <image:tag>
如果你問的是「遠端 registry(例如 Docker Hub / GHCR)有哪些 tags」,那就不是 docker 本機指令能直接完整列出(要用 registry API、skopeo、或 crane 這類工具)。你是要列本機的 tags,還是想列某個遠端 repo 的 tags?
Comments
Login to add a comment.
No comments yet.