设为首页 加入收藏

TOP

8天入门docker系列 —— 第二天 通过一个aspnetcore程序加深对容器的理解(一)
2019-09-17 18:01:36 】 浏览:51
Tags:入门 docker 系列 第二 通过 一个 aspnetcore 程序 加深 容器 理解

 

   我们知道容器是一个打包了应用和相关依赖的盒子,那怎么去操控这个盒子呢? 这一篇我通过一个简单的aspnetcore程序来加深对盒子的理解,使用之前先

安装一下Docker的环境。

 

一:Docker的安装

 官方下载地址:https://docs.docker.com/install/linux/docker-ce/centos/ ,跟着文档执行完下面2个大步骤即可。

1.  SET UP THE REPOSITORY

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

sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

 

2. INSTALL DOCKER CE

sudo yum install docker-ce docker-ce-cli containerd.io

 

3. 启动docker 服务

[root@localhost ~]# service docker start
Redirecting to /bin/systemctl start  docker.service

 

4. 查看docker版本

[root@localhost ~]# docker -v
Docker version 18.09.2, build 6247962

 

二:新建asp.net core 网站

      docker已经有了,接下来新建一个website,采用vs默认的mvc模板即可,有了网站之后新建一个Dockerfile文件,内容如下,目的就是为了制作镜像,

关于dockerfile的更多内容我会放到后面的文章中去说,本篇关注点在容器上。

FROM microsoft/dotnet:2.2-aspnetcore-runtime
LABEL hxc@qq.com
RUN mkdir /data
COPY ./ /data
WORKDIR /data
EXPOSE 80
CMD [ "dotnet","WebNotebook.dll" ]

 

   然后点击vs的发布功能,把发布后的内容通过ftp push 到虚拟机中/data/publish文件夹下,具体内容如下:

[root@localhost publish]# ls
appsettings.Development.json  web.config             WebNotebook.pdb                 WebNotebook.Views.pdb
appsettings.json              WebNotebook.deps.json  WebNotebook.runtimeconfig.json  wwwroot
Dockerfile                    WebNotebook.dll        WebNotebook.Views.dll
[root@localhost publish]# 

 

 接下来通过 docker build 的方式构建出webnotebook的镜像。

[root@localhost publish]# docker build -f ./Dockerfile -t huangxincheng/webnodebook:v1 .
Sending build context to Docker daemon  4.201MB
Step 1/7 : FROM microsoft/dotnet:2.2-aspnetcore-runtime
2.2-aspnetcore-runtime: Pulling from microsoft/dotnet
6ae821421a7d: Already exists 
8a3a416e6dac: Already exists 
ed82f21723d8: Already exists 
4f77997e649d: Already exists 
Digest: sha256:988829fbff8cde8b431d045d2dd2e3ea54d69abf5c61c69794c523535ce382e7
Status: Downloaded newer image for microsoft/dotnet:2.2-aspnetcore-runtime
 ---> dad26d192ae6
Step 2/7 : MAINTAINER hxc@qq.com
 ---> Running in 89b9a2c5bec6
Removing intermediate container 89b9a2c5bec6
 ---> 2d6c5ecba6d2
Step 3/7 : RUN mkdir /data
 ---> Running in 08e8d316c3da
Removing intermediate container 08e8d316c3da
 ---> 7d28be2a2bc1
Step 4/7 : COPY ./ /data
 ---> 9f603790a8a2
Step 5/7 : WORKDIR /data
 ---> Running in 85fbed40b4f7
Removing intermediate container 85fbed40b4f7
 ---> 8c18eaadc85b
Step 6/7 : EXPOSE 80
 ---> Running in 0eaa5046ee1d
Removing intermediate container 0eaa5046ee1d
 ---> 9b6ee99c1875
Step 7/7 : CMD [ "dotnet","WebNotebook.dll" ]
 ---> Running in 7c0d2fa1eb46
Removing intermediate container 7c0d2fa1eb46
 ---> 513950255443
Successfully built 513950255443
Successfully tagged huangxincheng/webnodebook:v1

 

   最后可以通过 docker images 查看一下镜像是否构建成功,从下图中可以看到,当前有一个我的应用镜像,还有一个runtime镜像。

[root@localhost publish]# docker images
REPOSITORY                  TAG                      IMAGE ID            CREATED             SIZE
huangxincheng/webnodebook   v1                       513950255443        38 seconds ago      264MB
microsoft/dotnet            2.2-aspnetcore-runtime   dad26d192ae6        4 days ago          260MB

 

三:容器操作

1. 启动容器

    通常启动容器的方式有两种,第一种为docker create, 还有一种是docker

首页 上一页 1 2 3 4 下一页 尾页 1/4/4
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇LaunchFaster 启动器工具 - 类似 .. 下一篇asp.net core系列 25 EF模型配置(..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目