跳到主要内容

Docker常用命令

·2047 字·5 分钟

镜像 #

命令说明常用选项/示例
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 shdocker 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 服务
焕昭君
作者
焕昭君
知行合一,日拱一卒