Docker安装及部署实例.Net Core
1.什么是Docker
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
2.为什么使用Docker
使用Docker容器技术可以再全平台发布应用和服务。总所周知,.Net平台一直因为不开源以及不能跨平台诟病。小编又是一名忠实的微软粉,可是不能使用Linux作为实体服务器的.Net平台在现在分布式系统遍地,微服务纵横的天下,真的是举步维艰。还好有个Docker容器技术,解决这个问题,所以小编靠闲暇时间填了不少坑,也是部署出来了,这里跟大家分享一下。
PS:为什么不使用其他的方式(依赖框架等)来在linux上发布.NetCore应用。一次配置全平台都可以用呀!这还用说啊,帅啊!!!!
3.安装Docker
安装Docker有很多方式,小编也试了好几种,但是因为国内网速的限制有些方式会很慢,甚至因为太慢暂停下载。而有些方式安装完却有很多很多的问题,这里小编也把自己遇到的坑分享给大家。
这里给大家分享两种安装方式,实测有效。Docker分两个版本,Docker-ce和Docker-ee,后者是收费的,小编这里装ce版本。
(1)使用yum安装
安装一些必要的系统工具:PS:sudo表示以管理员权限执行,如是root用户(最高权限)可不输入
$ sudo yum install -y yum-utils device-mapper-persistent-data lvm2
添加软件源信息:
$ sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
更新 yum 缓存:
$ sudo yum makecache fast
安装 Docker-ce:
$ sudo yum -y install docker-ce
启动 Docker 后台服务
$ sudo systemctl start docker
测试运行 hello-world
$ docker run hello-world
(2)使用脚本安装 Docker 吃网速,网速快可选择
确保 yum 包更新到最新。
$ sudo yum update
执行 Docker 安装脚本。
$ curl -fsSL https://get.docker.com -o get-docker.sh
$ sudo sh get-docker.sh
启动 Docker 进程。
$ sudo systemctl start docker
验证 docker 是否安装成功并在容器中执行一个测试的镜像
$ sudo docker run hello-world
(3)Docker常用命令
$ docker pull 镜像名 //拉取镜像,我要部署的应用可能会需要依赖一些基础镜像
$ docker build 自定义镜像名 . //把自己的项目编译成镜像,部署到Docker容器中,别忘了这个‘.’!!!
$ docker images //查看所有镜像
$ docker run --name=容器名 -p 主机环境端口:Docker容器映射端口 -d 镜像名 //运行镜像
$ docker ps -a // 查看容器运行状态,up运行成功
$ docker logs -t -f 容器名 //查看运行日志,可以从中看到出现的问题
4.部署.NetCore应用到Docker
(1)新建一个 ASP.NET Core 3.0 项目
然后运行一下项目,确保我们刚刚建立的项目可以正常运行
(2)编写Dockerfile,并设置属性复制到生成文件
FROM mcr.microsoft.com/dotnet/core/aspnet:3.0-buster-slim
RUN cd /usr/local/src
RUN mkdir MyTestApi
WORKDIR /usr/local/src/MyTestApi
COPY . .
EXPOSE 80
ENTRYPOINT ["dotnet", "MyTestApi.dll"]
(3)发布项目
(4)将Dockerfile文件复制到发布成功的目录,并全部上传到服务器
(5)构建Docker镜像
进入到发布文件目录(Dockerfile文件所在目录),执行命令便可打包镜像
$ docker pull microsoft/dotnet:3.0-aspnetcore-runtime //拉取基础镜像
$ docker build -t mytestapi . //构建镜像 别忘了这个点“.”!!!
$ docker run --name=mytestapi -p 80:80 mytestapi //运行镜像
出现一长串字符串,便是表示运行成功
5.部署.NetCore到Docker遇到的问题
如果更新.net core代码怎么办,使用暴力方法:
进入目录
cd /usr/local/src/mytestapi
停止
docker stop mytestapi
删除
docker container rm mytestapi
编译
docker build -t mytestapi .
运行
docker run --name=mytestapi -p 80:80 mytestapi
6.总结
到这里呐今天的内容就到此结束了,感觉大家翻阅。
Docker安装及部署实例.Net Core的更多相关文章
- ubuntu docker安装与部署java,mysql,nginx镜像
docker 安装与部署java,mysql,nginx docker 配置 安装docker $ sudo apt-get remove docker docker-engine docker.io ...
- Docker + Jenkins 持续部署 ASP.NET Core 项目
Docker 是个好东西,特别是用它来部署 ASP.NET Core Web 项目的时候,但是仅仅的让程序运行起来远远不能满足我的需求,如果能够像 DaoCloud 提供的持续集成服务那样,检测 gi ...
- docker 安装jenkins 发布 asp.net core 2.0
安装Docker 其实安装Docker的过程,大家可以到Docker官网找到自己相对应的安装文档进行安装,Docker区分CE和EE的两个版本,具体这两个版本有什么区别,大家自行查阅相关资料,这里不再 ...
- 在 Docker 中手工部署 ASP.NET Core 应用
另一篇:在 Visual Studio 中部署 ASP.NET Core 应用 操作步骤 1. 安装 Docker For Windows(安装之前 Windows 需要开启 Hyper-V 虚拟机 ...
- Docker安装与部署
安装Docker: 查看你当前的内核版本: uname -r 更新yum包: sudo yum update 卸载旧版本(如果安装过旧版本的话): sudo yum remove docker doc ...
- docker安装tomcat&部署javaweb程序
一.docker定制简单的java-web应用镜像 网址: 1.jdk下载网址:https://www.oracle.com/technetwork/java/javase/downloads/jdk ...
- ASP.NET Core 实战:使用 Docker 容器化部署 ASP.NET Core + MySQL + Nginx
一.前言 在之前的文章(ASP.NET Core 实战:Linux 小白的 .NET Core 部署之路)中,我介绍了如何在 Linux 环境中安装 .NET Core SDK / .NET Core ...
- Docker 安装并部署Tomcat、Mysql8、Redis
1. 安装前检查 1 #ContOS 7安装Docker系统为64位,内核版本为3.10+ 2 lsb_release -a 3 4 uname -r 5 6 #更新yum源 7 yum -y up ...
- centos7+docker 安装和部署crawlab分布式爬虫平台,并使用docker-compose管理docker
1.先决条件centos7+docker最新版本 sudo yum updat 2.配置一下镜像源,创建/etc/docker/daemon.conf文件,在其中输入如下内容 { "regi ...
随机推荐
- Java中实现多态的条件是什么
java中实现多态需要三个条件: 1,需要有继承关系的存在. 2,需要有方法的重写. 3,需要有父类的引用指向子类对象.
- numpy中的range()
1.arange返回一个array对象,arange(5)=([0,1,2,3,4]) 2.如果是两个参数,第一个参数是起点,第二个参数是终点 3.如果是三个参数,那么第三个参数就是步长
- Testbench学习笔记
Testbench学习笔记(一) 书写testbench是数字电路设计中不可或缺的一项设计方法,主要是提供的是激励.尽管现在各种开发工具都通过绘制波形图的方法生成测试激励,测试书写的代码,但是其不可移 ...
- PAT Advanced 1019 General Palindromic Number (20 分)
A number that will be the same when it is written forwards or backwards is known as a Palindromic Nu ...
- vb中typename函数
适用于获得一个变量的类型名称的, 比如 A 是一个字符串变量,那么 TypeName(A)=String
- Beta冲刺-(2/3)
这个作业属于哪个课程 https://edu.cnblogs.com/campus/xnsy/SoftwareEngineeringClass1/ 这个作业要求在哪里 https://edu.cnbl ...
- 图解NuGet服务器搭建和使用过程
听语音 浏览:0 | 更新:2017-10-31 09:13 | 标签:服务器 1 2 3 4 5 6 7 分步阅读 本篇经验将和大家介绍内网搭建NuGet服务器的步骤,希望对大家的工作和学习有所帮助 ...
- bzoj2906 颜色 分块+块大小分析
题目传送门 https://lydsy.com/JudgeOnline/problem.php?id=2906 题解 如果可以离线的话,那么这个题目就是一个莫队的裸题. 看上去这个数据范围也还会一个根 ...
- Spring Boot整合Mybatis出现错误java.lang.IllegalStateException: Cannot load driver class:com.mysql.cj.jdbc.Driver
错误描述: Caused by: java.lang.IllegalStateException: Cannot load driver class: com.mysql.cj.jdbc.Driver ...
- Python---Tkinter---贪吃蛇(稳定的外部环境,稳定的内心)
# 项目分析: - 构成: - 蛇 Snake - 食物 Food - 世界 World - 蛇和食物属于整个世界 class World: self.snake self.food - 上面代码不太 ...