博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
详解ASP.NET Core Docker部署
阅读量:6508 次
发布时间:2019-06-24

本文共 2561 字,大约阅读时间需要 8 分钟。

前言

在前面文章中,介绍了 ASP.NET Core在 macOS,Linux 上基于Nginx和Jexus的发布和部署,本篇文章主要是如何在Docker容器中运行ASP.NET Core应用程序。

ASP.NET Nginx 发布和部署 :。

Asp.Net Jexus 发布和部署:。

目录

  • Docker 常用命令
  • Docker 安装Asp.Net Core镜像
  • 使用Dockerfile部署

Docker 常用命令

1
docker info

检查Docker的安装是否正确,如果没有找到此命令,则表示Docker没有正确安装

1
docker pull busybox

拉取一个预建的镜像

1
sample_job=$(docker run -d busybox
/bin/sh
-c
"while true; do echo Docker; sleep 1; done"
)

以后台进程的方式运行hello docker

sample_job命令会隔一秒打印一次Docker,使用Docker logs可以查看输出。如果没有起名字,那这个job会被分配一个id,以后使用命令例如Docker logs查看日志会变得比较麻烦。

1
docker logs $sample_job

运行Docker logs命令来查看job的当前状态:

1
docker help

所有Docker命令

1
docker stop $sample_job

停止名为sample_job的容器

1
docker restart $sample_job

重新启动该容器

1
docker stop $sample_job docker
rm
$sample_job

如果要完全移除容器,需要将该容器停止,然后才能移除

1
docker commit $sample_job job1

将容器的状态保存为镜像

1
docker images

令查看所有镜像的列表

下面分享一些我经常使用的一些命令:

移除所有的容器和镜像,用一行命令大扫除:

1
docker
kill
$(docker
ps
-q) ; docker
rm
$(docker
ps
-a -q) ; docker rmi $(docker images -q -a)

仅仅想删除所有的容器,你可以运行如下命令:

1
docker
kill
$(docker
ps
-q) ; docker
rm
$(docker
ps
-a -q)

清除名称为none的镜像,一般都是下载一般失败的残留:

1
2
3
docker
ps
-a |
grep
"Exited"
|
awk
'{print $1 }'
|
xargs
docker stop
docker
ps
-a |
grep
"Exited"
|
awk
'{print $1 }'
|
xargs
docker
rm
docker images|
grep
none|
awk
'{print $3 }'
|
xargs
docker rmi

清除单个镜像:

1
docker rmi -f <image
id
>

Docker 安装Asp.Net Core镜像

有关Docker的安装请参考官网:

到这里,假设你的Docker已经安装完成,以下环境为 Liunx(Ubuntu 15.02)。

打开 右上角搜索dotnet,选择第一个搜索结果microsoft/dotnet,点进去如下图:

得到命令了吧,切换到命令行窗口运行以下命令来安装asp.net core 镜像。

1
sudo
docker pull microsoft
/dotnet

什么? 没响应,速度慢? 你不会买个高速VPN啊~

什么? 没钱? 你不会找一个国内的Docker镜像站啊~ DaoCloud镜像啊,阿里云Docker镜像啊。。自己动手找啊。。

镜像下载完成之后,输入sudo docker images我们检查一下:

至此,准备工作已经全部完成了

使用 Dockerfile 部署

Dockerfile 是什么东西,Dockerfile有什么用,自行百度。

博主直接教你怎么写吧:

总不能一直用5000端口吧,这次我们使用60000端口

1、程序命令行切换到publish文件目录中。

2、sudo touch Dockerfile 名称不要写错了,没有任何后缀名,来新建一个Dockerfile文件。

3、sudo vim Dockerfile 使用Vim来编辑Dockerfile。如果Vim不会用就用gedit吧。

4、输入以下内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Dockerfile
#基于 `microsoft/dotnet:1.0.0-core` 来构建我们的镜像
FROM microsoft
/dotnet
:1.0.0-core
 
#拷贝项目publish文件夹中的所有文件到 docker容器中的publish文件夹中
COPY .
/publish
 
#设置工作目录为 `/publish` 文件夹,即容器启动默认的文件夹
WORKDIR
/publish
 
#设置Docker容器对外暴露60000端口
EXPOSE 60000
 
#使用`dotnet HelloWebApp.dll`来运行应用程序
 
CMD [
"dotnet"
,
"HelloWebApp.dll"
,
"--server.urls"
,
"*:60000"
]

使用:wq来保存并退出 (gedit无视掉 )。

构建镜像

运行 docker build -t hellowebapp:1.0 . 来构建一个镜像

运行构建的镜像

使用docker run --name hellowebapp -d -p 60000:60000 hellowebapp:1.0

打开浏览器测试一下:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

原文链接:http://www.cnblogs.com/savorboard/p/dotnetcore-docker.html

你可能感兴趣的文章
Python数据结构和算法学习笔记1
查看>>
正则之从dom字符串中提取url
查看>>
大数据——基础概念
查看>>
第六次上机实验
查看>>
机器学习温和指南
查看>>
解决Geoserver请求跨域的几种思路,第二种思路用过
查看>>
最短路-Bellman-Ford算法
查看>>
Object 类有哪些方法
查看>>
oracle 将一个表复制到另外一个表里 .
查看>>
libcurl以get方式请求服务器端文件
查看>>
复杂的数据类型3 - C++快速入门09
查看>>
OpenJudge 2786 Pell数列
查看>>
mysql 游标循环,嵌套游标循环
查看>>
css之自动换行
查看>>
swoft| 源码解读系列一: 好难! swoft demo 都跑不起来怎么破? docker 了解一下呗~
查看>>
win7 蛋疼的时间格式转化
查看>>
while死循环问题-输入字符就会死循环
查看>>
C++中二维数组的动态创建与处理
查看>>
SPOJ 10628 COT - Count on a tree(在树上建立主席树)(LCA)
查看>>
general error c1010070: Failed to load and parse the manifest
查看>>