1. ubuntu 18.04linux
2. docker version 18.09 web
3. netcore 2.1 docker
自从netcore支持跨平台以后,以及如今不少公司都是采用容器化部署,今天在比较空闲的时候学习了一下。ubuntu
3.1 建立netcore 项目 ,选择api程序完成建立api
3.2 添加dockerfilebash
项目右键=》添加=》docker支持,添加成功以后会生成一个dockerfile文件,打开该文件,系统自动生成了一堆代码,可是在发布的时候发现不可用,所以从网上找了下面这种方式进行发布,把dockerfile属性改成始终复制,发布文件的时候直接把dockerfile文件也一块发布,以下图配置的dockerfile文件:asp.net
FROM microsoft/dotnet:latest #所需依赖
WORKDIR /web #容器中系统工做空间
#拷贝当前文件夹下的文件到容器中系统的工做空间(注意:“.”后面有空格)
COPY . ./
EXPOSE 80 #对外提供的端口号
EXPOSE 443
#容器中使用 ["dotnet","系统启动的dll"] 来运行应用程序
ENTRYPOINT ["dotnet", "testDocker.dll"]复制代码
3.3 发布学习
跟以往发布net程序同样选择文件系统进行发布:测试
3.4 安装asp.net core镜像ui
sudo docker pull microsoft/dotnet
复制代码
由于咱们在dockerfile中要求的from镜像是microsoft/aspnetcore:latest,因此下载的时候咱们直接pullmicrosoft/dotnet,若是下载慢的话 能够配置国内镜像站,这里我用的阿里云的镜像
sudo vi /etc/apt/sources.list复制代码
镜像下载完成以后输入sudo docker images 检查一下是否下载成功,下图中箭头所指就是咱们下载的镜像,到此须要准备工做已经完成。
sudo docker images复制代码
3.5 把文件上传到liunx指定文件夹当中
本人所用sudo rz 把文件上传到liunx当中(若是您的linux系统没有安装,在终端输入:
sudo apt-get install lrzsz 进行自动安装),图中所示,刚才所发布的文件,所有上传到了liunx系统上的web文件夹当中
sudo apt-get install lrzsz
sudo rz复制代码
3.6 build 镜像
在build的时候注意,命令最后必定要有个".", 而且镜像名称也不容许出现大写,若是想带上版本号的话 能够输入命令:
sudo docker build -t web:v0.1 .复制代码
,若是不输入默认显示tag的latest
build以后就能够查看镜像列表:sudo docker images,下图中web 就是咱们刚才所生成的镜像文件:
sudo docker images复制代码
3.7 运行build的镜像
sudo docker run -d -t -p 5000:80 web #运行镜像
sudo docker ps #查看正在运行的容器
sudo docker ps -a #查看全部容器信息复制代码
复制代码
3.8 测试可正常访问
在整个发布流程中涉及一些须要提早准备的例如docker环境,linux系统等还请自行配置。