zoukankan      html  css  js  c++  java
  • 【Docker】1、在Linux里使用Docker部署一个Asp.NetCore HelloWord项目

    我在腾讯云活动期间买了两台ECS,操作系统是Linux CentOS 7.0以上版本
    为啥买两台呢?
    其一:一台用来搭建私有镜像仓库
    其二:做Docker集群

    一、在CentOS 7.0上安装 .NET SDK或 .NET 运行时

    https://docs.microsoft.com/zh-cn/dotnet/core/install/linux-centos

    安装 .NET 之前,请运行以下命令,将 Microsoft 包签名密钥添加到受信任密钥列表,并添加 Microsoft 包存储库。 打开终端并运行以下命令:
    sudo rpm -Uvh https://packages.microsoft.com/config/centos/7/packages-microsoft-prod.rpm

    1.1、安装AspNetCore运行时(注:我是3.1和5.0两个版本的运行时都安装了)
    sudo yum install aspnetcore-runtime-5.0

    sudo yum install aspnetcore-runtime-3.1

    1.2、安装AspNetCoreSDK (注:我是3.1和5.0两个版本的SDK都安装了)

    sudo yum install dotnet-sdk-5.0

    sudo yum install dotnet-sdk-3.1

    1.3、查看Dotnet的Runtime,SDK
    dotnet --info

    如果出现下图证明,AspNetCore运行时和SDK都安装好了

     

    二、Linux上安装Docker

    2.1、Centos7.0以上的版本

    2.2、安装Docker的版本仓库-Docker的版本

    2.2.1、设置仓库
    sudo yum install -y yum-utils device-mapper-persistent-data lvm2

    2.2.2、稳定仓库的连接
    sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

    2.3、安装Docker(注:默认安装最新版本)
    sudo yum install docker-ce docker-ce-cli containerd.io

    2.4、Docker启动
    sudo systemctl start docker

    2.5、查看Docker版本
    docker version

    如果出现下图证明,docker安装好了

     

    三、Docker上部署AspNetCore项目
    3.1、vs2019做的Asp.NetCore项目

    3.2、Dockerfile文件

     

    3.3、准备.Net Core SDK和.Net Core Runtime运行时(注:在第一步的时候已经安装了)

    3.4、拉取AspNetCore 运行时镜像(注:我是3.1和5.0两个版本的镜像都拉取了)
    docker pull mcr.microsoft.com/dotnet/aspnet:5.0-buster-slim

    docker pull mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim

    3.5、拉取AspNetCore SDK镜像(注:我是3.1和5.0两个版本的镜像都拉取了)
    docker pull mcr.microsoft.com/dotnet/sdk:5.0-buster-slim

    docker pull mcr.microsoft.com/dotnet/core/sdk:3.1-buster

    3.6、写一个简单的HelloWorld-Asp.NetCore项目传入到主机的HelloWorld目录里


    3.7、移动Dockerfile文件到HelloWorld工作目录

    mv Dockerfile ../Dockerfile

    3.8、根据Dockerfile文件生成镜像
    docker build -t hellocore .

    docker build -t hellocore -f Dockerfile .

     hellocore:镜像名称(注:镜像名称只能小写字母,大写字母会报错)

    3.9、查看镜像列表,看hellocore是否创建成功

    docker images

     

    注:这里有个坑,正常来说应该在外面目录执行上述命令,但是总是报找不到项目文件,所以我在HelloWorld/HelloWorld里面执行的命令


    3.10、在Docker上运行AspNetCore(注:我使用hellocore这个镜像运行两个不同端口的docker实例)

    docker run -d -p 8081:80 hellocore
    docker run -d -p 8082:80 hellocore

     -d:后台运行,新启动一个线程去创建容器实例

    -p 8082:80:8082是宿主机端口也就是我这台ECS的端口,80是容器的端口
    hellocore:镜像名称

    3.11、查看容器实例是否运行

    docker ps -a

    如果看到如下图,status列是Up,证明实例已经正常运转了

    3.12、这时候就可以通过下面命令去查看项目是否正常或者去浏览器查看
    curl http://*****:8081

    、、

    一些常用命令
    1、查看镜像列表
    docker images

    2、查看容器列表
    docker ps -a

    3、停止指定容器
    docker stop 容器ID或容器名

    4、删除指定容器
    docker rm 容器ID或容器名(注:只有先停止服务才能删除)

    5、删除所有容器
    docker rm $(docker ps -aq)

    6、查看容器资源
    docker stats <容器ID或容器名>

    7、搜索镜像
    docker search <镜像名称>

    8、拉取镜像
    docker pull <镜像名称>

    9、镜像删除
    docker image rm <镜像id/镜像名称>

    10、镜像设置标签,也叫镜像设置版本
    docker image tag 镜像名称:v1 镜像名称

    11、后台运行容器
    docker run -d <镜像名称>
    或自定义端口
    docker run -d -p 8082:80 <镜像名称>

    12、停止容器
    docker stop <镜像名称>

    13、启动容器
    docker start <镜像名称>

    14、停止Docker服务
    service docker stop

    15、重启Docker服务
    service docker restart

    systemctl restart docker.service(注:所有Docker实例要重启)

    记录,成为更好的自己
  • 相关阅读:
    用OBS studio(Open Broadcaster Software)录屏
    强力粘胶,粘金属
    Win10下不用虚拟机安装ubuntu, 及bash shell打开教程
    latex 的工具集
    python game游戏开发
    usdt 大户列表
    linux, windows, mac 的c/c++程序使用 breakpad 来进行崩溃汇报
    将python代码编译成目标机elf可执行程序的方法
    python的zigzag实现及金融技术指标分析库
    如何在left Join 中使用order排序
  • 原文地址:https://www.cnblogs.com/menglin2010/p/14579846.html
Copyright © 2011-2022 走看看