Docker的介绍
Docker 是一种容器化平台,用于轻松地打包、交付和运行应用程序。它利用 Linux 内核的容器技术,使得应用程序及其依赖项可以在一个独立的环境中运行,而不受底层系统环境的影响。以下是 Docker 技术的一些关键概念和特性:
容器(Container): Docker 容器是一个轻量级、独立的可执行软件包,包含应用程序和其所有依赖项。容器化允许应用程序在任何环境中运行,无论其所在的操作系统和底层软硬件。
镜像(Image): 镜像是容器的基础。它包含运行应用程序所需的所有文件、依赖项和配置。镜像是一个只读的模板,可以用来创建容器实例。
Dockerfile: Dockerfile 是一个文本文件,包含了一系列指令,用于构建 Docker 镜像。通过定义 Dockerfile,开发人员可以规范化和自动化镜像的构建过程。
仓库(Repository): Docker 仓库是存储和管理 Docker 镜像的地方。它可以是本地仓库,也可以是远程仓库,如 Docker Hub。Docker Hub 是一个公共的仓库,用户可以共享和获取镜像。
Compose: Docker Compose 是一个工具,用于定义和管理多容器的 Docker 应用。通过一个简单的 YAML 文件,可以定义应用程序的服务、网络、存储等配置。
服务(Service): 在 Docker 中,服务是由多个相同配置的容器组成的应用程序的逻辑单元。服务定义了容器的配置,如所使用的镜像、端口映射等。
网络(Networking): Docker 提供了多种网络模式,使容器能够相互通信。可以创建自定义网络,也可以使用默认的桥接网络或 host 模式。
卷(Volume): Docker 卷是用于在容器之间共享和持久化数据的机制。它允许容器之间或容器与主机之间共享文件。
Docker Swarm: Docker Swarm 是 Docker 官方提供的容器编排和集群管理工具。它允许用户将多个 Docker 主机组成一个集群,以便实现高可用性和横向扩展。
安全性: Docker 提供了一系列安全性特性,包括命名空间、控制组、容器隔离、容器签名等,以确保容器在运行时的安全性。
使用 Docker 技术可以带来许多优势,包括快速部署、环境一致性、资源利用效率和轻量级虚拟化等。这些特性使得 Docker 成为现代应用开发和部署的重要工具。
以上都是理论部分,实操才是王道,我自己的电脑是windows 10 的系统,所以可以直接支持docker desktop ,不支持看看是不是windows版本问题,老版本的windows 似乎不支持docker desktop 。很多网上教程都是一大篇命令,虽然可以照着敲,但是有图形化界面,我就更喜欢了,虽然命令可以灵活多变,但图形化界面,更一目了然,下面介绍的也基本都是界面操作,尽量不使用命令。最后达到的效果是Docker在Windows环境中使用visual studio 调试 .net core web项目,发布镜像另一篇介绍,内容太多。
下载docker for windows
docker for windows是doker在windows系统下的图形操作界面。docker 官网地址等相关地址:
➤ https://github.com/docker/for-win
下完成后直接运行exe,直接下一步到最后(configuration的都勾选)
点击右上角设置按钮图标,点击“builders”,默认desktop-windows 报错了,不能用。在网上找了好久也没找到为什么,直接创建了web项目测试,直接报错“Docker Desktop - Windows containers not Enabled”。
切换到 windows containers
默认是linux 运行容器,我发布的web是在windows 下运行,所以要切换到 windows containers
如果不切换直接使用visual studio 运行项目会有以下错误
“已配置使用 linux的docker 服务器主机,但你的项目面向windows”
Hyper-V配置
本以为转换windows容器环境后可以直接运行了,但意外还是按时到达。这个时候就需要配置
经过长时间折腾,找到了解决办 win+x 打开shell 的管理员模式 输入命令
Enable-WindowsOptionalFeature -Online -FeatureName $("Microsoft-Hyper-V", "Containers") -All
在功能中开启Hyper-V
使用visual studio 创建测试web项目
创建测试项目后添加docker支持,选择windows 环境
这两步执行完成后项目中会出现dockerfile文件,调试位置出现docker(不想用docker也可以选择iis),点击docker调试,运行项目。
终于成功了
这样就成功了,当然由于个人项目问题,也出现了.net sdk 版本
找到docker 文件