环境准备:阿里云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. 网站用https访问的问题

    网站挂到阿里云上, 可以http访问, 也可以https访问. 但是如果用https方式访问网站.发现接口报错. 因为接口只提供http方式. 在谷歌浏览器出现: Mixed Content: The ...

  2. 11.实战交付一套dubbo微服务到k8s集群(3)之dubbo微服务底包镜像制作

    1.下载jre镜像并推送到harbor [root@hdss7- ~]# docker pull registry.cn-hangzhou.aliyuncs.com/yfhub/jre8:8u112 ...

  3. Spring Boot 分离资源文件打包

    Spring Boot项目默认的会打包成单一的jar文件,但是有时候我们并不想让配置文件.依赖包都跟可执行文件打包到一起.这时候可以在pom.xml文件中进行配置,从而使资源文件.依赖包和可执行文件分 ...

  4. Redis->主从复制->哨兵模式(高可用)

    一:安装redis $ yum -y install gcc $ yum -y install gcc-c++ $ wget http://download.redis.io/releases/red ...

  5. weblogic高级进阶之ssl配置证书

    1.首先需要明白ssl的原理 这里我们使用keytool的方式为AdminServer配置ssl证书 配置证书的方式如下所示: C:\Users\Administrator\Desktop\mykey ...

  6. Freemarker在replace替换是对NULL值的处理

    freemarker的对象调用内建函数时,比如userInfo对象的birthDay函数,页面${userInfo.birthDay}调用,当我想将birthDay值中的“-”替换为“/”时,${us ...

  7. vue基础入门(4)

    4.综合实例 4.1.基于数据驱动的选项卡 4.1.1.需求 需求说明: 1. 被选中的选项按钮颜色成橙色 2. 完成被选中选项下的数据列表渲染 3. 完成选项切换 4.1.2.代码实现 <!D ...

  8. node+ajax实战案例(6)

    8.删除客户 8.1.发送id到后台 删除用户信息比较简单,只需要把对应行的id发送到后台就可以了 oTable.onclick = function (ev) { var ev = ev || ev ...

  9. 搭建nginx服务器nginx-1.6.2.tar.gz

    2016-06-17 09:06:52   一.实验环境 CentOS6.5 软件:nginx-1.6.2.tar.gz 二.实验步骤 1)安装nginx所依赖的软件 yum -y install p ...

  10. $.post 参数定义

    //重置密码 function ResetPassword(id, accounts) { //alert("重置密码id-" + id + "-" + acc ...