前提:有云仓用于存已下载的镜像(如harbor),或者arm架构的机子能连外网
1.用于下载镜像的机子需配置好源,
目前(2023.9.23),自己能用的源添加步骤:
运行 sudo vim /etc/docker/daemon.json
来创建daemon.json文件,然后将以下内容复制到daemon.json
文件中:
{
"registry-mirrors": [
"http://hub-mirror.c.163.com",
"https://dockerpull.com",
"https://docker.anyhub.us.kg",
"https://docker.awsl9527.cn"
]
}
添加一个可用的源能解决拉取镜像中很大一部分问题,如拉取超时等;
2.如果使用云仓,需在daemon.json
文件中添加harbor的IP
如下,在insecure-registries中添加自己harbor地址的IP,具体按照自己的情况修改
{
"registry-mirrors": [
"http://hub-mirror.c.163.com",
"https://dockerpull.com",
"https://docker.anyhub.us.kg",
"https://docker.awsl9527.cn"
],
"insecure-registries": ["192.182.xx.xx:xxx"]
}
3. 首次添加云仓需要再docker中配置
具体操作: 实行下列的代码,其中<ip:端口号>为上述harbor地址的IP和端口号
docker login <ip:端口号>
执行这条命令后登录harbor中的账号密码,即可在docker连接harbor,便可实现将本地的镜像上传到云仓
4.从docker hub下载arm镜像
docker hub网址为:https://hub.docker.com/
需要提前知道的事情:
1.需要什么镜像
2.对应镜像是什么版本
解决:
1.查看dify需要的镜像:
cd dify/docker
vim docker-compose.yaml
从以上文件中找到需要的镜像,此处以Redis为例:
images即为镜像名称,redis:6-alpine分别对应,Redis为镜像名称,6-alpine为版本号
得到的最终拉取镜像为:docker pull redis:6-alpine@sha256:9b10542176ca7a250c4d020310d45bc8be86bcb9b2c218067ac1a0223e6c1aad;
记得两步复制中间加上@,即可拉取arm镜像
4.注意事项
若需要x86转arm,一定要注意镜像和对应版本号都要一致,否则可能存在一些不知名错误