五、基于github+阿里云容器镜像服务进行docker部署

将代码(jar包)托管在github上,使用阿里云容器镜像服务绑定github上的源代码,实现github上发生变更时,阿里云自动构建镜像,docker从阿里云拉取最新镜像并运行,关系如下:
在这里插入图片描述
本例主要的目的是引入阿里云镜像服务充当第三方镜像库,docker职责单一,统一拉取最新镜像并部署,需要提前准备:
1)ECS安装docker
2)github账号
3)阿里云开通容器镜像服务

1. github托管
1)其实主要是两个文件需要托管:一个是Dockerfile,另一个是工程jar包。
我这里是将源码和jar包全都托管到github上,由于工程下的target目录一般都不上传,这里需要修改一下.gitignore文件:
将原本的 target/ 改为 target/** 和 !target/*.jar
意思就是,git提交的是忽略target目录下的文件,但是target下的jar包除外。
在这里插入图片描述
2)Dockfile

FROM openjdk:8-jdk-alpine
VOLUME /tmp
COPY target/spring-docker-0.0.1-SNAPSHOT.jar spring-docker.jar
EXPOSE 8100
ENTRYPOINT ["java","-jar","/spring-docker.jar"]

3)maven(mvn clean package)打包后提交github
在这里插入图片描述
2. 阿里云容器镜像服务
1)开通服务后,先创建一个命名空间
在这里插入图片描述
2)创建仓库并设置代码源
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
3)设置仓库密码
在这里插入图片描述
4)点击镜像仓库进行管理,设置构建规则
在这里插入图片描述
当有代码变动提交github后,阿里云就会自动构建镜像,这种检测机制就是webhook机制
在这里插入图片描述
5)点击基本信息,阿里提供了仓库的操作指南
在这里插入图片描述
3. docker拉取镜像并运行
1)按照阿里提供的步骤设置阿里镜像加速器,由于我已经设置过docker官方提供的中国镜像加速地址,只需要把阿里的地址加上即可。
在这里插入图片描述

vim /etc/docker/daemon.json

在这里插入图片描述
2) 登录阿里仓库

sudo docker login --username=13xxxxxxxx registry.cn-beijing.aliyuncs.com

在这里插入图片描述
3) 拉取镜像

sudo docker pull registry.cn-beijing.aliyuncs.com/kevin4j/docker:1.0.0

在这里插入图片描述

4)运行镜像

docker run -d -p 8101:8100 --name spring-docker registry.cn-beijing.aliyuncs.com/kevin4j/docker:1.0.0

指令解释:
docker run [OPTIONS] IMAGE [COMMAND] [ARG…] 创建容器并运行
-d 后台执行
-p 端口映射 主机端口:容器端口
–name 指定容器名称

在这里插入图片描述
5)查看正在运行的容器

docker ps

在这里插入图片描述

6)可以参考docker的指令集对container和image进行管理
docker images 查看镜像
docker rmi [image_id] 删除镜像

docker container ls和docker ps 查看正在运行的容器
docker container ls --all 和docker ps -a 查看所有容器
docker stop [container_id] 停止容器
docker start [container_id] 启动容器
docker rm [container_id] 删除容器

猜你喜欢

转载自blog.csdn.net/guangcaiwudong/article/details/95493422
今日推荐