CentOS7下使用Docker容器化.net Core 2.2

释放双眼,带上耳机,听听看~!

一、使用 yum 安装(CentOS 7下) 

  Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker 。

  通过 uname -r 命令查看你当前的内核版本

  CentOS7下使用Docker容器化.net Core 2.2

二、安装 Docker 

  从 2017 年 3 月开始 docker 在原来的基础上分为两个分支版本: Docker CE 和 Docker EE。

  Docker CE 即社区免费版,Docker EE 即企业版,强调安全,但需付费使用。

  1、移除旧的版本 

CentOS7下使用Docker容器化.net Core 2.2

$ sudo yum remove docker \\
                  docker-client \\
                  docker-client-latest \\
                  docker-common \\
                  docker-latest \\
                  docker-latest-logrotate \\
                  docker-logrotate \\
                  docker-selinux \\
                  docker-engine-selinux \\
                  docker-engine

CentOS7下使用Docker容器化.net Core 2.2

  2、安装一些必要的系统工具

sudo yum install -y yum-utils device-mapper-persistent-data lvm2

   3、添加软件源信息

sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

   4、更新 yum 缓存

sudo yum makecache fast

   5、安装 Docker-ce

sudo yum -y install docker-ce

   6、启动 Docker 后台服务 

sudo systemctl start docker

   7、测试运行 hello-world 

[root@localhost /]# docker run hello-world

   CentOS7下使用Docker容器化.net Core 2.2

二、Asp.Net Core2.2 web程序

  CentOS7下使用Docker容器化.net Core 2.2

  dockerfile是你的应用部署到docker上所必须的配置信息,只是个不带扩展名的纯文本文件而已

  CentOS7下使用Docker容器化.net Core 2.2

  设置Makefile属性【始终复制

  CentOS7下使用Docker容器化.net Core 2.2

  Dockerfile内容为

FROM microsoft/dotnet:2.2-aspnetcore-runtime  #基础镜像为dotnetcore
MAINTAINER demo                    #作者

LABEL description=\"this is a test website\"  #描述
LABEL version=\"1.0\"                 #描述

WORKDIR /app                    #工作目录
COPY . .                      #将当前目录下的文件,复制到WORKDIR目录
EXPOSE 8888                    #容器暴漏8888端口,与上一步设置的端口一致
ENTRYPOINT [\"dotnet\",\"demo.dll\"]      #运行容器的命令

  修改Program.cs文件

namespace demo
{
    public class Program
    {
        public static void Main(string[] args)
        {
            CreateWebHostBuilder(args).Build().Run();
        }

        public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
            WebHost.CreateDefaultBuilder(args)
                .UseUrls(\"http://*:8888\")
                .UseStartup<Startup>();
    }
}

  发布,文件系统

  默认位置 

demo\\bin\\Release\\netcoreapp2.2\\publish

 CentOS7下使用Docker容器化.net Core 2.2

  

三、构建镜像

  1、切换到发布目录  

[root@localhost publish]

   2、修改Makefile文件

  CentOS7下使用Docker容器化.net Core 2.2

  指定容器对外暴露端口80。注意,COPY .后面有空格,表示是当前位置,意思是从当前位置复制文件到/publish目录下

  3、根据当前目录下dockerfile配置文件,进行打包  

[root@localhost publish]# docker build -t demo .

   CentOS7下使用Docker容器化.net Core 2.2

  4、查看我们打包好的镜像。

[root@localhost publish]# docker images

  CentOS7下使用Docker容器化.net Core 2.2

四、运行docker容器

[root@localhost publish]# docker run -d -p 8888:8888 demo

   -p是进行宿主和容器之间端口的映射,(-p 宿主端口:容器端口)

   -d命令,容器就会一直运行,即使关掉终端窗口

  检验docker容器是否运行成功

  CentOS7下使用Docker容器化.net Core 2.2

五、测试

  本机要输Centos的IP

  CentOS7下使用Docker容器化.net Core 2.2

  Centos内访问localhost就可以了

  CentOS7下使用Docker容器化.net Core 2.2

说明

  1、配置docker开机启动

systemctl  enable docker

   2、确认容器有在运行

[root@localhost /]# docker ps

   CentOS7下使用Docker容器化.net Core 2.2

  CONTAINER ID:容器ID

  NAMES:自动分配的容器名称

  在容器内使用docker logs命令,查看容器内的标准输出

   3、开始/停止容器

[root@localhost /]# docker start/stop  容器id或者容器名

   4、重启docker服务,遇到此类错误

  CentOS7下使用Docker容器化.net Core 2.2

  原因是docker服务挂掉了 

systemctl restart docker

 

给TA打赏
共{{data.count}}人
人已打赏
随笔日记

带你破解时间管理的谜题

2020-11-9 4:42:22

随笔日记

5G浪潮来袭,程序员在风口中有何机遇

2020-11-9 4:42:24

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索