docker 常用命令
https://docs.docker.com/reference/cli/docker/container/exec/
基础命令
命令 | 含义 | 示例 |
---|---|---|
docker pull | 默认从 https://hub.docker.com/ 中拉取镜像 | docker pull centos:7.8.2003 |
docker images | 列出本地所有镜像 | |
docker image rm {镜像id/tag} | 删除本地镜像或标签;可缩写成 docker rmi | |
docker ps | 查看正在运行的容器 | |
docker logs {容器id} | 查看容器运行输出日志;logs -f 可以持续输出 | docker logs -f 1519ccae995b |
docker stat | 查看容器占用资源;每秒输出 | |
docker exec | 在正在运行的容器中执行命令 | docker exec -it 8568d0de237f /bin/bash |
docker run | 从镜像创建并运行新容器 | docker run -it python:3.10 /bin/bash |
docker cp | 在容器和本地之间传输文件/目录 | docker cp default.conf 8568d0de237f:/root/ |
- 镜像 id 可以通过
docker images
查看 - 容器 id 可以通过
docker ps
查看
从镜像启动容器
bash
docker run -it golang /bin/bash
docker run -v $(pwd):/data/www -it 93a9c3556fc0 /bin/bash
docker run -v $(pwd):/app -w /app -it 93a9c3556fc0 /bin/bash -c "goreleaser build --snapshot --rm-dist"
docker run -v $(pwd):/app -w /app -it 2a8f672c9358 /bin/sh -c "npm install && npm run build_docker"
docker run -d -p 6379:6379 --name redis0000 --network wechat-net -v /data/redis0000/data:/data redis redis-server --requirepass 123456
docker run -v $(pwd):/data -it centos /bin/bash
docker run -it --network=host --entrypoint /bin/bash 2a8f672c9358
容器保存为镜像
bash
docker commit 23faaaa8f886 op/node:12.18.2-alpine
- 常用于创建自定义镜像
镜像保存成文件
bash
docker save dfda7a2cf273 | gzip > node.tgz
从文件导入镜像
bash
docker load < node.tgz
打标签
bash
docker tag dfda7a2cf273 mypython:3
从 Dockerfile 中创建镜像
bash
docker build -t node:v3 .
清理
https://stackoverflow.com/questions/17236796/how-to-remove-old-docker-containers
bash
# 删除无用的镜像、停止的容器、无用的 networks 以及构建缓存
docker system prune # 会删除 <none> 的镜像
docker system prune -a # 会删除所有未被当前运行容器使用的镜像,慎用
# 清理无用的 volumes
docker volume prune
# 删除已经停止的容器
docker container prune