先决条件
64位,内核3.10以上,查看当前的内核版本,打开一个终端使用uname -r显示您的内核版本
?
?
?
?
?
?
安装
sudo yum update
?
?
sudo tee /etc/yum.repos.d/docker.repo <<-‘EOF‘
[dockerrepo]
name=Docker Repository
baseurl=https://yum.dockerproject.org/repo/main/centos/7/
enabled=1
gpgcheck=1
gpgkey=https://yum.dockerproject.org/gpg
EOF
?
?
?
?
?
?
安装docker
sudo yum install docker-engine
?
?
?
?
启动docker
sudo service docker start
?
?
验证docker已正常安装
?
?
安装.net core 镜像
https://hub.docker.com/r/microsoft/dotnet/
?
?
?
?
新建文件Dockerfile?,并修改内容
?
?
?
?
文件内容
#基于`mcrosoft/dotnet:1.0.0-core` 来构建我们的镜像
FROM microsoft/dotnet:1.0.0-core
?
?
#拷贝项目publish文件夹中的所有文件到 docker容器中的publish文件夹中
COPY . /publish
#设置工作目录为 `/publish` 文件夹,即容器启动默认的文件夹
?
?
WORKDIR /publish
?
?
#设置Docker容器对外暴露60000端口
EXPOSE 60000
?
?
#使用`dotnet MyApp.TestCore.dll`来运行应用程序
?
?
CMD ["dotnet", "MyApp.TestCore.dll"]
?
?
?
?
?
?
?
?
构建镜像
docker build -t my-dotnet-app .
?
?
注意最后有个.
如果创建失败,需要vpn才可以,这一步我试了几次总有超时,就找了个vpn再次构建就成功了
?
?
?
?
运行
docker run --name my-dotnet-app -d -p 60000:60000 my-dotnet-app
?
?
测试站点
?
?
失败了,报curl: (56) Recv failure: Connection reset by peer
?
?
?
?
修改程序如下:添加UseConfiguration
var configuration = new ConfigurationBuilder()
.AddCommandLine(args)
.Build();
?
?
var host = new WebHostBuilder()
.UseKestrel()
.UseContentRoot(Directory.GetCurrentDirectory())
.UseConfiguration(configuration)
.UseIISIntegration()
.UseStartup<Startup>()
.Build();
?
?
host.Run();
?
?
发布程序
修改Dockerfile?文件如下
?
?
?
?
FROM microsoft/dotnet:1.0.0-core
?
?
COPY . /publish
?
?
WORKDIR /publish
?
?
EXPOSE 5003
?
?
CMD ["dotnet", "MyApp.TestCore.dll","--server.urls", "http://*:5003"]
?
?
重新构建镜像
?
?
sudo docker build -t dotnetapp .
?
?
?
?
运行并查看
sudo docker run --name dotnetapp -d -p 5003:5003 dotnetapp
?
?
?
?
测试站点
?
?
?
?
api返回数据,成功
防火墙开放端口
$ sudo firewall-cmd --zone=public --add-port=5003/tcp --permanent
$ sudo firewall-cmd --reload
?
?
?
?
说下遇到的问题:
1.构建镜像时由于网络原因,试了好几次都没有成功,需要找个vpn
2.curl: (56) Recv failure: Connection reset by peer 这个错误,.net core默认创建的站点绑定的是localhost这个需要修改站点绑定方式,通过添加
UseConfiguration或UseUrls方式修改默认站点的绑定
?
?
?
?
?
?
?
?
?
?
?
?