CentOS7 下docker 部署 Asp.Net Core

1.安装Docker

PS:先打开网络
yum [Errno 256] No more mirrors to try 解决方法

输入下面的命令即可解决问题:

yum clean all

yum makecache

1)安装docker

 sudo yum install docker

PS:

遇报错 Another app is currentlty holding the yum lock ,waiting for it to exit..

     解决方法: rm  –r  /var/run/yum.pid 这个命令 解锁即可

2)启动docker

systemctl  start docker.service

3)配置开机启动

systemctl enable docker.service

4)查看docker版本信息

docker version

 

 

2.Asp.Net core项目建 Dockerfile 并发布

 

 

 

注意: Dockerfile 文件配置如下,并需要在发布的时候手动copy过去

Dockerfile文件内容:

#基于 `microsoft/aspnetcore:2.0` 来构建我们的镜像

FROM microsoft/aspnetcore:2.0

#拷贝项目publish文件夹中的所有文件到 docker容器中的publish文件夹中 

COPY . /publish

#设置工作目录为 `/publish` 文件夹,即容器启动默认的文件夹

WORKDIR /publish

#设置Docker容器对外暴露80端口

EXPOSE 80

#使用`dotnet NetCoreDockerDemo.dll`来运行应用程序

ENTRYPOINT ["dotnet", "NetCoreDockerDemo.dll"]

(1)     生成镜像

cd 到linux 部署的一个core文件夹下

sudo docker build -t demo-netcore  .       (注意:最后空格后面有一个.)。

 

 

(2)     查看生成的镜像

sudo docker images

 

 

(3)     镜像备份

命令: docker save -o ~/xxxxxxxx.tar name(镜像名称)

新建一个dockerimages 文件夹来存放 待备份的 文件

[root@localhost Desktop]# docker save -o docker-domocore-bk.tar  demo-netcore

(4)     把镜像文件导出到本地

用 FZ 文件连接 :sftp://192.168.174.129   root/jxl333

Root 根目录下就有 刚才备份的 docker-domocore-bk.tar 文件,下载到本机即可

3.docker镜像Copy另一台机器并加载

(1)     把镜像文件copy 到另外一台 linux 机器上,测试镜像可用性

备注:新的这台服务器上也要先安装docker

(1)安装docker

 sudo yum install docker

(2)启动docker

systemctl  start docker.service

(3)配置开机启动

systemctl enable docker.service

(4)查看docker版本信息

docker version

(2)     FZ docker-domocore_bk.tar 上传到另外一台 linux 服务器上的 core 文件夹下并加载

Linux 命令 cd  /home/jxl/core/

命令加载: docker load –i  docker-domocore-bk.tar

 

 

(3)     查看load docker images

 

 

4.docker镜像文件使用方法

(1)     为了安装.NET,需要注册微软签名密钥和添加微软相关的支持

这个操作每台机器只能做一次。

打开命令行,输出以下命令,注册Microsoft需要的依赖环境;:

sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc

 

sudo sh -c 'echo -e "[packages-microsoft-com-prod]\nname=packages-microsoft-com-prod \nbaseurl=https://packages.microsoft.com/yumrepos/microsoft-rhel7.3-prod\nenabled=1\ngpgcheck=1\ngpgkey=https://packages.microsoft.com/keys/microsoft.asc">/etc/yum.repos.d/dotnetdev.repo'

 

安装.NET SDK

②   更新可用的安装包:sudo yum update

②安装.NET需要的组件,libunwind和libicu库:sudo yum install libicu

sudo yum install libunwind

③   安装.NET SDK

sudo yun install dotnet-sdk-2.2

④   安装完成之后,检测是否安装成功

dotnet –version

(2)     依据镜像images 生成容器containers 并且设置外网端口映射

根据镜像images 生成容器containers 命令 和

把Asp.Net Core项目端口54907与 Docker容器对外暴露80端口做映射(-p 宿主端口:容器端口)

docker run -p 54907:80 demo-netcore

 

 

(3)     外网访问结果

 

 

(4)     

如果设置为 docker run –p 80:80 netcoredockerdemo (外网访问的是80端口)

 

 

  根据镜像启动一个container

docker run -p 54907:80 demo-netcore

 

 

没有的话:

cd /etc/sysconfig/network-scripts/ 进入到网卡目录

编辑ifcfg-eno16777736文件:把这一项改为YES(ONBOOT=yes),

 

Systemctl stop NetworkManager

 

 Systemctl restart network 或者重启机器

 

 

 

(5)     容器生成后开启/停止/重启等操作

重要:

Run 只需要一次 从镜像生成容器

Start 可以多次,启动容器

 

下面是容器的操作

Docker实际上把所有东西都放到/var/lib/docker路径下了。

1.cd docker

Containers 目录是存放容器的(container)

image

2.docker start 容器ID

docker start/stop/restart <container> :开启/停止/重启container
docker start [container_id] :再次运行某个container (包括历史container)
docker attach [container_id] :连接一个正在运行的container实例(即实例必须为start状态,可以多个窗口同时attach 一个container实例)
docker start -i <container> :启动一个container并进入交互模式(相当于先start,在attach)
docker run -i -t <image> /bin/bash :使用image创建container并进入交互模式, login shell是/bin/bash
docker run -i -t -p <host_port:contain_port> :映射 HOST 端口到容器,方便外部访问容器内服务,host_port 可以省略,省略表示把 container_port 映射到一个动态端口。
注:使用start是启动已经创建过得container,使用run则通过image开启一个新的container。

 

 

(6)     本机测试Demo网址
  1. Linux+Nginx+Asp.Net Core

http://192.168.174.128/api/values/

  1. linux+docker +Asp.Net Core (sudo docker build -t demo-netcore  .   制作镜像docker-domocore-bk.tar)

http://192.168.174.129:54907/api/values/

  1. linux+docker(使用2中生成的镜像docker load –i  docker-domocore-bk.tar)

http://192.168.174.130:54907/api/values/

 

转载于:https://www.cnblogs.com/shanfeng/p/10304105.html

Centos7发布说明 环境说明: 服务器系统:CentOS 7.2.1511 相关工具:Xshel、Xftp 服务器软件软件:.netcore、nginx、supervisor 准备好发布的程序 安装.NET Core SDK for CentOS7 打开网址:https://www.microsoft.com/net/core#linuxcentos 复制如下命令,单步执行: sudo yum install libunwind libicu curl -sSL -o dotnet.tar.gz https://go.microsoft.com/fwlink/?LinkID=835019 sudo mkdir -p /opt/dotnet && sudo tar zxf dotnet.tar.gz -C /opt/dotnet sudo ln -s /opt/dotnet/dotnet /usr/local/bin 输入 dotnet –info 来查看是否安装成功 配置Nginx 下载安装Nginx,单步执行如下命令: curl -o nginx.rpm http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm rpm -ivh nginx.rpm yum install nginx systemctl start nginx 来启动nginx systemctl enable nginx 来设置nginx的开机启动(linux宕机、重启会自动运行nginx不需要连上去输入命令)。 配置防火墙 命令:firewall-cmd --zone=public --add-port=80/tcp --permanent(开放80端口) 命令:systemctl restart firewalld(重启防火墙以使配置即时生效) 测试nginx是否可以访问。 配置nginx对ASP.NET Core应用的转发 修改 /etc/nginx/conf.d/default.conf 文件,将文件内容替换为: server { listen 80; location / { proxy_pass http://localhost:5000; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection keep-alive; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; } }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值