.NET Core 项目中使用 Docker生成镜像,上传到Docker Hub中后,可在任意一台CentOs系统中拉取镜像直接运行.NET Core
第一步:下载安装Docker for Windows
下载地址:
需要优先启用虚拟化:(在Bios中开启)
开始后在任务管理器中查看:
打开Docker Desktop。
第二步:配置Docker
申请Docker Hub账号,并登陆。申请地址:
设置共享驱动:(C盘必须勾上,同时需要勾上项目的所在目录)
可以在阿里云中免费申请一个镜像加速器:
基础设置完成,打开命令窗口验证。
第三步:VS新建项目,生成镜像
不勾选“启用Docker支持”,后面手动添加配置文件
手动添加Dockerfile文件(可添加记事本后删除后缀),并添加左侧配置(注意修改dll文件名)
# 添加基础镜像:docker会从网络下载这个镜像FROM microsoft/dotnet:2.1-aspnetcore-runtime#容器中系统的工作空间WORKDIR /app#拷贝当前文件夹下的文件到容器中系统的工作空间(注意:“.”后面有空格)COPY . /app #设置Docker容器对外暴露的端口EXPOSE 80#容器中使用 ["dotnet","系统启动的dll"] 来运行应用程序ENTRYPOINT ["dotnet", "MyDocker.dll"]
设置Dockerfile文件的属性
进入项目文件夹,发布项目
切换至发布目录下,通过命令生成镜像(注意命令后面有个 空格 和 .)
docker build -t mydocker:v1 .
新打开一个命令窗口,查看刚刚生成的镜像
第四步:上传镜像至Docker Hub
登陆Docker Hub,创建一个镜像仓库
使用 tag 标记本地镜像,将其上传到刚刚新建的仓库中。
docker tag mydocker:v1 ghostdao/docker1:v1
docker push ghostdao/docker1:v1
上传成功,在Docker Hub Tags标签页中可以看到
第五步:在CentOs系统中安装Docker
参考:
第六步:拷贝VS发布的文件到CentOs中
使用WinSCP把整个发布目录publish,发送到CentOs系统中的mydocker文件夹下
第七步:从Docker Hub中拉取镜像
进入CentOs系统,使用终端登陆 Docker Hub (这里是已经登陆过的)
开始拉取镜像,查看结果
docker pull ghostdao/docker1:v1
使用镜像 ghostdao/docker1:v1,以后台模式启动一个容器,将容器的 80 端口映射到主机的 8088 端口,主机的目录 /publish 映射到容器(成功后,容器状态显示为Up)
docker run --name=mydocker_v1 -d -p 8088:80 -v /root/桌面/mydocker/publish:/app ghostdao/docker1:v1
访问服务器