使用 Docker Desktop 可以让你在 Windows 系统上轻松地构建、运行和管理 Docker 容器。以下是一些基本的步骤和提示,帮助你开始使用 Docker Desktop:
1.安装 Docker Desktop
- 下载 Docker Desktop:访问Docker官网并下载适用于Windows的Docker Desktop。
- 安装 Docker Desktop:运行下载的安装程序。请注意,Docker Desktop要求你的系统是Windows 10 64位:1607周年更新(Build 14393)及以上版本,并且需要启用Hyper-V和容器功能。如果在安装过程中遇到问题,请确保这些功能已经启用。
- 启动 Docker Desktop:安装完成后,启动Docker Desktop。初次启动时可能需要登录你的Docker账号。
- 配置 Docker Desktop:根据需求调整设置,比如资源限制(CPU、内存等)、Docker Engine配置等。对于大多数应用,默认设置就足够了。
2.基本操作
(1). 命令行界面 (CLI)
- 打开命令提示符或 PowerShell。
- 使用
docker --version检查 Docker 是否正确安装。 - 使用
docker ps查看当前正在运行的容器。 - 使用
docker images查看本地已有的镜像。
(2). 构建和运行容器
-
创建一个
Dockerfile来定义如何构建你的应用镜像。# 使用官方 ASP.NET 运行时镜像作为基础镜像 FROM mcr.microsoft.com/dotnet/aspnet:3.1 # 设置工作目录 WORKDIR /app # 将当前目录下的所有文件复制到容器内的 /app 目录中 COPY . . # 配置容器启动时执行的命令 ENTRYPOINT ["dotnet", "AuthCenter.dll"] -
在包含
Dockerfile的目录中打开命令提示符或 PowerShell。 -
使用
docker build -t your-image-name .构建镜像,其中your-image-name是你给镜像起的名字。 -
使用
docker run -d -p host-port:container-port your-image-name运行容器。例如,docker run -d -p 8080:80 my-web-app。
(3). 使用 Docker Compose
如果你有多个服务需要一起管理,可以使用 Docker Compose。
每个API服务都需要一个Dockerfile来定义其构建过程。假设每个服务的目录结构如下:
/your-project/
├── ApiGateway/
│ ├── publish-files/ # 直接放在这里或直接放在ApiGateway目录下
│ └── Dockerfile
├── AuthCenter/
│ ├── publish-files/ # 或者直接放在AuthCenter目录下
│ └── Dockerfile
├── TransferPlatform.Api/
│ ├── publish-files/ # 或者直接放在TransferPlatform.Api目录下
│ └── Dockerfile
└── User.Api/
├── publish-files/ # 或者直接放在User.Api目录下
└── Dockerfile
└── docker-compose.yml # 使用 Docker Compose
-
创建一个
docker-compose.yml文件来定义你的服务。services: apigateway: image: apigateway build: context: ./ApiGateway dockerfile: Dockerfile ports: - "5000:80" authcenter: image: authcenter build: context: ./AuthCenter dockerfile: Dockerfile ports: - "5008:80" transferplatformapi: image: transferplatformapi build: context: ./TransferPlatform.Api dockerfile: Dockerfile ports: - "8765:80" userapi: image: userapi build: context: ./User.Api dockerfile: Dockerfile ports: - "5071:80" -
在包含
docker-compose.yml文件的目录中打开命令提示符或 PowerShell。 -
使用
docker-compose up启动所有定义的服务。添加-d参数可以在后台运行这些服务。# 启动所有服务 docker-compose up # 后台启动所有服务 docker-compose up -d # 构建服务后启动所有服务 docker-compose up --build # 后台构建服务后启动所有服务 docker-compose up -d --build
(4). 使用 Docker 命令检查日志
使用以下命令查看特定容器的日志输出,以获取更多关于为什么接口不可达的信息:
# 查看正在运行的服务状态
docker-compose ps
# 查看特定容器的所有日志
docker logs <container_id_or_name>
# 实时跟踪日志
docker logs -f <container_id_or_name>
# 显示时间戳
docker logs --timestamps <container_id_or_name>
# 查看最后几行日志
docker logs -n 100 <container_id_or_name>
3.Docker Desktop 界面
- 状态栏图标:安装并启动后,你会在任务栏右侧的状态栏看到 Docker 图标。点击它可以查看 Docker Desktop 的状态,包括正在运行的容器数量、资源使用情况等。
- 仪表板:点击状态栏图标,选择“Dashboard”可以查看和管理所有正在运行的容器。你可以在这里停止、重启容器,或者查看容器的日志。
- 设置:通过状态栏图标进入设置页面,你可以配置 Docker Desktop 的各种选项,比如资源限制(CPU、内存)、代理设置、网络设置等。
- Kubernetes:如果你对 Kubernetes 感兴趣,可以在设置中启用 Kubernetes 支持,从而在本地测试和部署 Kubernetes 应用。
4.清理
1. 清理未运行的容器
你可以使用以下命令删除所有已经停止的容器:
docker container prune
如果你想强制删除所有不区分是否正在运行的容器(谨慎使用),可以加上-f参数:
docker container prune -f
2. 清理未使用的镜像
移除所有未被任何容器使用的镜像:
docker image prune
如果还想删除悬空镜像(即没有标签且不在任何容器中使用的镜像),可以添加 -a 参数:
docker image prune -a
同样地,使用 -f 可以跳过确认提示直接执行。
3. 清理未使用的卷
删除所有未被使用的本地卷:
docker volume prune
使用 -f 参数可避免确认提示:
docker volume prune -f
注意:小心使用此命令,因为某些卷可能用于备份或共享数据,即使它们当前没有被容器使用。
4. 清理未使用的网络
移除所有未被任何容器使用的网络:
docker network prune
加上 -f 参数可以自动确认删除操作:
docker network prune -f
5. 综合清理
如果你想要一次性清理所有类型的未使用资源,可以使用 docker system prune 命令:
docker system prune
为了也清理掉未使用的镜像(不仅仅是悬空镜像),请使用 -a 参数:
docker system prune -a
同样,-f 参数可用于跳过确认提示。