首页 > 系统相关 >webapi通过docker部署到Linux的两种方式

webapi通过docker部署到Linux的两种方式

时间:2024-03-18 22:57:35浏览次数:18  
标签:webapi 容器 -- sudo Linux 镜像 docker restart

docker

安装官网

  1. 删除docker

     sudo  yum remove docker \
     docker-client \
     docker-client-latest \
     docker-common \
     docker-latest \
     docker-latest-logrotate \
     docker-logrotate \
     docker-engine
    
  2. 安装

    sudo yum install -y yum-utils
    sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
    sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
    
  3. 查看是否安装成功

    sudo systemctl start docker
    sudo docker run hello-world
    
  4. 查看docker状态

    systemctl status docker
    
  5. 设置开机自启

    sudo systemctl enable docker
    
  6. 禁止开机自启

    sudo systemctl disable docker
    

二、创建镜像容器(镜像可以理解成类,容器可以理解成类的实例化)

  1. 源代码创建

    1. 创建WebApi项目

    2. 选择将 解决方案 和 **项目 ** 放到同一个目录下,点击下一步

    3. 选择启用Docker,点击创建

    4. 将源文件直接复制到服务器,然后进入 进入到解决方案目录下开始创建镜像

    5. 创建镜像

      例子:docker -t 名称:版本号 .
      docker -t dockerapi:1.0.0 .
      
    6. 启动容器

      例子:docker run --name 名称 -itd --restart unless-stopped -p 外部访问端口:项目启动端口 启动镜像
      docker run --name docker1.0.0 -it --restart unless-stopped -p 8888:8080 dockerapi:1.0.0
      
    7. 浏览器访问

      服务器ip:8888/swagger/weatherforecast
      
  2. 发布之后文件创建

    1. 创建好webapi项目

    2. 修改配置文件,配置端口(appsettings.json

      {
        "Logging": {
          "LogLevel": {
            "Default": "Information",
            "Microsoft.AspNetCore": "Warning"
          }
        },
        "AllowedHosts": "*",
        "Kestrel": {
          "Endpoints": {
            "Http": {"Url": "http://*:8060"}
          }
        }
      }
      
      
    3. 点击发布

    4. 进入发布后的文件夹

    5. 创建dockerfile配置文件,将下边内容复制到文件中,并修改配置(Dockerfile)

      #See https://aka.ms/customizecontainer to learn how to customize your debug container and how Visual Studio uses this Dockerfile to build your images for faster debugging.
      
      FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base
      USER app
      WORKDIR /app
      #端口
      EXPOSE 8060
      
      FROM base AS final
      WORKDIR /app
      COPY . /app
      #启动命令(括号中为启动的项目名称)
      ENTRYPOINT ["./LinuxApi"]
      
    6. 将发布后的文件上传到服务器

    7. 创建镜像

      例子:docker -t 名称:版本号 .
      docker -t linuxapi:1.0.0 .
      
    8. 创建容器

      例子:docker run --name 名称 -itd --restart unless-stopped -p 外部访问端口:项目启动端口 启动镜像
      docker run --name linuxapi1.0.0 -it --restart unless-stopped -p 7777:8060 linuxapi:1.0.0
      
    9. 浏览器访问

      服务器ip:7777/swagger/weatherforecas
      

三、其他命令

  1. 镜像

    1. 创建

      例子:docker -t 名称:版本号 .
      docker -t linuxapi:1.0.0 .
      
    2. 删除

      例子:docker rmi 名称:版本号
      docker rmi linuxapi:1.0.0
      
  2. 容器

    1. 创建

      例子:docker run --name 名称 -itd --restart 重启规则 -p 外部访问端口:项目启动端口 启动镜像
      docker run --name linuxapi1.0.0 -it --restart unless-stopped -p 7777:8060 linuxapi:1.0.0
      
    2. 启动和停止

      docker start linuxapi1.0.0
      docker stop linuxapi1.0.0
      
    3. 删除

      例子:docker remove 容器id或者容器名称
      docker remove linuxapi1.0.0
      
    4. 修改容器 启动规则(服务挂了之后是否重启)

      docker update --restart=always [container_name_or_id]
      1. `no`: 容器不会在Docker守护进程启动时自动启动(默认)。
      2. `on-failure`: 容器只有在非正常退出时(退出状态非0)才会重启。
      3. `always`: 无论退出状态如何,容器总是重新启动。
      4. `unless-stopped`: 在容器退出时,如果容器是由Docker守护进程停止的,就不会重新启动。
      
      docker update --restart=always linuxapi1.0.0
      

标签:webapi,容器,--,sudo,Linux,镜像,docker,restart
From: https://www.cnblogs.com/cyfjjf/p/18081688

相关文章

  • linux 系统指令
    linux系统指令常识~用户家路径/盘符路径查询指令pwd #当前工作目录ps #当前进程ls #显示当前目录下的文件列表ls-a #显示隐藏目录ls-R #递归显示目录中的内容ls-t #显示当前目录下的文件列表,按时间排序ls-l #显示详细信息ls-F #显示......
  • [nginx] 基于docker安装nginx
    0序环境信息OS:CENTOS7.9Docker:25.0.4Nginx:1.24.01安装步骤Step0安装docker略。可参见:[Docker]基于CENTOS7安装Docker环境-博客园/千千寰宇基于Docker安装MYSQL/Step1安装docker环境-博客园/千千寰宇Step1下载nginx镜像下载nginx镜......
  • 【Linux】日常使用命令(三)
    文章目录**cal命令****date命令****bc命令****Linux下玩小游戏**:cal命令功能描述:cal命令用于显示日历。常用选项:-3:显示前一个月、当前月和下一个月的日历。-y:显示整年的日历。常用示例:#示例1:显示当前月的日历cal#示例2:显示前一个月、当......
  • Linux基础指令学习(ubunt)
            现如今,Linux系统在服务器、嵌入式系统、移动设备等领域得到广泛应用,掌握Linux技能可以让你在各种领域都有发展机会。而且Linux系统是开源的,拥有庞大的开发者社区支持,学习Linux可以让你接触到开源文化,获取更多的资源和支持,在一套硬件上只能同时运行一个操作系......
  • Docker小册
    先挂一下大佬笔记:https://www.yuque.com/tmfl/cloud/naxbauDocker简介是什么为什么会有docker的出现?docker的理念是什么?总结解决了运行环境和配置问题的软件容器,方便做持续集成并有助于整体发布的容器虚拟化技术。容器与虚拟机比较能干嘛去哪里下载Docker的......
  • 远程链接Linux开发
    第一步:pycharm链接第二步:选择上传文件路径第三步:将本地文件上传到远端pycharm操作远端机器方式#链接远端ip地址[email protected]#输入密码即可pycharm使用远端python解释器方式选择onssh链接远端机器选择python环境位置......
  • 嵌入式Linux 内核的内存管理方法
    内存管理的主要工作就是对物理内存进行组织,然后对物理内存的分配和回收。但是Linux引入了虚拟地址的概念。虚拟地址的作用如果用户进程直接操作物理地址会有以下的坏处:1、用户进程可以直接操作内核对应的内存,破坏内核运行。2、用户进程也会破坏其他进程的运行CPU中寄......
  • Linux命令大全(快速入门)第二部分
    Linux文件基本属性显示文件属性ls命令        Linuxls(英文全拼:listfiles)命令用于显示指定工作目录下之内容(列出目前工作目录所含之文件及子目录)。参数:-a显示所有文件及目录(.开头的隐藏文件也会列出)-l除文件名称外,亦将文件型态、权限、拥有......
  • Linux命令大全(快速入门)第一部分
    Linux概述Linux内核最初只是由芬兰人林纳斯·托瓦兹1991年在赫尔辛基大学上学时出于个人爱好而编写的。Linux的各个发行版本Linux的发行版说简单点就是将Linux内核与应用软件做一个打包。1RedHatLinux2UbuntuLinux界面桌面系统3SuSELinux......
  • Docker部署Django项目——基础
    1.服务器配置1.1centos7系统的安装centos-7-isos-x86_64安装包下载)VMware安装自定义配置选择对应的系统镜像一般选择内核4核、内存8g、硬盘80g相关配置1.2.网络配置1.2.1查看win电脑虚拟机VMnet8的ip使用ipconfig查看虚拟机的ip1.2.2配置虚拟机VMne......