通过docker把本地AspNetCore WebAPI镜像打包到阿里云镜像仓库并在centos部署
在centos上安装docker
-
# step 1: 安装必要的一些系统工具
-
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
-
# Step 2: 添加软件源信息
-
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
-
# Step 3: 更新并安装Docker-CE
-
sudo yum makecache fast
-
sudo yum -y install docker-ce
-
# Step 4: 开启Docker服务
-
sudo service docker start
-
##########################################################################
-
# 注意:
-
# 官方软件源默认启用了最新的软件,您可以通过编辑软件源的方式获取各个版本的软件包。例如官方并没有将测试版本的软件源置为可用,您可以通过以下方式开启。同理可以开启各种测试版本等。
-
# vim /etc/yum.repos.d/docker-ee.repo
-
# 将[docker-ce-test]下方的enabled=0修改为enabled=1
-
#
-
# 安装指定版本的Docker-CE:
-
# Step 1: 查找Docker-CE的版本:
-
# yum list docker-ce.x86_64 --showduplicates | sort -r
-
# Loading mirror speeds from cached hostfile
-
# Loaded plugins: branch, fastestmirror, langpacks
-
# docker-ce.x86_64 17.03.1.ce-1.el7.centos docker-ce-stable
-
# docker-ce.x86_64 17.03.1.ce-1.el7.centos @docker-ce-stable
-
# docker-ce.x86_64 17.03.0.ce-1.el7.centos docker-ce-stable
-
# Available Packages
-
# Step2: 安装指定版本的Docker-CE: (VERSION例如上面的17.03.0.ce.1-1.el7.centos)
-
# sudo yum -y install docker-ce-[VERSION]
-
输入
# docker version
输出如下信息表示docker安装成功创建aspnet core webapi项目 HelloDocker,并使用Dockerfile定制镜像,Dockerfile文本指令如下:
FROM microsoft/dotnet:sdk AS build-env
WORKDIR /code
COPY *.csproj /codeRUN dotnet restore
COPY . /code
RUN dotnet publish -c Release -o out
FROM microsoft/dotnet:2.1-aspnetcore-runtime
WORKDIR /app
COPY --from=build-env /code/out /app
ENTRYPOINT ["dotnet", "HelloDocker.dll"]
登入阿里云后台
-
选择容器镜像服务
-
创建命名空间 hello_my_docker
-
创建镜像仓库
-
点击镜像-管理,进入镜像基本信息
打包镜像并推送到阿里云镜像仓库
-
打开Windows PowerShell cd 进入到HelloDocker项目根目录,即Dockerfile文本所在文件夹
-
输入指令
docker build -t hello_docker:1.0.0.0 .
,第一次的话,耗时会比较久,因为需要pull netcore相关镜像,打包成功后输入docker images
可以看到hello_docker打包成功,版本为1.0.0.0 -
将镜像推送到阿里云镜像仓库,如图
-
登录
docker login --username=[username] registry.cn-hangzhou.aliyuncs.com
-
docker tag [ImageId] registry.cn-hangzhou.aliyuncs.com/hello_my_docker/hello_docker:[镜像版本号]
[ImageId]为本地容器名称,这里为:
docker tag hello_docker:1.0.0.0 registry.cn-hangzhou.aliyuncs.com/hello_my_docker/hello_docker:1.0.0.1
-
docker push registry.cn-hangzhou.aliyuncs.com/hello_my_docker/hello_docker:1.0.0.1
-
登录阿里云后台查看镜像版本,新增成功
-
通过PuTTY登录到阿里云centos,运行
docker images
显示没有任何镜像 -
参考前面步骤,在centos系统里面通过docker 登录到阿里云镜像仓库,通过
sudo docker pull registry.cn-hangzhou.aliyuncs.com/hello_my_docker/hello_docker:1.0.0.1
pull镜像运行
docker images
-
运行
docker run -d --name first_hello_docker -p 80:80 registry.cn-hangzhou.aliyuncs.com/hello_my_docker/hello_docker:1.0.0.1
-
在浏览器输入云服务器ip地址
-
若输入ip相关端口访问无效的话,可在阿里云后台安全组规则进行相关配置
-