当前位置: 首页 > news >正文

Win10安装Docker Desktop并运行Tutorial示例

背景

前段时间一个项目需要在开发环境直接使用 Docker ,为了省事便计划在本地安装 Desktop 版的 Docker 。其实安装过程比较简单,可视化安装即可,主要是对安装与初步使用时遇到的问题做个记录。

下载安装

  • 下载地址:https://download.docker.com/win/edge/Docker%20Desktop%20Installer.exe。

Docker 官方下载 Docker Desktop Installer.exe 并安装即可。我在安装过程中遇到的问题如下。

问题描述:WSL 2 installation is incomplete.

解决方法

下载安装 WSL 即可。https://learn.microsoft.com/zh-cn/windows/wsl/install-manual#step-4—download-the-linux-kernel-update-package

安装完成后遇到的另一个问题就是,我的 VMware 无法运行了,这样就不能用虚拟机了。一般来说 Win10 默认不会打开 Hyper-V ,但是安装 Docker 默认会打开 Hyper-V 。由于 VMware WorkstationHyper-V 冲突,那么 VMware WorkstationDocker 也冲突。如果要重新开启 Hyper-V ,只需以管理员身份运行 cmd ,执行 bcdedit /set hypervisorlaunchtype auto 命令并重启即可。

运行Tutorial

这个示例程序的完整命令如下。

docker run --name repo alpine/git clone https://github.com/docker/getting-started.git
docker cp repo:/git/getting-started/ .
cd getting-started
docker build -t docker101tutorial .
docker run -d -p 80:80 --name docker-tutorail docker101tutorial

在执行构建镜像命令时,发生了以下错误。

问题描述:https://dl-cdn.alpinelinux.org/alpine/v3.18/main: temporary error (try again later)

2023-09-23-1-DNSError.jpg

解决方法

修改 DockerDNS 配置,在 Docker 引擎的配置文件中添加以下内容然后重启 Docker ,再次构建镜像即可。

{"dns": ["8.8.8.8"]
}

2023-09-23-2-DNSConfig.jpg

成功启动容器

根据示例程序的映射端口,本地访问 http://localhost 即可打开页面。

2023-09-23-3-Demo.jpg

实际项目中遇到的问题

docker-compose 配置如下:

services:rabbitmq:image: xxxrestart: on-failureports:- '5672:5672'- '1883:1883'- '8883:8883'- '61613:61613'- '15672:15672'container_name: my-rabbitmqhostname: my-rabbitmqvolumes:- rabbitmq:/var/lib/rabbitmq

实际项目中,当使用 RabbitMQ 作为 MQTTBroker 启动容器时,采用的端口为 1883 ,发生端口无法使用的错误。

问题描述:Error response from daemon: Ports are not available: exposing port TCP 0.0.0.0:1883 -> 0.0.0.0:0: listen tcp 0.0.0.0:1883: bind: An attempt was made to access a socket in a way forbidden by its access permissions.

解决方法

可是通过 netstat -aon|findstr "1883" 没找到占用该端口的进程,神奇了。。
经过查询: netsh interface ipv4 show excludedportrange protocol=tcp ,发现这个端口确实被禁用了,那就先临时换个端口用吧。。

2023-09-23-4-TCPPort.jpg

小总结

以上记录了安装与初步使用 Docker Desktop 时遇到的问题, Docker Desktop 是一个用于在本地计算机上运行和管理 Docker 容器的工具,其特性如下:

  1. 跨平台性:Docker Desktop可以在Windows、Mac和Linux操作系统上运行,使得开发人员可以在不同的平台上使用相同的开发环境。
  2. 隔离性:Docker容器提供了隔离的运行环境,使得应用程序和其依赖可以在一个独立的容器中运行,而不会影响到主机系统或其他容器。
  3. 可移植性:Docker容器可以在不同的环境中进行部署,包括开发、测试和生产环境。这种可移植性使得应用程序的部署更加简单和可靠。
  4. 快速部署:Docker容器可以快速启动和停止,使得应用程序的部署和扩展变得更加高效和灵活。
  5. 版本控制:Docker容器可以使用版本控制工具进行管理,使得应用程序的版本控制更加方便和可追踪。

此外,自带了 docker-compose ,使用 Docker Desktop 可以提供一个轻量级、可移植和可靠的开发和部署环境,使得开发人员能够更加高效地构建和交付应用程序。

Reference

  • Docker示例
http://www.lryc.cn/news/173617.html

相关文章:

  • 1、靶机——Pinkys-Place v3(1)
  • 【AIGC】Stable Diffusion Prompt 每日一练0916
  • 【C语言】指针经典笔试题(上)
  • 缓存问题解决方案
  • 数据结构————寻路算法
  • 蓝桥杯 题库 简单 每日十题 day7
  • go -- 获取当前24点的时间戳 --chatGpt
  • docker 容器内手动设置服务自启动
  • 腾讯云微服务平台 TSF 异地多活单元化能力重磅升级
  • 01贪心:算法理论知识
  • 目标分类笔记(二): 利用PaddleClas的框架来完成多标签分类任务(从数据准备到训练测试部署的完整流程)
  • PageHelp插件在复杂sql下引起的Having无法识别错误及其解决方案
  • linux中的开发工具
  • 2023 第十二届中国智能产业高峰论坛 - 文档大模型的未来展望
  • 【小沐学NLP】关联规则分析Apriori算法(Mlxtend库,Python)
  • 对话ChatGPT:AIGC时代下,分布式存储的应用与前景
  • java多线程学习笔记一
  • BOM与DOM--记录
  • Docker安装MongoDB
  • 不要对正则表达式进行频繁重复预编译
  • vue入门及小项目小便签条
  • 详解TCP/IP协议第四篇:数据在网络中传输方式的分类概述
  • SpringMvc决战-【SpringMVC之自定义注解】
  • 【MySQL集群一】CentOS 7上搭建MySQL集群:一主一从、多主多从
  • RGB格式
  • 认识面向对象-PHP8知识详解
  • 毕业设计|基于51单片机的空气质量检测PM2.5粉尘检测温度设计
  • 星闪空口技术初探
  • 如何在不失去理智的情况下调试 TensorFlow 训练程序
  • 24. 图论 - 图的表示种类