以Azure为例在本地使用Docker

Azure和Docker介绍

Azure是微软的云计算平台,可提供企业虚拟运行其全部或部分计算操作所需的一切。 换句话说,它允许组织,开发人员,政府机构和IT专业人员构建,部署和管理应用程序,而无需依赖任何物理硬件(只要它们具有活动的Internet连接)

Docker是一个开源的应用容器引擎,可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。Docker可以让你在不同的环境中运行相同的应用程序,而不必担心环境差异导致的问题。以下是使用Docker的步骤:

  1. 安装Docker
  2. Docker镜像
  3. Docker容器
  4. Docker仓库

安装Docker 首先,需要在计算机上安装Docker。可以从官方网站下载适用于您的操作系统的Docker安装程序。

Docker镜像: Docker镜像是一个轻量级、独立、可执行的软件包,它包含运行应用程序所需的所有内容,包括代码、运行时、库、环境变量和配置文件。

Docker容器: Docker容器是Docker镜像的运行实例。可以使用Docker容器来运行应用程序。

Docker仓库: Docker仓库是存储和分发Docker镜像的地方。可以使用公共或私有仓库来存储和共享镜像。

设置和安装Windows的Linux子系统以及Docker

说明:Dock容器应用的开发必须使用Linux环境。Windows提供了一个高效的Linux子系统WSL 2。本实践中,我们首先启用WSL 2,然后安装Linux发行版ubuntu 18.04或更高版本20.04。安装Docker,并将Docker和WSL 2集成。

         替代选择:

  1. 不安装Docker Desktop,而安装Docker Engine。
  2. 将Ubuntu安装为第二个操作系统,再安装Docker Desktop或Docker Engine。
  3. 将Ubuntu安装为虚拟机,再安装Docker Desktop或Docker Engine。

1.启用Windows的Linux子系统 WSL 2

PowerShell 中运行:

wsl.exe -l -v

如果结果如下,那么需要启用WindowsLinux子系统。

具体步骤查看网页:

Install WSL | Microsoft Learn

简单步骤

1,检查:若要更新到 WSL 2,需要运行 Windows 10。对于 x64 系统:版本 1903 或更高版本。

2,以管理员身份打开 PowerShell 并运行:

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

3,下载并安装Linux 内核更新包: 适用于 x64 计算机的 WSL2 Linux 内核更新包

4PowerShell中执行

wsl --set-default-version 2

2.安装ubuntu 18.04

在Windows 应用商店里,找到ubuntu 18.04并安装。

然后再开始页面找到刚安装的ubuntu 18.04。

打开ubuntu 18.04,等待终端出现安装完成消息。

3.将ubuntu 18.04设置为WSL 2的默认系统

PowerShell中执行

wsl -- set-default Ubuntu-18.04

4.安装Docker

按如下网页中指南下载和安装Docker桌面版:

Get Started | Docker

5.将Docker和WSL 2集成

首先,保证选择了General标签页里的Use the WSL2 based engin选项:

然后Resource标签页中选择Enable integration with my default WSL distro选项:

Windows下的调试容器应用

说明:先在WSL中安装dotnet-sdk-6.0。然后在WSL文件系统下创建项目文件夹,初始化一个.NET Blazor Server项目。从项目目录打开VS Code,在VS Code中安装必要插件。向项目添加Docker File。最后用VS Code调试运行在WSL中的项目。

可能的问题:第一次调试可能因网络原因,安装.NET调试器失败。结局办法是直接拷贝相关文件。

打开WSL文件夹的方法:在WSL(Ubuntu)中运行“explorer.exe .”。

1.安装VS Code

按官方网页中的指南安装VSCodeVisual Studio Code - Code Editing. Redefined

2.在ubuntu 18.04中安装dotnet-sdk-6.0

打开ubuntu18.04,依次执行:

sudo apt update

sudo apt upgrade

wget https://packages.microsoft.com/config/ubuntu/18.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb

sudo dpkg -i packages-microsoft-prod.deb

sudo apt update

sudo apt-get install dotnet-sdk-6.0

在ubuntu 20.04中安装dotnet-sdk-6.0:

wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb

