环境准备:阿里云Ubuntu18.04 全新安装
 
一、安装Docker
1、删除旧版本并更新包索引:
sudo apt-get remove docker docker-engine docker-ce docker.io
sudo apt update
2、apt可以通过Https使用存储库(repository):
sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common
3、添加Docker官方GPG密钥:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
4、设置Stable存储库
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
5、再次更新apt包索引并安装最新的Docker CE版本:
sudo apt-get update
sudo apt-get install -y docker-ce
6、查看Docker是否安装成功并确认服务是否已经启动
docker version
systemctl status docker
//如果检查未启动执行一下
sudo systemctl start docker
Docker版本查看
 运行状态查看
7、经典Hello World
sudo docker run hello-world
二、部署Asp.NetCore到Docker
部署之前先理解下Docker基础知识(官方详细知识传送门https://docs.docker.com/engine/reference/run/)
a)docker外部运行架构图(图片来自于软谋教育黄埔架构班公开课)
     1、Doker  Client
     2、Doker  Host
     3、Doker Repository
 
 
docker安装目录: 
cd /var/lib
ls
docker 帮助命令
docker
进入正题准备发布Asp.NetCore项目,准备条件如下
1、创建.netCore项目
2、创建DockerFile
选择Linux
Dockerfile文件内容如下
编译或者发布时Dockerfile文件进行复制
3、编译项目并拷贝到Ubuntu系统服务器(我使用的工具:FinalShell 下载传送门 http://www.hostbuf.com/t/988.html
a)第一种方式-(上传压缩包-解压)
 准备工作目录:
//切换到工作目录
cd /home
//创建bill文件夹
mkdir bill
//浏览
ls
浏览新创建的文件夹
将项目打包并传送至工作目录
 命令模式下浏览复制进来的压缩包
安装解压工具
apt install p7zip-full
解压压缩包
7z x  BillAspNetCoreDocker.rar
解压后效果如下所示
上面第一种方式可能会出现异常各种原因现在介绍第二种操作方式直接复制(不需要解压)
b)直接复制项目文件夹
将Dockerfile移动至工作目录并查看配置
mv Dockerfile ../Dockerfile
vi Dockerfile
//退出
ESC+:wq
进入主题
因为项目上传到Linux之前未进行编译与发布而是直接将项目Copy到Ubuntu指定工作目录/home/bill/项目文件夹
所以正式发布到Docker之前需要编译与发布
三、项目编译、发布、部署
1、dotnetcore项目构建(编译)与发布
a)项目编译
cd BillAspNetCoreDocker/
dotnet build "BillAspNetCoreDocker.csproj" -c Release -o /app/build
发现找不到dotnet 命令未找到,这是因为没有安装DotNetCore Sdk提示的错误
安装DotNetSdk(因为我的项目是3.1所以安装dotnet-sdk-3.1版本)
wget -q https://packages.microsoft.com/config/ubuntu/18.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
sudo add-apt-repository universe
sudo apt-get install apt-transport-https
sudo apt-get update
sudo apt-get install dotnet-sdk-3.1
dotnet --info
继续构建(编译)项目(-o 我理解为输出目录至/app/build下)
dotnet build "BillAspNetCoreDocker.csproj" -c Release -o /app/build
b)项目发布
dotnet publish "BillAspNetCoreDocker.csproj" -c Release -o /app/publish
c)通过Dockerfile构建Docker镜像
cd ..
docker build -t BillCore .
千万别漏掉了后面的【.】我理解为.是找到当前目录下的Dockerfile文件
出现下图错误提示,别着急慢慢看问题~指的是Docker命令必须为小写
换成下面命令继续执行,然后慢慢等待(估计第一次是这样非常慢)
docker build -t billcore .
 大概等了快半个小时~(阿里云还算比较快的,百度云与腾讯云差不多等了我1个多小时)
出现报错:原因分析~是因为Dockerfile没有与项目.csproj文件在同一目录下导致的(都是上面mv Dockerfile ../Dockerfile命令导致的问题怪我自己照着别人的过程依葫芦画瓢 )
原因分析完成了,解决问题
mv Dockerfile /home/bill/BillAspNetCoreDocker/Dockerfile
cd BillAspNetCoreDocker/
ls
如下图已将Dockerfile搬移至项目文件.csproj同级目录下
继续构建镜像
docker build -t billcore .
17个步骤相当顺利,看到胜利的曙光了
查看生成的镜像
docker images
查看镜像信息
docker image inspect billcore
d)运行镜像(-d 后台运行 -P暴露端口P为大写一定要注意)
docker run -d -P billcore
查看容器列表
docker ps -a

查看效果如下

从上图看到暴露的端口为【32769】现在再到外部打开浏览器浏览,出现以下截图空白内容.
查找下原因~应该是端口未开放导致的问题
e)开放端口
    1、防火墙开放端口
iptables -I INPUT -p tcp --dport  -j ACCEPT
iptables-save
   2、因为用的是阿里云(腾讯、华为、百度都一样)需要在云服务器管理里面添加安全组规则开放端口才能正常访问
 
