一般公司開發的image一般放在私有倉庫,不對外開放。
- 在阿里雲創建一個私有鏡像庫,並構建一個image:
registry.cn-shenzhen.aliyuncs.com/koza/test:latest
創建阿里雲鏡像私有倉庫和構建image方法參考:https://dev.aliyun.com/
- docker 拉取私有鏡像的方法:
a. 登陸私有倉庫
mac-temp:~ test$ docker login https://registry.cn-shenzhen.aliyuncs.com
Username: user-test
Password: xxxxxx
Login Succeeded
b. 拉取鏡像:
docker pull registry.cn-shenzhen.aliyuncs.com/koza/test:latest
c. 保存私有倉庫的登陸信息文件位置,如果不logout ,下次拉取鏡像就不再需要輸入賬號和密碼:
cat ~/.docker/config.json
這種方式,在kubernetes 中使用deployment定義一個pod,是不能下載鏡像成功的。
-
在kubernetes 中拉取私有倉庫:
a. 創建保存倉庫地址和密碼的secret:
kubectl create secret docker-registry registry-secret --docker-server=registry.cn-shenzhen.aliyuncs.com --docker-username=user-test --docker-password=xxxxxx --docker-email=xxx@xxx.com -n default
--docker-server: 倉庫地址
--docker-username: 倉庫登陸賬號
--docker-password: 倉庫登陸密碼
--docker-email: 郵件地址(選填)
-n 命名空間
b. 在deployment.yml加入拉取鏡像的密鑰:
spec:
serviceAccountName: test
imagePullSecrets:
- name: registry-secret
containers:
- name: test
image: registry.cn-shenzhen.aliyuncs.com/koza/test:latest
imagePullSecrets 定義拉取鏡像使用的secret。
參考:https://kubernetes.io/docs/concepts/containers/images/