docker常用命令
搜索仓库镜像
#搜索镜像
docker search keywords
例:docker search nginx
#仅搜索官方镜像
例:docker search --filter=is-official=true nginx拉取/下载镜像
#拉取/下载镜像不指定tag,默认选择latest
例:docker pull name:tag
docker pull java:8
#拉取非官方镜像
docker pull 非官方域名/name:tag列出本地已存在的镜像
docker images注:以上列出的镜像列表含义如下
- REPOSITORY:镜像所属仓库名称。
- TAG:镜像标签。默认是 latest,表示最新。
- IMAGE ID:镜像 ID,表示镜像唯一标识。
- CREATED:镜像创建时间。
- SIZE: 镜像大小。
删除镜像
#删除镜像
docker rmi tag|镜像id
例:删除指定镜像(强制删除加 -f)
docker rmi java
docker rmi -f java
例:删除所有镜像
docker rmi $(docker images -q)
#清理镜像
docker image prune
#添加镜像标签
docker tag imagename name:tag
例:为本地镜像ubuntu:latest添加一个新的镜像标签myubuntu:latest
docker tag ubuntu:latest myubuntu:latest构建镜像
docker build:根据 Dockerfile 构建镜像,语法如下:
docker build [OPTIONS] PATH
例:
#构建镜像并命名。(-t myapp:v1:镜像命名为 myapp,标签为 v1) .:构建上下文为当前目录(包含 Dockerfile的目录)。
docker build -t myapp:v1 .
#指定自定义 Dockerfile
docker build -t myapp:dev -f ./docker/Dockerfile.dev .
#传递构建参数
docker build --build-arg APP_VERSION=1.0 -t myapp:arg .
#多阶段构建
docker build --target=build-stage -t myapp:builder .参数说明:
- -t, --tag 指定镜像名称和标签(格式:name:tag,可多次使用)。
- -f, --file 指定 Dockerfile 的路径(默认是当前目录的 Dockerfile)。
- --build-arg 传递构建参数(需在 Dockerfile 中用 ARG 声明)。
- --no-cache 禁用构建缓存(强制重新构建所有步骤)。
- --target 多阶段构建时指定目标阶段。
- --platform 指定构建的目标平台(如 linux/amd64)。
创建并启动一个新容器
使用 docker run命令创建容器时,会先检查本地是否存在指定镜像。如果本地不存在该名称的镜像, Docker就会自动从 Docker Hub下载镜像并启动一个 Docker容器。
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
例:
docker run --name webapp -p 8080:80 -d nginx:alpine
docker run -it --cpus="1.5" --memory="512m" --memory-swap="1g" app
# 使用 Volume
docker volume create app_data
docker run -v app_data:/data my-app
# 或绑定宿主机目录
docker run -v /host/data:/container/data:Z my-app
# 创建自定义网络
docker network create -d bridge my-network
docker run --network=my-network --restart=unless-stopped my-app参数说明:
- --name:指定容器名称(默认随机生成),便于后续管理。
- -p:将容器的端口映射到宿主机,格式为 主机端口:容器端口。
- -d:在后台运行容器(守护进程模式)。
- -it:交互模式运行容器(通常结合 /bin/bash 使用)。
- -v, --volume 挂载主机目录到容器(格式:主机路径:容器路径[:权限])。
- -e, --env 设置环境变量(如 -e VAR=value)。
- --rm 容器退出后自动删除(适合临时任务)。
- --restart 重启策略(如 --restart=always)。
- --network 指定容器网络(如 --network=host)。
- -m, --memory 限制容器内存(如 -m 512m)。
- --cpus 限制 CPU 核数(如 --cpus=1.5)。
列出容器
#列出容器
# 查看运行中的容器
docker ps
# 查看所有容器(包括已停止的)
docker ps -a
#查看容器所有信息
docker inspect 容器id查看日志
docker logs 容器id
docker logs -f --tail 100 webapp进入容器
# (有的容器需要把 /bin/bash 换成 sh) -it:分配一个交互式终端。
docker exec -it [容器ID/名称] /bin/bash启/停/删除容器
#启动停止的容器
docker start 容器id
#终止容器
docker stop
#强制停止容器
docker kill 容器ID
#暂停容器
docker pause
#重启容器
docker restart [容器ID/名称]
#删除已停止的容器
docker rm [容器ID/名称]
# 强制删除运行中的容器
docker rm -f [容器ID/名称]docker compose 常用命令
创建并启动所有服务容器UP
# 后台启动所有服务
docker compose up -d
# 重建并启动
docker compose up --build -d
# 使用指定文件
docker compose -f docker-compose.yml -f production.yml up -d参数说明:
- -d (后台运行)
- --no-deps (不启动依赖服务)
- --build (启动前重新构建镜像)
停止服务stop
# 停止但不删除
docker-compose stop停止并移除所有容器、网络down
# 停止并移除所有容器、网络
docker compose down
# 停止并删除包括卷在内的所有资源
docker compose down -v重启服务restart
#重启所有服务
docker compose restart
# 重启单个服务
docker compose restart web