我试图基于本地计算机(而不是公共注册表)的容器映像创建容器。我正在将pod的状态检索为ImagePullBackoff Docker文件
FROM tensorflow/tensorflow:latest-py3
RUN pip install -q keras==2.3.1
RUN pip install pillow
RUN mkdir -p /app/src
WORKDIR /app/src
COPY . ./
EXPOSE 31700
CMD ["python", "test.py"]
构建docker映像
docker build -t tensor-keras .
在不使用Yaml文件的情况下创建pod
kubectl run server --image=tensor-keras:latest
Yaml文件
apiVersion: v1
kind: Pod
metadata:
name: server
labels:
app: server
spec:
containers:
- name: tensor-keras
image: tensor-keras:latest
ports:
- containerPort: 31700
我正在将Pod的状态更改为
NAME READY STATUS RESTARTS AGE
server 0/1 ImagePullBackOff 0 27m
非常感谢您的帮助
答案 0 :(得分:2)
默认情况下,Kubernetes将尝试从远程容器存储库中提取图像。在您的情况下,您的映像名称没有容器存储库URL的前缀,因此在大多数情况下,它将默认名称设置为Docker Hub。
imagePullPolicy
字段的值是什么?对于您的用例,应将其设置为Never
以使用本地图像。
您正在使用哪个工具来运行Kubernetes实例?
kind load docker-image <tensor-keras:latest>
将图像加载到cluser中imagePullPolicy
设置为Never
,则使用本地图像应该是开箱即用的