Docker 在 WSL 上设置用于推送 ACI 容器
Docker setup on WSL for pushing ACI containers
我在 linux 的 windows 子系统上使用 docker,并且 运行 正在解决将容器推向 Azure 的问题。在 WSL 上,似乎有不止一种方法可以 运行 docker,但都不能完全满足我的需要。
在这两种情况下,我都在 Windows 中安装了 Docker Desktop,并针对 WSL 使用进行了正确设置。
选项 1:使用 docker-ce 包。使用此选项,我可以在本地 运行 docker compose
并 运行 我的容器。但是,docker login azure
无法启动浏览器实例并希望连接到本地 url "//azure/v2/".
选项 2:删除 docker-ce 并使用 Docker Desktop 删除的符号链接。在这里我可以成功验证到 azure,并推送一个简单的容器,但是 docker compose up
returns 这个消息:
ERROR: The platform targeted with the current context is not supported.
Make sure the context in use targets a Docker Engine.
此外,此选项阻止我在本地 运行ning 容器 - 没有 dockerd 运行ning 和 service docker start
说 dockerd不存在。
现在我已通过 Azure 进行身份验证,如果我在 ACI 上下文中重新安装 docker-ce
和 运行 docker compose up
,我会看到一个新错误:
cannot use ACI volume, required driver is "azure_file", found ""
WSL 上 Docker 的推荐设置是什么,可以让我将容器推送到 ACI 并在本地启动它们?我应该采取什么步骤让系统进入干净状态?
What is the recommended setup for Docker on WSL that will enable me to
push containers to ACI and also launch them locally? What steps should
I take to get the system into a clean state?.
假设您使用的是 WSL(ubuntu 18.04 版本)。
请按照以下步骤安装 docker 并在本地创建容器并推送到 ACI。
第 1 步:在 Ubuntu 18.04
上安装 Docker
apt install docker.io
第 2 步:从 Docker Hub
拉取镜像
docker pull nginx
.
第三步:制作本地容器并打开5000端口(默认端口为80)
docker container run -d --name nginx --publish 5000:80 nginx
第 4 步:登录 azure
az login
第 5 步:创建容器注册表
az acr create -g "v-rasXXXXX" -n "TestMyAcr90" --sku Basic --admin-enabled true
第 6 步:标记 docker 图片
docker tag 605c77e624dd testmyacr90.azurecr.io/my_nginx
其中605c77e624dd
是nginx的IMAGE ID。
您可以使用 cmdlet docker images
.
检查图像
第 7 步:现在使用 docker.
登录容器注册表
docker login testmyacr90.azurecr.io
步骤 8:将 docker 镜像推送到容器注册表
docker push testmyacr90.azurecr.io/my_nginx
第 9 步:从 Container Registry 映像创建容器实例
az container create --resource-group v-rXXXXXdtree --name mycontainer90 --image testmyacr90.azurecr.io/my_nginx:latest --cpu 1 --memory 1 --registry-login-server testmyacr90.azurecr.io --registry-username TestMyAcr90 --registry-password CipBd5joXXXXXXfZrbw/Pl --dns-name-label testnginx5 --ports 80
你可以参考这个我几个月前回答过的
我在 linux 的 windows 子系统上使用 docker,并且 运行 正在解决将容器推向 Azure 的问题。在 WSL 上,似乎有不止一种方法可以 运行 docker,但都不能完全满足我的需要。
在这两种情况下,我都在 Windows 中安装了 Docker Desktop,并针对 WSL 使用进行了正确设置。
选项 1:使用 docker-ce 包。使用此选项,我可以在本地 运行 docker compose
并 运行 我的容器。但是,docker login azure
无法启动浏览器实例并希望连接到本地 url "//azure/v2/".
选项 2:删除 docker-ce 并使用 Docker Desktop 删除的符号链接。在这里我可以成功验证到 azure,并推送一个简单的容器,但是 docker compose up
returns 这个消息:
ERROR: The platform targeted with the current context is not supported.
Make sure the context in use targets a Docker Engine.
此外,此选项阻止我在本地 运行ning 容器 - 没有 dockerd 运行ning 和 service docker start
说 dockerd不存在。
现在我已通过 Azure 进行身份验证,如果我在 ACI 上下文中重新安装 docker-ce
和 运行 docker compose up
,我会看到一个新错误:
cannot use ACI volume, required driver is "azure_file", found ""
WSL 上 Docker 的推荐设置是什么,可以让我将容器推送到 ACI 并在本地启动它们?我应该采取什么步骤让系统进入干净状态?
What is the recommended setup for Docker on WSL that will enable me to push containers to ACI and also launch them locally? What steps should I take to get the system into a clean state?.
假设您使用的是 WSL(ubuntu 18.04 版本)。
请按照以下步骤安装 docker 并在本地创建容器并推送到 ACI。
第 1 步:在 Ubuntu 18.04
上安装 Dockerapt install docker.io
第 2 步:从 Docker Hub
拉取镜像docker pull nginx
.
第三步:制作本地容器并打开5000端口(默认端口为80)
docker container run -d --name nginx --publish 5000:80 nginx
第 4 步:登录 azure
az login
第 5 步:创建容器注册表
az acr create -g "v-rasXXXXX" -n "TestMyAcr90" --sku Basic --admin-enabled true
第 6 步:标记 docker 图片
docker tag 605c77e624dd testmyacr90.azurecr.io/my_nginx
其中605c77e624dd
是nginx的IMAGE ID。
您可以使用 cmdlet docker images
.
第 7 步:现在使用 docker.
登录容器注册表docker login testmyacr90.azurecr.io
步骤 8:将 docker 镜像推送到容器注册表
docker push testmyacr90.azurecr.io/my_nginx
第 9 步:从 Container Registry 映像创建容器实例
az container create --resource-group v-rXXXXXdtree --name mycontainer90 --image testmyacr90.azurecr.io/my_nginx:latest --cpu 1 --memory 1 --registry-login-server testmyacr90.azurecr.io --registry-username TestMyAcr90 --registry-password CipBd5joXXXXXXfZrbw/Pl --dns-name-label testnginx5 --ports 80
你可以参考这个