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是否安装成功(有client和service两部分表示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 来关闭防火墙
上一篇: php面向对象简单概括
下一篇: PHP面向对象之接口详解(代码实例)
推荐阅读
-
在CentOS 7 上使用Docker 运行.NetCore项目
-
centos7服务器部署django项目。
-
NetCore的Docker部署
-
CentOS7 Docker Nginx部署及运行详解
-
.NET Core跨平台部署于Docker(Centos)- 视频教程
-
docker-compose部署php项目实例详解
-
.Net Core 项目发布到Linux - CentOS 7(二)用Supervisor守护netcore进程
-
Docker容器使用jenkins部署web项目(总结)
-
Docker Compose部署项目到容器-基于Tomcat和mysql的商城项目(附源码和sql下载)
-
基于idea把springboot项目部署到docker