镜像 #
| 命令 | 说明 | 常用选项/示例 |
|---|
docker images 或 docker ls | 列出本地镜像 | -a:列出所有镜像 -q:只显示镜像ID |
docker pull <镜像名>[:标签] | 从仓库拉取镜像 | docker pull nginx:latest |
docker push <镜像名>[:标签] | 推送镜像到仓库 | docker push username/image:tag |
docker rmi <镜像名或ID> 或 docker image rm <镜像名或ID> | 删除镜像 | -f:强制删除 |
docker save -o <output_file.tar> <镜像名或ID> | 导出镜像 | docker save -o my_image_v1.0.tar my_image:v1.0 |
docker load -i <FILE> | 导入镜像 | docker load -i my_image.tar |
docker build -t <镜像名> <构建路径> | 从Dockerfile创建镜像 | docker build -t myapp:1.0 . |
docker history <镜像名或ID> | 查看镜像历史 | |
docker commit <容器ID> <镜像名> | 从容器创建镜像 | docker commit c3f279d17e0a myapp:latest |
docker tag <源镜像>[:标签] <目标镜像>[:标签] | 给镜像添加标签 | docker tag nginx:latest mynginx:v1 |
docker search <关键词> | 搜索Docker Hub上的镜像 | --filter stars=3:筛选星级大于3的镜像 |
docker inspect <镜像名或ID> | 查看镜像详细信息 | --format:格式化输出 |
容器 #
| 命令 | 说明 | 常用选项/示例 |
|---|
docker run <容器名或ID> | 创建并启动容器 | -d后台运行 -p <宿主机端口>:<容器端口> 端口映射 -v <主机目录>:<容器目录>挂载卷或绑定目录 --name指定名称 --mount type=bind,src=<主机目录>,dst=<容器目录>目录绑定挂载 --network <网络名>连接网络 |
docker start/stop/restart/kill <容器名或ID> | 启动/停止/重启/杀死容器 | docker start mycontainer |
docker ps 或 docker container ls | 列出运行中的容器 | -a:列出所有容器(包括停止的) -q:只显示容器ID |
docker rm <容器名或ID> 或 docker container rm | 删除容器 | -f:强制删除运行中的容器 |
docker exec <容器名或ID> <命令> | 在运行的容器中执行命令 | -it:交互模式 docker exec -it mycontainer sh,docker exec -it mynginx bin/bash |
docker logs <容器名或ID> | 查看容器日志 | -f:实时查看日志 --tail <行数>:显示最近的日志 |
docker cp <源路径> <目标路径> | 在容器和本地间复制文件 | docker cp mycontainer:/app/data.txt ./local/ docker cp ./local/file.txt mycontainer:/app/ |
docker export -o <文件名>.tar <容器名或ID> | 导出容器为文件 | docker export -o nginx.tar nginx_container |
docker import <文件名>.tar <容器名或ID> | 导入容器快照 | docker import my_container.tar my_new_image:latest |
docker commit <容器ID> <镜像名> | 从容器创建镜像 | docker commit c3f279d17e0a myapp:latest |
docker container inspect <容器名或ID> | 查看容器详细信息 | docker container inspect mynginx |
数据卷 #
默认存储位置在/var/lib/docker/volumes,
但在Windows11下基于WSL安装的 Docker Desktop 中的 volumes (数据卷) 存储实际在:
\\wsl.localhost\docker-desktop\mnt\docker-desktop-disk\data\docker\volumes
也就是 docker-desktop 这个wsl虚拟机中的 /mnt/docker-desktop-disk/data/docker/volumes 目录
| 命令 | 说明 | 常用选项/示例 |
|---|
docker run -v </主机目录>:<容器目录> <镜像名或ID> | 创建容器并卷绑定然后启动容器 | docker run -d --name mynginx -p 88:80 -v nginx_config:/etc/nginx nginx |
docker volume create <数据卷名> | 创建数据卷 | docker volume create my-volume |
docker volume ls | 查看所有数据卷 | 列出所有卷 |
docker volume inspect <数据卷名> | 查看数据卷详细信息 | docker volume inspect my-volume |
docker volume rm <数据卷名> | 删除数据卷 | docker volume rm my-volume |
docker volume prune | 清理无用数据卷 | 删除未被容器使用的数据卷 |
网络 #
- 在桥接模式,在docker内部每个容器都分配了一个类似于
172.17.0.*的IP(可通过docker inspect查看"IPAddress"选项可知),容器之间可通过此IP相互访问。 - 可以在创建运行容器的时候连接同一个网络,然后容器之间就能通过容器名来连接访问了,相当于网站域名和DNS解析最终IP
| 命令 | 说明 | 常用选项/示例 |
|---|
docker network ls | 查看Docker网络 | 显示所有网络 |
docker network create <网络名> | 创建自定义网络 | docker network create my-network |
docker network connect <网络名> <容器名或ID> | 将容器连接到网络 | docker network connect my-network mycontainer |
docker network disconnect <网络名> <容器名或ID> | 将容器从网络断开 | docker network disconnect my-network mycontainer |
docker network inspect <网络名> | 查看网络详细信息 | docker network inspect bridge |
docker network rm <网络名> | 删除网络 | docker network rm my-network |
系统管理 #
| 命令 | 说明 |
|---|
docker version | 查看Docker版本 |
docker info | 查看Docker系统信息 |
docker [command] --help | 查看Docker帮助文档 |
docker login/logout | 登录/退出DockerHub |
Docker Compose #
| 命令 | 说明 | 常用选项/示例 |
|---|
docker compose up | 创建并启动服务 | -d:后台运行,--build:强制重新构建 |
docker compose down | 停止并删除服务 | --volumes:同时删除声明的卷 --rmi all:删除所有镜像 |
docker compose ps | 列出服务 | 显示所有服务状态 |
docker compose cp | 在容器和本地间复制文件 | 相当于docker container cp |
docker compose build | 构建服务镜像 | --no-cache:不使用缓存 |
docker compose logs | 查看服务日志 | -f:实时查看 --tail <行数>:显示最近的日志 |
docker compose exec <服务名> <命令> | 在运行的服务中执行命令 | docker-compose exec web bash |
docker compose restart | 重启服务 | docker-compose restart web |
docker compose rm | 删除服务容器 | -f:强制删除 -v:同时删除卷 |
参考资料 #
docker docs
CLI Reference - docker docs
Docker Hub
docker ps -a #列出所有容器
docker rm #删除一个或多个容器
docker rmi #删除一个或多个镜像。
docker volume #管理数据卷
docker-compose up #启动 Compose 定义的服务
docker-compose down #停止并删除 Compose 服务