• 关于windows使用docker的总结


    近日,公司余总让我思考Linux部署.net core应用程序的方案,同时余总提出了使用docker方式部署的方式,很多年前曾接触过Docker,但是没有深入研究,而近日的需求让我不得不再次重拾Docker知识,于是就通过网上查阅相关资料进行学习。

    我们公司的情况和很多互联网公司不一样,我们做的是政府项目,出于安全考虑客户那边是不允许连接互联网的,因此我们的部署必须要考虑局域网的部署。于是大概的思路就是:

    1. 下载离线版的CentOS系统,下载离线版Docker,在客户服务器安装CentOS系统和Docker。
    2. 在公司制作发布的镜像(Image),然后导出为tar文件(使用save命令)
    3. 到客户环境将导出的tar文件镜像通过load命令导入镜像

    一、发布到本机Docker

    上面是整体的思路,我这边使用的是windows方案,首先需要下载Docker Desktop for windows,下载地址:https://docs.docker.com/docker-for-windows/install/。然后双击安装包进行安装,如果安装不成功,会有提示信息的,该程序就是利用windows的hyper-v虚拟机在实现docker。安装成功后在dos窗体中输入docker --version验证是否安装成功。

     此时我们需要使用到部分docker命令如下:

    docker images #查看所有的镜像
    docker ps -a #查控所有的容器
    docker rm -f 容器名/容器id #删除容器
    docker rmi 镜像名/镜像id #删除镜像
    docker pull nginx:last #拉取镜像
    docker search nginx #查询镜像
    docker history XXXXXXX #查看docker的历史楼层
    docker exec -it 5d8ac43f358a /bin/bash #进入容器
    docker run --name duanjt-netcore-mvc2 -d -p 7077:80 core-mvc #运行容器

    此时我参考了文章:https://www.cnblogs.com/chengtian/p/11832955.html ,通过VS2019创建.net core项目,然后发布该项目为文件(千万不要有中文路径),最后在发布目录下创建DockerFile文件,DockerFile的内容如下:

    #See https://aka.ms/containerfastmode to understand how Visual Studio uses this Dockerfile to build your images for faster debugging.
    
    #Depending on the operating system of the host machines(s) that will build or run the containers, the image specified in the FROM statement may need to be changed.
    #For more information, please see https://aka.ms/containercompat
    
    FROM mcr.microsoft.com/dotnet/aspnet:3.1 AS base
    WORKDIR /app
    EXPOSE 80
    EXPOSE 443
    
    COPY . /app
    ENTRYPOINT ["dotnet", "WebApplication1.dll"]

    DockerFile的意思是:继承 mcr.microsoft.com/dotnet/aspnet:3.1容器,向外暴露80和443端口,工作目录是/app,也就是说进入容器的默认目录是/app,COPY表示将当前目录拷贝到容器的/app目录下,

    ENTRYPOINT和RUN命令含义差不多,但是RUN可以被覆盖,而ENTRYPOINT不允许被覆盖,ENTRYPOINT表示容器启动后执行的命令。

    然后在DockerFile目录下执行编译镜像的命令:docker build -t core-mvc .

     core-mvc表示镜像的名称,最后的点(.)表示DockerFile文件所在目录为当前目录。

    此时我们查看镜像如下:

     此时我们就可以运行容器了,命令如下:docker run --name duanjt-mvc -d -p 7077:80 core-mvc

     我们可以看到,容器名称为duanjt-mvc的容器已经启动成功了,此时我们在浏览器输入:http://127.0.0.1:7077/WeatherForecast

     ok,至此,我们的.net core程序就已经完美发布到docker中了

    二、导出镜像

    上一步我们已经做好了镜像,然后需要导出来,导出参考了文章:https://www.cnblogs.com/zhuochong/p/10064350.html,执行如下命令:docker save -o duanjt-mvc.tar core-mvc:latest,执行命令后,在当前dos所在目录下会产生duanjt-mvc.tar这样的文件就是我们导出的镜像。

     

     三、导入镜像

    上一步骤我们已经导出了镜像,就可以将镜像拷贝到客户单位服务器上面去,然后导入镜像,执行命令如下:docker load -i duanjt-mvc.tar 

     我们可以看到,镜像已经导入进来了,后面的操作就没有任何区别了。

  • 相关阅读:
    数据库之多表操作
    数据库之修改表结构
    mysql数据库
    协程
    线程
    Javaweb基础学习—— jQuery基础
    javaweb基础学习—— css
    JDBC基础学习笔记
    JDBC连接MySQL常见错误集锦
    MySQL基础笔记
  • 原文地址:https://www.cnblogs.com/duanjt/p/14674594.html
Copyright © 2020-2023  润新知