以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子系统。

以Azure为例在本地使用Docker_第1张图片

具体步骤查看网页:

Install WSL | Microsoft Learn

简单步骤

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

以Azure为例在本地使用Docker_第2张图片

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。

以Azure为例在本地使用Docker_第3张图片

打开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选项:

以Azure为例在本地使用Docker_第4张图片

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

以Azure为例在本地使用Docker_第5张图片

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,依次执行:

以Azure为例在本地使用Docker_第6张图片

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

以Azure为例在本地使用Docker_第7张图片

创建.NET Web项目

在ubuntu终端中执行:

dotnet new blazorserver

以Azure为例在本地使用Docker_第8张图片

4.启动VS Code

在myapp00目录内执行:

    以Azure为例在本地使用Docker_第9张图片

VS Code启动后画面如下:

以Azure为例在本地使用Docker_第10张图片

5.在WSL内安装VS Code插件

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

以Azure为例在本地使用Docker_第11张图片

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

6.生成launch.json文件

VS Code 同样可以从键盘访问。 要知道的最重要的组合键是 Ctrl+Shift+P,它会调出命令面板。选择 .NET: Generate Assets for Build and Debug。生成launch.json和task.json文件。以Azure为例在本地使用Docker_第12张图片

选择.Net Core环境:

以Azure为例在本地使用Docker_第13张图片

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

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

以Azure为例在本地使用Docker_第14张图片

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

以Azure为例在本地使用Docker_第15张图片

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

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

以Azure为例在本地使用Docker_第16张图片

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

以Azure为例在本地使用Docker_第17张图片

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

以Azure为例在本地使用Docker_第18张图片

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

8. 调试应用

选择 Docker .NET Core Launch.

以Azure为例在本地使用Docker_第19张图片

效果展示

以Azure为例在本地使用Docker_第20张图片

至此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_第21张图片

拉取其他同学的映像

浏览器访问

以Azure为例在本地使用Docker_第22张图片

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

你可能感兴趣的:(docker,azure,容器)