.NET Core 项目中使用 Docker生成镜像,上传到Docker Hub中后,可在任意一台CentOs系统中拉取镜像直接运行.NET Core

 

第一步:下载安装Docker for Windows



需要优先启用虚拟化:(在Bios中开启)

coredns 镜像 core怎么镜像复制_上传

 

开始后在任务管理器中查看:

coredns 镜像 core怎么镜像复制_Docker_02

 打开Docker Desktop。

 

第二步:配置Docker


 

申请Docker Hub账号,并登陆。申请地址:https://hub.docker.com/signup?next=%2F%3Futm_source%3Ddocker4win_2.0.0.3

coredns 镜像 core怎么镜像复制_Docker_03

 

设置共享驱动:(C盘必须勾上,同时需要勾上项目的所在目录)

coredns 镜像 core怎么镜像复制_上传_04

 

可以在阿里云中免费申请一个镜像加速器:

coredns 镜像 core怎么镜像复制_coredns 镜像_05

coredns 镜像 core怎么镜像复制_Docker_06

基础设置完成,打开命令窗口验证。

coredns 镜像 core怎么镜像复制_coredns 镜像_07

 

第三步:VS新建项目,生成镜像


 

不勾选“启用Docker支持”,后面手动添加配置文件 

coredns 镜像 core怎么镜像复制_上传_08

 

手动添加Dockerfile文件(可添加记事本后删除后缀),并添加左侧配置(注意修改dll文件名)

coredns 镜像 core怎么镜像复制_Docker_09

# 添加基础镜像:docker会从网络下载这个镜像
FROM microsoft/dotnet:2.1-aspnetcore-runtime
#容器中系统的工作空间
WORKDIR /app
#拷贝当前文件夹下的文件到容器中系统的工作空间(注意:“.”后面有空格)
COPY . /app
 
#设置Docker容器对外暴露的端口
EXPOSE 80
#容器中使用 ["dotnet","系统启动的dll"] 来运行应用程序
ENTRYPOINT ["dotnet", "MyDocker.dll"]

 

设置Dockerfile文件的属性

coredns 镜像 core怎么镜像复制_Docker_10

 

进入项目文件夹,发布项目

coredns 镜像 core怎么镜像复制_Docker_11

 

切换至发布目录下,通过命令生成镜像(注意命令后面有个 空格 和 .)

docker build -t mydocker:v1 .

 

coredns 镜像 core怎么镜像复制_coredns 镜像_12

 

新打开一个命令窗口,查看刚刚生成的镜像

coredns 镜像 core怎么镜像复制_docker_13

 

第四步:上传镜像至Docker Hub


 

登陆Docker Hub,创建一个镜像仓库

coredns 镜像 core怎么镜像复制_Docker_14

 

 

使用 tag 标记本地镜像,将其上传到刚刚新建的仓库中。

coredns 镜像 core怎么镜像复制_Docker_15

docker tag mydocker:v1 ghostdao/docker1:v1
docker push ghostdao/docker1:v1

 

上传成功,在Docker Hub  Tags标签页中可以看到

coredns 镜像 core怎么镜像复制_Docker_16

 

第五步:在CentOs系统中安装Docker


 

参考:

 

第六步:拷贝VS发布的文件到CentOs中


 

使用WinSCP把整个发布目录publish,发送到CentOs系统中的mydocker文件夹下

coredns 镜像 core怎么镜像复制_Docker_17

 

第七步:从Docker Hub中拉取镜像


 

进入CentOs系统,使用终端登陆 Docker Hub (这里是已经登陆过的)

coredns 镜像 core怎么镜像复制_Docker_18

 

开始拉取镜像,查看结果

coredns 镜像 core怎么镜像复制_docker_19

docker pull ghostdao/docker1:v1

 

 

使用镜像 ghostdao/docker1:v1,以后台模式启动一个容器,将容器的 80 端口映射到主机的 8088 端口,主机的目录 /publish 映射到容器(成功后,容器状态显示为Up)

coredns 镜像 core怎么镜像复制_docker_20

docker run --name=mydocker_v1 -d -p 8088:80 -v /root/桌面/mydocker/publish:/app ghostdao/docker1:v1

 

 

访问服务器

http://192.168.1.174:8088/api/values

coredns 镜像 core怎么镜像复制_coredns 镜像_21