• Docker部署.NET Core


    一、安装与配置Docker

    1、首先安装 Docker 必要依赖包 
    
    yum install -y yum-utils device-mapper-persistent-data lvm2
    
    2、由于自带 yum 没有 Docker-CE 所以我们需要先增加 docker repo
    
    yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
    
    3、用 yum 安装 Docker
    
    yum install -y docker-ce
    
    4、直接yum安装,安装成功后查看版本
    
    docker -v
    
    5、启动docker
    
    service docker start
    
    6、设置开机启动
    
    chkconfig docker on
    
    7、国内访问 Docker Hub 较慢, 可以使用腾讯云或阿里云等其他提供的国内镜像源, 加速访问 Docker Hub,以下配置的是腾讯云
    
    echo "OPTIONS='--registry-mirror=https://mirror.ccs.tencentyun.com'" >> /etc/sysconfig/docker
    
    8、重新加载服务配置
    
    systemctl daemon-reload
    
    9、重启Docker
    
    service docker restart

     二、新建.NET Core程序
    1、新建项目

     2、在项目中新建Dockerfile 文件,内容如下 

    FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim AS base
    WORKDIR /app
    EXPOSE 5000  //端口号(将容器 5000 端口暴露出来, 允许外部连接这个端口。)
    COPY . . //将当前目录下的所有文件(除了.dockerignore排除的路径),都拷贝进入 image 文件的/app目录
    ENTRYPOINT ["dotnet", "CoreTestWeb.dll"] //运行的程序集

    三、让程序在容器中跑起来

    1、发布项目并上传至服务

    mkdir /usr/core 新建目录,将发布文件上传至本目录

    2、构建容器

    进入发布目录
    cd /usr/core
    构建镜像 docker build -t aspnetapp . 生成容器实例 docker run -d --restart=always -p 5000:5000 --name myapp aspnetapp

    如果出现:docker: Error response from daemon: cannot start a stopped process: unknown.错误,

     执行此命令:yum install -y libseccomp-devel 解决

    并重新构建镜像容器

    docker stop myapp 停止实例
    docker rm myapp 移除实例
    docker rmi aspnetapp 移除镜像
    docker build -t aspnetapp . 构建镜像 docker run -d --restart=always -p 5000:5000 --name myapp aspnetapp 生成实例

    3、访问站点

     docker 相关命令

    #安装 CentOS已经将Docker软件包放在了Extras软件源中,直接利用即可
    yum install docker-io -y

    #查看docker的版本 version
    docker -v

    #开启Docker服务
    systemctl start docker.service

    #开机启动Docker服务
    systemctl enable docker.service

    #查看Docker服务启动状态
    systemctl status docker.service

    #重启Docker服务
    systemctl restart docker.service

    #查看所有镜像
    docker images

    #删除一个imageid的镜像
    docker rmi [IMAE_ID]

    #删除所有镜像
    sudo docker rmi $(docker images -q)


    #查看所有容器运行状态
    docker ps -a
    docker container ls -all

    #删除一个containerid的容器(实例)
    docker rm 6f0c67de4b72

    #删除所有容器
    docker rm $(sudo docker ps -a -q)

    #查看指定时间后的日志,只显示最后100行:
    docker logs -f -t --since="2019-06-08" --tail=100 CONTAINER_ID

    #查看某时间之后的日志:
    docker logs -t --since="2019-06-08" CONTAINER_ID

    #查看某时间段日志:
    docker logs -t --since="2019-06-08" --until "2019-06-09" CONTAINER_ID

    #查看最近30分钟的日志:
    docker logs --since 30m CONTAINER_ID

  • 相关阅读:
    bit byte哪些事
    各种字符集和编码详解
    常用工具大全
    表单提交的3种方式,http post的contentType
    主动发电
    Hibernate与 MyBatis的比较
    storm简介
    2013年十大免费云空间排行榜-给开发者建站用的免费云主机
    中国著名讲师全录
    iptables只允许指定ip地址访问指定端口
  • 原文地址:https://www.cnblogs.com/xiaoguli/p/15386173.html
Copyright © 2020-2023  润新知