sudo dpkg -i packages-microsoft-prod.deb

rm packages-microsoft-prod.deb

sudo apt-get update

sudo apt-get install -y dotnet-sdk-6.0

3.在WSL 2中创建.Net项目

打开ubuntu18.04。创建目录myapp0。这需要在ubuntu终端中执行:

mkdir myapp00

cd myapp00

创建.NET Web项目

在ubuntu终端中执行:

dotnet new blazorserver

4.启动VS Code

在myapp00目录内执行:

   

VS Code启动后画面如下:

5.在WSL内安装VS Code插件

在VS Code里安装插件C#和Docker。过程为:先找到插件,安装,再点击插件上的Install in WSL:Ubuntu-18.04。

注意下面边栏的火焰图标。

6.生成launch.json文件

VS Code 同样可以从键盘访问。 要知道的最重要的组合键是 Ctrl+Shift+P,它会调出命令面板。选择 .NET: Generate Assets for Build and Debug。生成launch.json和task.json文件。

选择.Net Core环境:

7.将 Docker 文件添加到项目中

打开命令面板 (Ctrl+Shift+P) 并使用 Docker: Add Docker Files to Workspace... 命令

当提示应用程序平台时,选择 .NET: ASP.NET Core。

当提示选择操作系统时,选择Linux

将应用程序端点的端口更改为 5000。

系统会询问您是否要添加 Docker Compose 文件,选择是”。

Dockerfile .dockerignore 文件被添加到工作区。

该扩展还将修改launch.json和task.json文件。创建一组用于构建和运行容器的 VS Code 任务(在调试和发布配置中,总共四个任务),以及用于在调试模式下启动容器的调试配置。 

8. 调试应用

选择 Docker .NET Core Launch.

效果展示

至此docker应用可以运行

使用Azure容器注册表

1.登录容器注册表。

PowerShell或其它终端里执行

docker login cr.scuapps.cn:5000

用户名:这里写自己或别人的用户名

密码:这里是密码

我是用的之前课程老师的用户名和密码。这里就不给大家放了。想用的可以自己去创建一下账号。

2.推送容器映像到注册表

docker tag {my-app} cr.scuapps.cn:5000/{my-app}

docker push cr.scuapps.cn:5000/{my-app}

3.拉取别人的映像并运行

      docker pull cr.scuapps.cn:5000/{their-app}

我的运行实践

登录容器注册表

推送自己的容器映像

拉取其他同学的映像

浏览器访问

    至此我们完成了Azure和Docker在本地的应用

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Docker是一个流行的容器化平台,它主要用于软件打包、部署和运行。以下是使用Docker的主要原因: 1. **应用封装**:Docker将应用程序及其依赖项打包到一个轻量级的容器中,确保在不同环境(如开发、测试、生产)中的一致性。 2. **环境隔离**:每个容器都有自己的运行时环境,包括操作系统层,这意味着开发者可以在本地开发环境中构建并运行容器,而不会影响主机系统的其他应用。 3. **资源高效**:Docker利用操作系统级别的隔离,使得容器启动快,资源占用小,提高了资源利用率。 4. **部署便捷**:Docker镜像的复用性使得部署和迁移应用变得简单快捷,减少配置复杂性。 5. **版本管理和生命周期管理**:Docker提供了一致的方式来管理应用的生命周期,从创建镜像到运行容器,再到更新和停止。 6. **可移植性**:Docker容器可以在不同的计算平台(包括云服务提供商、虚拟机、物理服务器)上运行,提高了应用的部署灵活性。 7. **持续集成/持续部署(CI/CD)**:Docker是自动化部署流水线的重要组件,有助于快速迭代和交付。 Docker的应用范围广泛,包括但不限于: - **Web应用**:前端、后端、API服务等都可以容器化部署。 - **微服务架构**:将服务拆分成独立的容器,方便协作和扩展。 - **DevOps**:加速开发者的本地开发和测试环境的搭建。 - **云计算**:在AWS、Google Cloud、Azure等云平台上,Docker容器编排工具(如Kubernetes)的基础。 - **大数据和机器学习**:Hadoop、Spark和TensorFlow等可以通过Docker部署。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值