因为部署netcore要求docker版本比较高我们这里新将 旧版版的docker卸载
停止docker:
systemctl stop docker
搜索已经安装的docker安装包:
yum list installed|grep docker 和rpm -qa|grep docker
卸载搜索出来的包:
yum -y remove
删除docker镜像(看需要在做操作):
rm -rf /var/lib/docker
安装docker-ce 依赖:
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
更换国内源:
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
安装docker-ce:
yum -y install docker-ce
启动docker:
service docker start
查看版本:
docker -v
下载netcore(我这里的版本是2.2)根据需求 若只是部署 runtime即可:
docker pull microsoft/dotnet:2.2-aspnetcore-runtime
docker pull microsoft/dotnet:2.2-sdk
项目所需Dockerfile可自行添加也可通过vs添加
注:vs生成的Dockerfile配置过多请根据需要自行设置,我这里提供最简单的Dockerfile
FROM microsoft/dotnet:2.2-aspnetcore-runtime //运行所需环境
WORKDIR /app //在容器内目录
EXPOSE 80 //暴露端口
COPY . . //COPY Dockerfile 目录下所有文件
ENTRYPOINT ["dotnet", "demo.dll"] //运行的dll
将项目发布后丢到centos上后在当前目录(Dockerfile同目录)后build 生成image:
docker build -t demonetcore .
查看生成的image:
docker images
运行docker 镜像:
docker run --name demonetcore -d -p 7778:80 demonetcore
查看容器是否运行:
docker ps
访问即可,若无法访问请注意:
这里在提供一下Docker-compose 不需要每次在运行docker run :
version: '3'
services:
demonetcore:
image: 'demonetcore'
container_name: demo
restart: always
ports:
- '7654:80'
阿里云: https://cr.console.aliyun.com/cn-hangzhou/instances/repositories
创建命名空间:
创建镜像仓库:
设置数据源这里选择最简单的本地仓库,其他源根据需要自行配置:
进入仓库中:
密码设置:
上传image至阿里云docker-hub根据提示即可。
$ sudo docker login --username=t_1506139671187_0858 registry.cn-hangzhou.aliyuncs.com
用于登录的用户名为阿里云账号全名,密码为开通服务时设置的密码。
您可以在访问凭证页面修改凭证密码。
$ sudo docker pull registry.cn-hangzhou.aliyuncs.com/netcoredemo/coredemo:[镜像版本号]
$ sudo docker login --username=t_1506139671187_0858 registry.cn-hangzhou.aliyuncs.com
$ sudo docker tag [ImageId] registry.cn-hangzhou.aliyuncs.com/netcoredemo/coredemo:[镜像版本号]
$ sudo docker push registry.cn-hangzhou.aliyuncs.com/netcoredemo/coredemo:[镜像版本号]
请根据实际镜像信息替换示例中的[ImageId]和[镜像版本号]参数。
从ECS推送镜像时,可以选择使用镜像仓库内网地址。推送速度将得到提升并且将不会损耗您的公网流量。
如果您使用的机器位于VPC网络,请使用 registry-vpc.cn-hangzhou.aliyuncs.com 作为Registry的域名登录,并作为镜像命名空间前缀。
使用"docker tag"命令重命名镜像,并将它通过专有网络地址推送至Registry。
$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
registry.aliyuncs.com/acs/agent 0.7-dfb6816 37bb9c63c8b2 7 days ago 37.89 MB
$ sudo docker tag 37bb9c63c8b2 registry-vpc.cn-hangzhou.aliyuncs.com/acs/agent:0.7-dfb6816
使用"docker images"命令找到镜像,将该镜像名称中的域名部分变更为Registry专有网络地址。
$ sudo docker push registry-vpc.cn-hangzhou.aliyuncs.com/acs/agent:0.7-dfb6816