Docker 部署dotnetcore

来源:互联网 发布:淘宝客服岗位业绩贡献 编辑:程序博客网 时间:2024/06/05 11:34

安装docker

系统还是之前centos 7.1

https://www.docker.com/products/docker#/linux

 yum update

 创建源:

/etc/yum.repos.d/docker.repo

tee /etc/yum.repos.d/docker.repo <<-'EOF'[dockerrepo]name=Docker Repositorybaseurl=https://yum.dockerproject.org/repo/main/centos/7/enabled=1gpgcheck=1gpgkey=https://yum.dockerproject.org/gpgEOF

 yum安装

yum install docker-enginesystemctl enable docker.servicesystemctl start docker

 测试

 docker run --rm hello-world

 会显示Hello from Docker!

部署程序

案例还是用 之前的 dotnetcore+angular2 的示例项目 ,详情参考:

拷贝到另一个文件夹

http://km.oa.com/articles/show/303950

cp acore/*  dockerapp

 (1)创建Dockerfile


备注: 这里有两个坑

1.因为程序是基于dotnet1.0.1 所以必须用 microsoft/dotnet:1.0.1-core;我开始创建的时候 用的1.0.0,当容器运行的时候 就变成Exit(131), 这时候用  docker logs [container]  可以显示容器运行的时候输出的日志. 然后修正dockerfile 基于image就ok了;

2.镜像里面监听0.0.0.0  , 不然在curl 外部访问出现错误:Connection reset by peer 

DockerFile 如下:

FROM microsoft/dotnet:1.0.1-coreRUN mkdir /app/COPY . /app/WORKDIR ./appEXPOSE 4000#CMD "/bin/bash"CMD ["dotnet", "acore.dll", "--server.urls", "http://0.0.0.0:4000"]


(2)构建Image 

docker build -t dockerapp:1.0 .

 (不要漏了后面一个点)

构建完成后就可以用 docker image 查看了


(3) 运行容器

docker run --name dockerapp -d -p 8000:4000 dockerapp:1.0

 指定容器名称,指定端口资源映射, 还可以指定磁盘映射

使用 docker ps -a 查看运行的容器


显示在运行中

访问一下 我们部署的dotnetcore 程序



(4)配置Nginx


这次映射的docker端口

重启nginx  

service nginx restart

(5)成果

外部浏览器访问结果: (该页面我特别在上面加一个div区分旧项目)



原文地址: https://www.qcloud.com/community/article/240


.NET社区新闻,深度好文,微信中搜索dotNET跨平台或扫描二维码关注

原创粉丝点击