• 使用docker来部署asp.net core的程序


    使用docker来部署asp.net core程序

    暂不介绍docker是个什么东西?不知道的自己百度。

    第一步安装docker:

    我的docker是装在centos7系统上,windows上我的也用过,但是在windows上动不动就给我死掉。最后换了linux系统。

    具体在linux上如何安装docker参考下面的链接。

    https://www.cnblogs.com/yufeng218/p/8370670.html

    第二步拉取dotnet最新镜像:

    docker pull microsoft/dotnet

    然后等待拉去镜像。如果是自己电脑的虚拟机的话,会有点慢。然后百度docker更改镜像库地址。

    然后拉去完成后 使用这个命令

    docker images

    来查看当前的拉去后镜像。

    拉去制定版本的的dotnet镜像或者拉去asp.net core 运行时.,自己去百度(懒得打字)

    当前的dotnet镜像已经拉去好了。我们来尝试运行一下,输入一下命令

    docker run -it 540aa875e6c2

    上面命令的540aa875e6c2是我虚拟机上dotnet镜像的ImageId,请各位输入的自己机器上的。使用dokcer images 会显示镜像id的。

    然后你会看到进入了一个这么个东西

    [root@iz2zefw4l0vyl0r786jwc1z ~]# docker run -it 540aa875e6c2
    root@d286c33bedd5:/#  ^C
    root@d286c33bedd5:/# 

    最常用的输入dotent -version看看版本,还有其他命令。

    到这里我们的拉去基础镜像就完成了。

    在这里你会问,为什么要拉取dotnet镜像?

    答:不拉去基础镜像的你的.net core根本用不了啊。不能运行啊。

    第三步上传.net core程序 到linux服务器。

    随便百度一个ftp工具,上传到linux你想要的任何位置。

    如果有人问,我想制定一个目录上传怎么办?

    答:两个办法,1 你去看看linux创建目录的命令,2;大部分ftp工具都自带创建目录按钮,点一下就行了。

    第四步制作你自己程序的docker镜像。

    要制作docker镜像,就离不开一个叫Dockerfile东西。这个东西是什么呢?我在这里也不想介绍。还是自己去百度看看把。

    进入到上传.net core程序的目录。

    输入命令

     vi Dockerfile

    没有后缀,大小写一直

    输入或者粘贴一下文本

    FROM microsoft/dotnet:latest
    
    COPY . /app
    
    WORKDIR /app
    
    EXPOSE 80
    
    ENTRYPOINT ["dotnet", "WebApplication4.dll"]

    下面说一下我遇到的坑。

    首先copy 后面一个 点,代表当前存放我们的程序的dll文件的目录。 后面/app是把当前目录重的文件拷贝到docker容器之中的那个目录。这个目录要与上面的WOKDIR 目录一致。

    EXPOSE用来指定端口,使容器内的应用可以通过端口和外界交互。

    ENTRYPOINT 进入容器执行程序的命令。

    第五步打包镜像

    输入命令

    docker build -t 你给这个镜像取个名字 .

    然会就会执行成功。

    第六步启动镜像

    输入一下命令来启动我们刚才打包的镜像

    docker run --name 容器名称 -p 5000:80  -d 镜像名称或者镜像id

    然后使用

    docker ps 

    命令,来查看,我们的镜像是否启动成功。

    如果启动不成功,你需要输入一下命令

    docker logs 容器名称

    来查看日志。

    在说下我遇到的几个重点把。如果你看过doker run 的命令 你会发现 -p 要制定端口, 可是我们有在Dockerfile中写了程序通信的端口啊?

    答:如果你用我上面的那个run的命令,你Dockerfile中写的EXPOSE  就不会其作用了。会强制使用 -p绑定的端口。

    第七步使用Nginx来转发我们的请求到容器

    如何在centos 安装nginx 在不说了,百度解决

    找到nginx目录。在centos上面nginx安装默认目录都是 /etc/nginx

    在nginx目录找到默认的配置文件。根据Nginx版本的不同,。默认文件的目录也不同.

    自己找找.

    找到的话,把里面 servier节点里面的所有内容注释了。

    新建一个netcore.conf的配置文件

    赋值粘贴一下内容

    server {
        listen       80;
        location / {
        proxy_pass http://127.0.0.1:5001;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection keep-alive;
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
        }
    }

    把里面的 地址改成你自己的端口。 如果访问的话初选502。百度linux关闭selinux。

     

  • 相关阅读:
    Kafka中数据的流向
    kafka调试中遇到could not be established. Broker may not be available. (org.apache.kafka.clients.NetworkClient)
    knife4j
    SpringBoot使用ELK日志收集ELASTIC (ELK) STACK
    Jedis连接池(实际项目可用)
    Redis windows安装帮助
    Spring Boot 多数据配置更新
    SpringBoot使用Mybatis-Generator
    tkinter显示图片
    window nodejs 版本管理器 nvm-windows 教程
  • 原文地址:https://www.cnblogs.com/wscar/p/10035835.html
Copyright © 2020-2023  润新知