Windows版docker安装与使用


本文主要讲解基于Windows操作系统的docker安装与配置,本文采用两台机器,一台作为运行机,一台作为开发机,然后通过开发机上的IDEA远程进行部署镜像到运行机上,并可以通过远程访问,以及如何实现容器间互通,其他操作系统的使用以及docker的基础知识不在本文范围内,请查看其他资源。

环境准备

准备开发环境和部署环境,本文涉及的Windows环境均为Win10专业版。

部署环境准备

Windows准备

控制面板->程序->启用或关闭Windows功能->把Hyper-v勾上,开启Hyper-V 功能,然后,重启系统使新设置生效。
在这里插入图片描述
如果系统中wsl不能满足需求,可以手动下载并更新:
https://docs.microsoft.com/zh-cn/windows/wsl/install-manual#step-4—download-the-linux-kernel-update-package

Docker(Windows版)安装与配置

访问官网下载并安装Docker(Windows版):https://www.docker.com/products/docker-desktop

开启docker远程访问,Settings->Docker Engine中添加hosts映射。
在这里插入图片描述

"hosts":["tcp://0.0.0.0:2375"]

打开2375端口监听。
在这里插入图片描述
开放主机2375端口:

  1. 主机管理员权限打开cmd命令框
  2. 执行以下命令
netsh interface portproxy add v4tov4 listenport=2375 connectaddress=127.0.0.1 connectport=2375 listenaddress=系统IP地址 protocol=tcp

通过以下命令创建docker内部共享网络。

docker network create inner-net

运行镜像时,需要在启动命令参数中加入:–network inner-net,这样,容器间就可以达到网络互通了。

什么情况需要容器内网络互通?
docker内部署了注册中心以及其他微服务,以consul作为注册中心为例,会在做心跳检查的时候通过内部端口号去访问,而不是服务映射到本机的端口号,所以,如果内部不互通会导致心跳检查失败,服务始终不在线。

开发环境准备

JAVA安装及配置

JAVA的安装步骤可以参考网上其他资源,需要注意以下事项:

  1. 一定要安装JDK,而不是JRE。
  2. 一定要安装正确的JDK版本。
  3. 安装后在系统环境变量中增加JAVA_HOME。
  4. 在系统环境变量path中增加%JAVA_HOME%/bin,避免后续找不到java命令。

Maven安装及配置

Maven的安装步骤可以参考网上其他资源,需要注意以下事项:

  1. 安装后在系统环境变量中增加MAVEN_HOME。
  2. 在系统环境变量path中增加%MAVEN_HOME%/bin,避免后续找不到MVN命令。
  3. 检查安装目录下conf/settings.xml文件,可以将里面的仓库地址设置成阿里云的镜像仓库地址,这样会提高镜像拉取速度。
  4. 设置本地仓库路径。

IDEA安装及配置

一、开发环境安装IDEA,访问官网下载并安装:http://www.jetbrains.com/idea/

运行IDEA,进行各项配置。
二、配置Maven,参考下图:
在这里插入图片描述

三、安装docker插件。
在这里插入图片描述
参考下图配置Docker插件,连接到远程Docker服务器,如果环境都设置正确,配置完成后下面会提示“Connection succeful”。如果提示连接超时或者其他异常信息,需要重新检查部署环境的各项设置,直到这个画面出现连接成功的提示。
在这里插入图片描述

微服务准备

搭建微服务工程

本文不阐述微服务工程搭建的详细步骤,如果有需要可以参考其他资源。

创建Dockerfile

增加打包微服务镜像用的Dockerfile文件,根据自己的项目情况修改相应参数。

FROM java:8
VOLUME /tmp
COPY target/demo-0.0.1-SNAPSHOT.jar demo.jar
RUN bash -c "touch /demo.jar"
EXPOSE 8080
ENTRYPOINT ["java","-jar","demo.jar"]

Docker插件配置

一、创建打包部署镜像的命令,Run->Edit Configuration。选中左侧Docker,再点击左上角【+】按钮,增加一个Dockerfile命令。

  1. 填写命令的名称,可以设置一个易于辨识的名字。
  2. Server选择Docker。
  3. Dockderfile选择Dockerfile。
  4. Image tag设置镜像的版本标签。
  5. Run下面都是运行相关的参数。
  6. Container name是运行时的容器名称。
  7. Bind ports是运行时主机端口和容器端口的映射。
  8. Run options是启动时的参数,–network inner-net是指定该容器加入inner-net网络。

具体填写参考下图:
在这里插入图片描述
二、选中左侧Docker,再点击左上角【+】按钮,增加一个Docker Image命令。具体填写参考下图:
在这里插入图片描述
这两个命令的差别在于,Dockerfile命令会先生成镜像文件,然后将镜像文件部署到Docker容器,并启动运行。而Dockder Image命令,跳过生成镜像的步骤,直接用已经存在的镜像创建一个新的容器并运行。要注意,同一个服务部署多个实例时,一定要在设置中填写不同的主机端口映射,容器端口可以相同,但映射到主机的端口一定不同。

编译打包微服务

通过命令进行编译打包微服务,日志中显示成功,表示编译打包过程中没有出现问题,如果有编译不通过或者在测试过程中数据库连接不上的情况会导致打包失败。

mvn clean package

微服务部署

部署服务镜像

点击IDEA中的运行按钮,保证左侧已经选择了部署镜像(Dockerfile命令)的命令。首次部署服务镜像可能时间会稍久一些,因为需要通过线上仓库拉取资源。

创建新容器

当服务镜像部署成功后,选择创建容器(Docker Image命令)的命令,然后点击IDEA运行按钮,创建一个新的容器,这时就会有两个服务实例同时在线

查看实例状态

通过注册中心查看实例的在线状态。以consul为例,访问以下地址:

http://192.168.1.101:8500/ui/

在这里插入图片描述
如果服务后面显示的是passing,则表示服务状态正常,如果显示的是failing,则表示服务状态异常,需要查看consul的控制台输出,分析原因。

总结,本文记录了搭建基于Windows版Docker的部署与开发应用,方便在学习中的小伙伴快速搭建环境,没有详细阐述的地方,还请参考其他网络资源。


版权声明:本文为yuyangbaby原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。