一、 docker 相关使用的命令
# 1、docker创建镜像
docker build -t <镜像名>:<tag>
# 2、docker删除本地镜像
docker rmi -f <镜像名>:<tag>
# 3、docker拉取远程镜像:
docker pull 镜像地址
# 4、docker上传镜像到远程:
docker push <镜像名>:<tag>
# 5、docker 将本地镜像image打成tar包【默认保存在当前目录】:
docker save -o <tar包名>.tar <镜像名>:<tag>
# 6、将容器保存成镜像:
docker commit <容器id> <镜像名>:<tag>
# 7、docekr将tar包解压成镜像:
docker load -i <tar包名>.tar
# 8、docker 通过镜像起容器:
docker run -itd -p <本地端口>:<容器端口> <镜像名>:<tag>
# 9、配置docker连接远程镜像:
修改地址映射:/etc/hosts
更改docker的映射:/etc/docker/daemon.json
# 10、登录远程:
docker login 远程地址
二、k8s拉取镜像报身份认证错误解决:
拉取镜像报错:no basic auth credentials
原因:简单说就是使用docker进行了身份验证,所有本机的docker才能从ecr中拉取镜像。
而docker和k8s集群的身份验证是不同步的,所以k8s并没有这个身份验证信息。
解决:在k8s服务器上使用已存在的docker创建secret
# step1:创建一个secret
kubectl create secret generic regcred \
--from-file=.dockerconfigjson=/root/.docker/config.json \
--type=kubernetes.io/dockerconfigjson
# step2:在.yaml中添加:
spec:
imagePullSecrets:
- name: regcred