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 ...
随机推荐
- django报错处理:对应ip无法登陆与使用bootstrap移动端响应工具,head响应实例
1.报错 Invalid HTTP_HOST header: '192.168.1.100:8000'. You may need to add '192.168.1.100' to ALLOWED_ ...
- CentOS服务器开放端口
拿到服务器之后接着之前的通信步骤进行,却发现怎么也连接不上.最后发现是因为服务器端的端口5000没有开放.下面记录一下开放端口的过程. 使用命令 netstat -anp 查看端口开放情况.如果显示命 ...
- 33. Search in Rotated Sorted Array (JAVA)
Implement next permutation, which rearranges numbers into the lexicographically next greater permuta ...
- Codeforces Round #427 (Div. 2) - B
题目链接:http://codeforces.com/contest/835/problem/B 题意:给定一个数k和一个数字串n.问你最少改几个数字才能满足所有数字的和不小于k. 思路:考虑贪心,每 ...
- 03Java基础——继承
1.继承 例如一个员工类,包括开发员工和经理. package cn.jxufe.java.chapter2.demo12; public class Employee { String name; ...
- C#基础知识之依赖注入
目录 1 IGame游戏公司的故事 1.1 讨论会 1.2 实习生小李的实现方法 1.3 架构师的建议 1.4 小李的小结 2 探究依赖注入 2.1 故事的启迪 2.2 正式定义依赖注入 3 依赖注入 ...
- uoj280 【UTR #2】题目难度提升 堆维护中位数+set
题目传送门 http://uoj.ac/problem/280 题解 这道题很妙啊. 这种题目如果给予选手足够的时间,每一个选手应该都能做出来. 大概就是核心思路看上去很简单,但是想要推出来并不简单. ...
- Thymeleaf 模板引擎简介
目录 Thymeleaf 模板引擎 官方文档下载 Hello World 新建应用 后台控制器 前端页面 浏览器访问测试 Thymeleaf 模板引擎1.Thymeleaf 是 Web 和独立环境的现 ...
- OmniGraffle 7使用的探索
进去后可以将界面简化为4个主要区域:工具栏.工具栏.检查器和画布. 1.画布是在项目中创建.编辑和移动对象的地方 2.删除画布 选择编辑 画布删除画布 3.OmniGraffle项目至少需要一个画布 ...
- 【微信小程序】使用vscode编写微信小程序项目
1. 在微信开发者工具(以下简称:开发者)中新建一个模板微信小程序 2. 在开发者中将模拟器分隔开 3. 设置在保存时编译 4. 在vscode中打开项目目录 5. 下载代码提示插件 这样就可以在vs ...