由于网络原因,无法拉取Docker镜像,现在有两个解决方案
一种方案是在本地制作镜像后将其推送到私有镜像仓库,部署时从私有镜像仓库拉取并运行
另一种方案是将制作Docker镜像所需的基础镜像推送到私有镜像仓库 ,每次制作镜像的时候直接从私有镜像仓库中拉取
由于我已经编写了相关脚本,为减少改动量,我选择了第二个方案
准备工作
创建个人实例
先在阿里云中搜索容器镜像服务,选择个人实例
创建命名空间
选择私有
创建仓库
获取访问凭证
配置固定密码
登录到私有仓库
推送Docker镜像
根据文档,需要先登录,然后制作镜像,最后推送
登录和上面的一样,这里略过
制作镜像
按照上述文档的指引,依次执行命令,先制作镜像再进行推送
因为本地没有网络问题可以拉取镜像,就在本地拉取镜像然后推送到私有镜像仓库中去
- 执行
docker pull eclipse-temurin:8-jre
拉取镜像 - 执行
docker images
查看镜像ID
- 执行
docker tag f41f351ab5c0 registry.cn-guangzhou.aliyuncs.com/priveat/jdk8:latest
制作镜像 - 执行
docker push registry.cn-guangzhou.aliyuncs.com/priveat/jdk8:latest
推送Docker镜像到私有镜像仓库中
拉取镜像
在看一下文档,到这里已经很明了了,直接执行docker pull registry.cn-guangzhou.aliyuncs.com/priveat/jdk8:latest
就可以了
修改脚本
修改Dockerfile
我的Dockerfile中是这个拉不下来
根据上面的逻辑,把这里换成私有镜像仓库中的镜像就行,现在改成
服务器登录
以下是一个错误示例,显示了在未登录的情况下无法拉取镜像
登录之后就可以拉去下来了
另一种解决方案是在IDEA中将JAR包制作成镜像,直接推送到私有仓库。同时,也可以在IDEA中直接运行容器 。个人感觉没什么区别,本地还要连接线上服务器,有点不安全就没考虑