netcore使用docker+centos7部署
2019-12-17 本文已影响0人
TomGui
1、CentOS Docker 安装
1.1设置仓库
在新主机上首次安装 Docker Engine-Community 之前,需要设置 Docker 仓库。之后,您可以从仓库安装和更新 Docker。
安装所需的软件包。yum-utils 提供了 yum-config-manager ,并且 device mapper 存储驱动程序需要 device-mapper-persistent-data 和 lvm2。
$ sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
使用以下命令来设置稳定的仓库。
$ sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
1.2安装 Docker Engine-Community
安装最新版本的 Docker Engine-Community 和 containerd,或者转到下一步安装特定版本:
$ sudo yum install docker-ce docker-ce-cli containerd.io
如果提示您接受 GPG 密钥,请选是。
启动 Docker
$ sudo systemctl start docker
检查Docker是否安装成功
$ docker version
2.Docker镜像加速
国内从 DockerHub 拉取镜像有时会遇到困难,此时可以配置镜像加速器。Docker 官方和国内很多云服务商都提供了国内加速器服务,例如:
- Docker官方提供的中国镜像库:https://registry.docker-cn.com
- 七牛云加速器:https://reg-mirror.qiniu.com
Ubuntu16.04+、Debian8+、CentOS7
对于使用 systemd 的系统,请在 /etc/docker/daemon.json 中写入如下内容(如果文件不存在请新建该文件):
{"registry-mirrors":["https://registry.docker-cn.com"]}
之后重新启动服务:
$ sudo systemctl daemon-reload
$ sudo systemctl restart docker
3.netcore docker部署
3.1创建一个webapi测试程序
创建demovs会自动创建一个Dockerfile文件,每行docker指令的具体含义可查看官方文档
#See https://aka.ms/containerfastmode to understand how Visual Studio uses this Dockerfile to build your images for faster debugging.
FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim AS base
WORKDIR /app
EXPOSE 80
FROM mcr.microsoft.com/dotnet/core/sdk:3.1-buster AS build
WORKDIR /src
COPY ["netcore-docker-demo/netcore-docker-demo.csproj", "netcore-docker-demo/"]
RUN dotnet restore "netcore-docker-demo/netcore-docker-demo.csproj"
COPY . .
WORKDIR "/src/netcore-docker-demo"
RUN dotnet build "netcore-docker-demo.csproj" -c Release -o /app/build
FROM build AS publish
RUN dotnet publish "netcore-docker-demo.csproj" -c Release -o /app/publish
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "netcore-docker-demo.dll"]
3.2部署
3.2.1centos中创建程序目录
$ mkdir /usr/local/app
3.2.2通过FTP拷贝程序文件到centos
通过Xftp等工具,具体用法自己google
3.2.3docker部署netcore
定位到程序目录
$ cd cd /usr/local/app/netcore-docker-demo/
构建docker镜像
$ docker build -t netcore-docker-demo .
其中.是Dockerfile相对打开目录的路径
运行docker镜像
$ docker run -it --rm -p 5000:80 --name netcore-docker-demo1 netcore-docker-demo
通过浏览器访问服务
http://192.168.239.131:5000/WeatherForecast
192.168.239.131是服务器地址,5000是docker暴露的端口,WeatherForecast是测试程序默认创建的controller
运行结果参考文档: