zoukankan      html  css  js  c++  java
  • 将Asp.Net Core3.1项目,使用Docker 部署到Centos 8

    一、准备工具

    Win 10

    Centos 8

    Visual Studio 2019

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

    二、Cenos 8安装docker

    1、安装

    1 yum install docker          安装docker   
    2 systemctl start docker.service  启动docker服务
    3 systemctl enable docker.service  设置docker服务开机自启动

    2、检查

    1 docker -v

     三、创建.net core 3.1项目并发布

    1、创建项目

     注意:勾选启用Docker支持,选择Linux。

    注意:将Dockerfile文件属性改为:始终复制。

     2、生成项目,现在本地使用docker运行,保证项目正常运行。

    第一次运行的时候,会提示你运行Docker Desktop,无脑点是。继续运行会自动下载运行项目时所需要的镜像,静等complete即可。

    3、本地运行成功

     4、本地发布

     发布后的文件结构

     5、修改Dockerfile文件地址

    由于我们是发布到本地,vs帮我们自动生成的Dockerfile文件里,包含了生成—>发布—>运行的所有流程,在这里,我们只需要最后一步运行的数据就行了。

      dockerfile文件指令说明:

    • FROM -指定所创建镜像的基础镜像
    • WORKDIR-配置工作目录
    • EXPOSE-声明镜像内服务监听的端口 (可以不写,因为我们具体映射的端口可以在运行的时候指定)
    • COPY-复制内容到镜像   (. .代表当前目录)
    • ENTRYPOINT-启动镜像的默认人口命令

    6、打包到Centos 8服务器,我这里使用的是:SecureCRT

     7、构建docker镜像

      进入到服务器的相关文件夹路径,输入:

    1 docker build -t mytest-mvc .

    注意:结尾的 . 不能漏掉

    参数解释:

    •  -t 指定镜像名称 (只能小写)
    •  .  表示build上下文为当前目录,默认情况docker会使用上下文的根目录找到Dockerfile文件

    查看构建的镜像,输入:

    1 docker image ls

     8、创建并运行容器

    1 docker run --name myfirstWeb  -d -p 5001:2345  firstdocker

        参数解释:

    •  --name  表示容器名称(区分大小写),也可以不指定,默认会生成
    •  -d          表示在后台以守护形式运行容器
    •  -p          表示外部端口与内部容器端口映射。关于-p的还有其他用法(https://www.cnblogs.com/williamjie/p/9915019.html)
    • 结尾       表示上一步创建的镜像名称

    查看容器运行情况,输入:

    1 docker ps -a

     最后,我们在本地请求:

    如果发现请求不了,多半是下面两种情况:

     1、对外映射的端口没开启。

    1 //查询端口号XXX 是否开启
    2 firewall-cmd --query-port=XXX/tcp  
    3 //开启端口
    4 firewall-cmd --zone=public --add-port=XXX/tcp --permanent
    5 //重启防火墙
    6 firewall-cmd --reload

    2、创建运行容器时监听的端口弄错了:

    1 //查看容器运行日志
    2 docker logs 容器ID


     容器相关常用命令:

    1 //查看容器运行日志
    2 docker logs  容器名称/容器ID    
    3 //停止运行容器
    4 docker stop 容器名称/容器ID    
    5 //删除容器
    6 docker rm 容器名称/容器ID   
    7 //重启容器服务 
    8 systemctl restart docker
  • 相关阅读:
    mysql 练习题
    mysql 语法
    mysql数据库简单练习(创建表格,增删改查数据)
    dom对象基础
    JS定时器
    JS小测验
    JS事件练习题
    JS事件
    dom对象
    tiles介绍
  • 原文地址:https://www.cnblogs.com/cool-net/p/13440969.html
Copyright © 2011-2022 走看看