环境准备:阿里云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. cb42a_c++_STL_算法_替换_replace

    cb42a_c++_STL_算法_替换_replacereplace(b,e,ov,nv),ov,old value, nv,new valuereplace_if(b,e,p,v) 根据p的条件,全 ...

  2. 8.实战交付一套dubbo微服务到k8s集群(1)之Zookeeper部署

    1.基础架构 主机名 角色 ip HDSS7-11.host.com K8S代理节点1,zk1 10.4.7.11 HDSS7-12.host.com K8S代理节点2,zk2 10.4.7.12 H ...

  3. java创建图片的缩略图

    //java创建图片的缩略图private void createThumbnail(String filename, int thumbWidth, int thumbHeight, int qua ...

  4. .NETCore微服务探寻(二) - 认证与授权

    前言 一直以来对于.NETCore微服务相关的技术栈都处于一个浅尝辄止的了解阶段,在现实工作中也对于微服务也一直没有使用的业务环境,所以一直也没有整合过一个完整的基于.NETCore技术栈的微服务项目 ...

  5. Wireshark论证TCP3次握手的过程

    wireshark过滤条件:ip.addr == 120.79.36.180 千万别写成 ip.dst == 120.79.36.180 ,这样子就看不到服务器给我们返回的包了 此时,在浏览器输入12 ...

  6. weblogic之高级进阶JMS的应用

    不仅Activemq提供的jms服务,Weblogic也提供了jms服务,很多项目是部署在Weblogic中,使用其提供的jms服务也是很多企业的选择,一直没亲手试过,今天试了下,遇到的小问题还挺多, ...

  7. Python 简明教程 --- 4,Python 变量与基本数据类型

    微信公众号:码农充电站pro 个人主页:https://codeshellme.github.io 任何一个人都会写出能够让机器理解的代码,只有好的程序员才能写出人类可以理解的代码. -- Marti ...

  8. jmeter跨线程组获取cookie或jmeter线程组共享cookie-笔者亲测

    一.Jmeter版本 此次示例采用的是apache-jmeter-5.2.1版本 二.设置配置文件使Cookie管理器保存cookie信息. 修改apache-jmeter-5.2.1/bin/jme ...

  9. MBA都需要学习哪些课程

    MBA课程内容详解: 1.核心课程: 管理经济学.营销管理.战略管理.组织行为学.会计学.公司财务管理.人力资源管理与开发.管理与沟通.经济法.国际贸易 2.学位课程: 商务英语(一.二).管理伦理学 ...

  10. JavaScript基础函数体中的唯一var模式(002)

    全局变量是不好的.所以在声名变量的时候,应该采用函数体中的唯一var模式(Single var Pattern).这个模式有不少好处: 提供了一个唯一的地方来查看函数体中声名的变量 在使用一个变量之前 ...