1. Docker
1.1 首先需要安装 Docker
1.2 运行 Docker 命令
1
| docker run busybox echo "Hello world"
|
运行镜像
1
| docker run <image>:<tag>
|
- Docker 支持同一镜像的多个版本
- 每个版本必须有唯一的 tag 名
- 当引用镜像没有显示指定 tag 的时候,Docker 会默认指定 tag 为 latest
1.3 为镜像创建 Dockerfile
1.4 构建容器镜像
列出本地存储的镜像
1.5 运行容器镜像
1
| docker run --name kubia-container -p 8080:8080 -d kubia
|
- –name Assign a name to the container 命令可以为容器设置一个名字
- -p Publish all exposed ports to random ports 本机的 8080 端口会被映射到容器内的 8080 端口
- -d Run container in background and print container ID 在后台运行
列出所有运行中的容器
docker ps 只会展示容器的大部分基础信息。可以使用 docker inspect 查看更多的信息
1
| docker inspect [OPTIONS] NAME|ID [NAME|ID...]
|
1.6 在已有的容器内部运行 shell
镜像里需要有可用的 shell 二进制可执行文件
1
| docker exec -it kubia-container /bin/bash
|
-it 选项是下面两个选项的简写
- -i,确保标准输入流保持开放。需要在 shell 中输入命令
- -t,分配一个伪终端(TTY)
列出所有进程
1.7 停止和删除容器
停止
1
| docker stop kubia-container
|
删除
1
| docker rm kubia-container
|
1.8 向镜像仓库推送镜像
这个命令不会重命名标签,而是给同一个镜像创建一个额外的标签
1
2
3
| docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
docker tag kubia wyyl1/kubia
|
向 Docker Hub 推送镜像
1
| docker push wyyl1/kubia
|
推送成功后,任何人都可以使用
1
2
3
| docker run wyyl1/kubia
docker run -p 8080:8080 -d luksa/kubia
|
2. 用 Minikube 运行一个本地单节点 Kubernetes 集群
minikube start
下载不到镜像时推荐方案:
- 设置 Docker 代理
- 设置 Minikube 代理
官方文档 Proxies and VPNs
可尝试方案
国内环境启动可以尝试(摘自:
minikube国内镜像拉取问题处理(2021年最简单的方法))
1
| minikube start --image-mirror-country='cn' --image-repository='registry.cn-hangzhou.aliyuncs.com/google_containers'
|
查看具体说明
安装 Kubernets 客户端(kubectl)
展示集群信息
遇到奇怪的问题时,尝试删除 minikube 后重试
1
2
| minikube delete
rm -rf ~/.minikube
|
进入 Minikube VM 内部命令
3. 在 Kubernetes 上运行第一个应用
kubectl run 命令部署程序
1
| kubectl run kubia --image=luksa/kubia --port=8080
|
- –image=luksa/kubia:指定要运行的容器镜像
- –port=8080:告诉 Kubernetes 应用正在监听 8080 端口
1
| kubectl expose deployment kubia --type=LoadBalancer --port=8080 --name=kubia-http
|