实战篇 - 镜像打包
在之前的操作中我已经在docker中生成了镜像文件。这次的实战篇中会描述一下,如何进行镜像的上传及镜像上传之后minikube是如何进行部署运行的。
1、登录docker
C:\Users\smy1102>docker login
Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one.
Username: halo26812
Password:
Login Succeeded
Logging in with your password grants your terminal complete access to your account.
For better security, log in with a limited-privilege personal access token. Learn more at https://docs.docker.com/go/access-tokens/
在控制台,执行“docker login”。这个意思是登录docker镜像服务器,服务器地址:Docker Hub。输入用户名密码之后,会提示“Login Succeeded”,说明登录成功。我们可以直接上传镜像的操作了。如果没有创建账户,还需要创建一下账户和相关的镜像仓库等。“如果你有私服的话,可以上传镜像到私服上面。推送dockerhub有一个好处就是不需要创建私服,创建私服有一个好处就是上传镜像应该会比dockerhub快,节约时间”
2、push image
C:\Users\smy1102>docker push halo26812/docker-demo:0.0.1
The push refers to repository [docker.io/halo26812/docker-demo]
bb514acac671: Pushed
ceaf9e1ebef5: Mounted from library/openjdk
9b9b7f3d56a0: Mounted from library/openjdk
f1b5933fe4b5: Mounted from library/openjdk
0.0.1: digest: sha256:3707bbb5450b69e9ad009de85d46f2b676b6e9795ebf79fc9ae9ed79e17b7e04 size: 1159
上一篇我们已经把image打包到docker中,我们可以执行“docker push”把镜像推送到镜像仓库。推送镜像仓库之后, 需要在镜像仓库查看是否镜像推送成功。
3、在镜像仓库查看镜像
我们进入镜像仓库,找到Tags and Scans 发现有一个0.0.1的tag,这个是我刚才推送上去的镜像,说明已经推送成功。这个时候我们就可以在minikube中部署了。
4、部署
在“minikube 快速使用入门 - 部署 - 3”中,我部署提及了两个命令,一个是部署,一个是设置端口号。
kubectl create deployment hello-minikube --image=cilium/echoserver
kubectl expose deployment hello-minikube --type=NodePort --port=80
可以使用以上这两个命令进行示例的操作。该怎么操作呢?首先可以修改一下应用名及镜像地址,因为我们的应用的名称变了,镜像的地址也变了,还有相关的端口号都变了。现在我要重写一下这两条命令。
kubectl create deployment docker-demo --image=halo26812/docker-demo:0.0.1
kubectl expose deployment docker-demo --type=NodePort --port=8080
重写之后的命令如上,然后需要在控制台验证以上命令是否能正常部署。查看一下执行效果,如下
C:\Users\smy1102>kubectl create deployment docker-demo --image=halo26812/docker-demo:0.0.1
deployment.apps/docker-demo created
C:\Users\smy1102>kubectl expose deployment docker-demo --type=NodePort --port=8080
service/docker-demo exposed
显示执行成功,这个时候应该启动服务进行访问操作,在“minikube 实战篇 - 镜像打包部署 - 1”中的最后,在浏览器的地址栏中访问“http://127.0.0.1:3000/hello”地址,显示“hello world”。我们这次也启动一下minikube查看是否会显示hello world信息。
5、执行minikube service 启动项目
C:\Users\smy1102>minikube service docker-demo
|-----------|-------------|-------------|---------------------------|
| NAMESPACE | NAME | TARGET PORT | URL |
|-----------|-------------|-------------|---------------------------|
| default | docker-demo | 8080 | http://192.168.49.2:31519 |
|-----------|-------------|-------------|---------------------------|
* Starting tunnel for service docker-demo.
|-----------|-------------|-------------|------------------------|
| NAMESPACE | NAME | TARGET PORT | URL |
|-----------|-------------|-------------|------------------------|
| default | docker-demo | | http://127.0.0.1:51146 |
|-----------|-------------|-------------|------------------------|
* 正通过默认浏览器打开服务 default/docker-demo...
Active code page: 65001
! Because you are using a Docker driver on windows, the terminal needs to be open to run it.
说明已经启动成功,上面显示本地访问地址为“http://127.0.0.1:51146”,我们在“minikube 实战篇 - 镜像打包部署 - 1”中显示“hello world”的地址路径是“http://127.0.0.1:51146/hello”,执行一下这个路径试试看看是否会出现“hello world”,如下:
已经出现hello world说明启动成功。