I need to run this Docker command in Kubernetes:
docker run -p 8080:8080 sagemath/sagemath sage -notebook
I can map everything across except "-notebook" - does anyone know how to do that?
Here is what I have so far, and of course it doesn't work since "-notebook" is not translated over to kubectl correctly:
kubectl run --image=sagemath/sagemath sage --port=8080 --type=LoadBalancer -notebook
When you define pod spec for your sage you can define both
command
and anargs
array, so for you it would be likefor launching with
kubectl run
so try running with
--
delimiter :kubectl run --image=sagemath/sagemath --port=8080 --type=LoadBalancer -- sage -notebook
--
does the trick. It means that kubectl wouldn't parse as kubectl arguments the following strings that start with-
So you run that container executing:
And if you want a public IP on GKE, you should expose the container executing:
You can get the public IP running
kubectl get service
in the rowsage
at the column EXTERNAL-IPFor such cases
--command=false If true and extra arguments are present, use them as the 'command' field in the container, rather than the 'args' field which is the default.