欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

CentOS docker部署.netcore项目

程序员文章站 2022-03-29 20:01:05
...

 

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

Docker环境安装

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

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

CentOS docker部署.netcore项目

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

 CentOS docker部署.netcore项目

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 //清华大学原

 CentOS docker部署.netcore项目

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版本

CentOS docker部署.netcore项目 

    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安装启动都成功了

 CentOS docker部署.netcore项目

Docker 部署.netcore项目 

创建.netcore项目

环境:VS2017;.Net Core 2.2

1、创建项目

以webapi为例

CentOS docker部署.netcore项目

CentOS docker部署.netcore项目 

CentOS docker部署.netcore项目 

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

2、编写Dockerfile文件 

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

CentOS docker部署.netcore项目

自动生成的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文件的属性,修改为始终复制

CentOS docker部署.netcore项目 

部署.netcore项目 

1、传输发布文件

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

CentOS docker部署.netcore项目 

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

CentOS docker部署.netcore项目

2、创建镜像 

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

CentOS docker部署.netcore项目

执行 docker images 查看创建的镜像

CentOS docker部署.netcore项目 

3、运行镜像

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

--name:指定容器名称

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

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

CentOS docker部署.netcore项目 

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

CentOS docker部署.netcore项目 

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

CentOS docker部署.netcore项目 

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 docker部署.netcore项目

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

 虚拟机中:

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

  执行命令firewall-cmd –reload

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

 CentOS docker部署.netcore项目