Docker 部署 dotnetcore

安装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 Repository
baseurl=https://yum.dockerproject.org/repo/main/centos/7/
enabled=1
gpgcheck=1
gpgkey=https://yum.dockerproject.org/gpg
EOF

yum安装

yum install docker-enginesystemctl enable docker.service
systemctl 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-core
RUN mkdir /app/COPY . /app/WORKDIR ./app
EXPOSE 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跨平台 或扫描二维码关注

  • 版权声明: 本文源自互联网, 于2个月前,由整理发表,共 140字。
  • 原文链接:点此查看原文