四、大结局
最后见证奇迹的时刻,大功告成~(第一次实战花了大概4个多小时)
 
 

 
 

Ubuntu18.04安装Docker并部署(编译、发布、构建镜像)Asp.NetCore项目全过程笔记的更多相关文章

  1. Ubuntu18.04安装Docker, centos7安装Docker

    Ubuntu18.04安装Docker 第一种方法从Ubuntu的仓库直接下载安装: 安装比较简单,这种安装的Docker不是最新版本,不过对于学习够用了,依次执行下面命令进行安装. $ sudo a ...

  2. Ubuntu18.04安装docker、docker-compose、

    Ubuntu18.04下Docker CE安装 Docker版本分为两个:Docker Community Edition (CE)和 Docker Enterprise Edition (EE).D ...

  3. Ubuntu-18.04安装Docker

    Docker 介绍 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱机制 ...

  4. ubuntu18.04安装docker

    本文基于unbuntu18.04版本来安装docker,步骤如下: 1:右击桌面->打开终端(E). 2::输入以下命令: sudo snap install docker ,输入密码之后出下图 ...

  5. 在Ubuntu18.04安装docker之后,以登陆用户身份执行docker pull jenkins,报错:connect: permission denied

    Using default tag: latest Got permission denied while trying to connect to the Docker daemon socket ...

  6. ubuntu18.04 安装docker

    https://docs.docker.com/install/linux/docker-ce/ubuntu/#install-docker-ce-1Change "stable" ...

  7. ubuntu18.04安装docker和开通对外2375端口(方便portainer管理)

    date: 2019-08-03   21:39:37 author: headsen chen apt-get install apt-transport-https ca-certificates ...

  8. ubuntu18.04 安装hadoop 2.7.3+hive 2.3.4

    1. 安装hadoop 详细请参见本人的另外一片博文<Hadoop 2.7.3 分布式集群安装> 2. 下载hive 2.3.4 解压文件到/opt/software -bin.tar.g ...

  9. Ubuntu 20.04安装Docker

    Docker学习系列文章 入门必备:十本你不容错过的Docker入门到精通书籍推荐 day1.全面的Docker快速入门教程 day2.CentOS 8.4安装Docker day3.Windows1 ...

随机推荐

  1. cb43a_c++_STL_算法_删除_(1)remove_remove_if

    cb43a_c++_STL_算法_删除_(1)remove_remove_ifremove()remove_if() 注意:1.并不是真正的删除,而是把后面的元素向前移动,覆盖被删除元素,元素个数并没 ...

  2. cb41a_c++_STL_算法_填充新值fill_generate

    cb41a_c++_STL_算法_填充新值fill_generatefill(b,e,v)fill_n(b,n,v),填充n个vgenerate(b,e,p)generate_n(b,n,p) gen ...

  3. thinkphp3.2 where 条件查询

    thinkphp3.2 where 条件查询 在连贯操作中条件where的操作有时候自己很晕,所以整理下,有助于使用 查询条件 支持的表达式查询,tp不区分大小写 含义 TP运算符 SQL运算符 例子 ...

  4. SpringCloud教程第1篇:Eureka(F版本)

    一.创建服务注册中心(Eureka组件) 1.1 首先创建一个maven主工程. 1.创建maven项目 是一个主Maven工程,spring Boot版本为2.0.3.RELEASE,Spring ...

  5. spring boot actuator端点高级进阶metris指标详解、git配置详解、自定义扩展详解

    https://www.cnblogs.com/duanxz/p/3508267.html 前言 接着上一篇<Springboot Actuator之一:执行器Actuator入门介绍>a ...

  6. 尚硅谷maven视频教程笔记

    07.尚硅谷_Maven_部署Maven核心程序.avi 第一步先安装jdk 第二步下载maven 特别需要注意的是maven不能存储在有中文和空格的目录下面 3.调试是否安装成功,在cmd中输入 m ...

  7. sublime清空控制台

    解决方法 – 只需运行print('\n'*100)打印100个换行符,您将无法看到任何以前的输出,除非你向上滚动一些距离.

  8. python设计模式之策略模式

    每次看到项目中存在大量的if else代码时,都会心生一丝不安全感. 特别是产品给的需求需要添加或者更改一种if条件时,生怕会因为自己的疏忽而使代码天崩地裂,哈哈,本文的目的就是来解决这种不安全感的, ...

  9. 老板急坏了,公司网站的 HTTPS 过期了

    端午出去玩的时候,老板打电话说公司网站的 HTTPS 过期了,访问不了(见下图),要我立马升级一下.可惜我当时没带电脑,无能为力,可把老板急坏了. 没办法,急就先急着,只能等我有电脑了才能搞.点击高级 ...

  10. SpringMvc流程分析,简单源码分析

    SpringMvc的请求入口:web.xml中的DispatcherServlet <servlet> <servlet-name>springServlet</serv ...