CentOS docker部署.netcore项目

 

系统环境:CentOS7(Virtualbox虚拟机)

Docker环境安装

1、Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker 。

通过 uname -r 命令查看你当前的内核版本

2、执行命令sudo yum update,更新yum包,确保yum包是最新的(该步骤可跳过,建议更新)

3、执行命令 sudo yum remove docker  docker-common docker-selinux docker-engine 卸载旧版本docker(如果安装过旧版本,执行该操作)

4、执行命令 sudo yum install –y yum-utils device-mapper-persistent-data lvm2安装所需的软件包。yum-utils 提供了 yum-config-manager ,并且 device mapper 存储驱动程序需要 device-mapper-persistent-data lvm2

 

5、执行命令 sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo 设置yum源

 yum可用源:

 https://download.docker.com/linux/centos/docker-ce.repo  //官方源地址(比较慢)

 http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo  //阿里云

 https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo //清华大学原

 

6、执行命令sudo yum install docker-ce docker-ce-cli containerd.io 安装最新版本的 Docker Engine-Community containerd,或者转到下一步安装特定版本的docker

  安装特定版本的docker

 1)执行命令yum list docker-ce --showduplicates | sort -r 查看所有仓库中所有的docker版本

 

    2)安装特定版本docker命令

    sudo yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io

7、执行命令 sudo systemctl start docker 启动docker

8、执行命令 sudo systemctl enable docker 设置开机启动docker

9、执行命令docker version验证docker是否安装成功(clientservice两部分表示docker安装启动都成功了

 

Docker 部署.netcore项目 

创建.netcore项目

环境:VS2017;.Net Core 2.2

1、创建项目

以webapi为例

 

 

注:如果创建项目时,没有勾选“启用Docker支持”选项,可以在项目上 右击—添加—Docker支持 同样可以生成Dockerfile文件 

2、编写Dockerfile文件 

 首先看一下自动生成的Dcokerfile文件内容

自动生成的Dockerfile内容可能会有一些错误,所以自己编写一份Dockerfile文件,修改后的Dockerfile内容为

# 使用运行时镜像
FROM microsoft/dotnet:2.2-aspnetcore-runtime AS base
# 设置工作目录
WORKDIR /app
# 把目录下的内容都复制到当前目录下
COPY . .
ENV ASPNETCORE_URLS http://+:1902
# 暴露1902端口
EXPOSE 1902
# 运行镜像入口命令和可执行文件名称
ENTRYPOINT ["dotnet", "DockerDemo.dll"]

修改Dockerfile文件的属性,修改为始终复制

 

部署.netcore项目 

1、传输发布文件

执行命令mkdir netcore创建文件夹,用于存放.netcore项目发布文件

 

然后使用rz命令将程序发布从windows传输到centos中(rz命令是主机与centos虚拟机传输文件的的命令,文件传输的实现参见https://blog.csdn.net/liwan09/article/details/108022970

2、创建镜像 

 执行 sudo docker build –t netcoredocker .命令,创建镜像(注意:镜像名称 netcoredocker是空格+英文的点,.表示Dockerfile相对打开目录的路径

执行 docker images 查看创建的镜像

 

3、运行镜像

执行命令 docker run --name=netcoredocker -p 1804:1902 -d netcoredocker

--name:指定容器名称

-p:指定端口映射,格式为:主机(宿主)端口:容器端口

-d:后台运行容器,并返回容器ID

 

执行命令docker ps 查看运行的容器

 

执行命令docker inspect netcoredocker 查看netcoredocker镜像的信息,从镜像信息NetworkSettings中查看运行容器ip地址

 

4、api接口运行验证

1、在浏览器中输入http://运行容器ip:容器暴露端口/api/values查看webapi

该示例中的为http://172.17.0.2:1902/api/values

2、使用http://主机ip:映射的主机端口/api/values查看webapi

该示例中的为http://192.168.1.61:1804/api/values

注:因为我是在CentOS虚拟机中部署的netcore项目,需要在windows主机中访问虚拟机中的api,在访问之前,需要设置虚拟机的防火墙,确保windows主机中可以访问虚拟机中的api接口服务

 虚拟机中:

  执行命令 firewall-cmd --permanent --add-port=1804/tcp 设置需要访问的服务端口号(此处端口号是1804)

  执行命令firewall-cmd –reload

  执行命令systemctl stop firewalld.service    来关闭防火墙

 

 

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、付费专栏及课程。

余额充值