1. Docker 相关命令
1.1 Docker 服务相关命令
- 启动 Docker 服务
systemctl start docker
- 停止 Docker 服务
systemctl stop docker
- 重启 Docker 服务
systemctl restart docker
- 设置开机启动 Docker 服务
systemctl enable docker
- 查看 Docker 服务状态
systemctl status docker
1.2 镜像相关命令
- 查看本地的镜像信息
docker images
- 从镜像仓库中拉取或者更新指定镜像(默认的镜像仓库是官方的 Docker Hub)
docker pull NAME[:TAG]
- 从镜像仓库查找镜像
docker search NAME
- 根据本地 Dockerfile 文件,构建镜像
# docker build -t 镜像名:版本号 . 注意最后边的点 . 表示当前目录
docker build -t my_image:1.0 .
- 删除本地镜像
# docker rmi 镜像明:版本号
docker rmi mysql:5.7
- 导入镜像
# docker load -i 指定要导入的镜像压缩包文件名
docker load -i image.tar
- 导出镜像
# docker save -o 导出的镜像压缩包的文件名 要导出的镜像名:版本号
docker save -o image.tar target_image:tag
1.3 容器相关命令
- 创建容器
docker run -d --name=my_container -p 8080:8080 tomcat:latest
# 常用参数列表
# -d: 后台运行容器,并返回容器 ID;
# -p: 指定端口映射,格式为:主机(宿主)端口:容器端口;
# -i: 以交互模式运行容器,通常与 -t 同时使用;
# -t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
# --name=my_container: 为容器指定一个名称;
# --dns 8.8.8.8: 指定容器使用的 DNS 服务器,默认和宿主一致;
- 查看容器列表
# 查看正在运行的容器列表
docker ps
# 查看最近一次创建的容器
docker ps -l
# 查看正在运行的容器 ID 列表
docker ps -q
# 查看全部容器(包括已经停止的容器)
docker ps -a
# 查看全部容器 ID 列表
docker ps -aq
- 停止运行的容器
# 使用容器名停止
docker stop my_container
# 使用容器 ID 停止
docker stop container_id
# 使用容器 ID 停止多个正在运行的容器
ps
- 启动已停止的容器
# 容器名
docker start my_container
# 容器 ID
docker start container_id
# 使用容器 ID 启动多个已停止的容器
docker start `docker ps -aq`
- 删除容器
# 用容器名删除
docker rm my_container
# 用容器 ID 删除
docker rm container_id
# 删除多个未运行的容器, 运行中的无法删除
docker rm `docker ps -aq`
- 进入容器(正在运行的容器才可以进入)
# 使用容器名
docker exec -it my_container /bin/bash
# 使用容器 ID
docker exec -it container_id /bin/bash
- 查看容器信息
# 容器名
docker inspect my_container
# 容器 ID
docker inspect container_id
2. kubernetes 相关命令
- 获取资源信息
# 查看所有的资源信息
kubectl get all
# 查看 pod 列表
kubectl get pod
# 显示 pod 节点的标签信息
kubectl get pod --show-labels
# 根据指定标签匹配到具体的 pod
kubectl get pods -l app=example
# 查看 node 节点列表
kubectl get node
# 显示 node 节点的标签信息
kubectl get node --show-labels
# 查看 pod 详细信息,也就是可以查看pod具体运行在哪个节点上(ip地址信息)
kubectl get pod -o wide
# 查看服务的详细信息,显示了服务名称,类型,集群 ip,端口,时间等信息
kubectl get svc
[root@master ~]# kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
go-service NodePort 10.10.10.247 <none> 8089:33702/TCP 29m
java-service NodePort 10.10.10.248 <none> 8082:32823/TCP 5h17m
kubernetes ClusterIP 10.10.10.1 <none> 443/TCP 5d16h
nginx-service NodePort 10.10.10.146 <none> 88:34823/TCP 2d19h
# 查看命名空间
kubectl get ns
# 查看所有 pod 所属的命名空间
kubectl get pod --all-namespaces
# 查看所有 pod 所属的命名空间并且查看都在哪些节点上运行
kubectl get pod --all-namespaces -o wide
# 查看目前所有的 replica set,显示了所有的 pod 的副本数,以及他们的可用数量以及状态等信息
kubectl get rs
[root@master ~]# kubectl get rs
NAME DESIRED CURRENT READY AGE
go-deployment-58c76f7d5c 1 1 1 32m
java-deployment-76889f56c5 1 1 1 5h21m
nginx-deployment-58d6d6ccb8 3 3 3 2d19h
# 查看目前所有的 deployment
kubectl get deployment
[root@master ~]# kubectl get deployment
NAME READY UP-TO-DATE AVAILABLE AGE
go-deployment 1/1 1 1 34m
java-deployment 1/1 1 1 5h23m
nginx-deployment 3/3 3 3 2d19h
# 查看已经部署了的所有应用,可以看到容器,以及容器所用的镜像,标签等信息
kubectl get deploy -o wide
[root@master bin]# kubectl get deploy -o wide
NAME READY UP-TO-DATE AVAILABLE AGE CONTAINERS IMAGES SELECTOR
nginx 3/3 3 3 16m nginx nginx:1.10 app=example
- 根据配置文件创建资源
# 根据配置文件,创建 Deployment 和 Service 资源
kubectl create -f javak8s-deployment.yaml
kubectl create -f javak8s-service.yaml
- 根据配置文件启动资源
kubectl apply -f javak8s-deployment.yaml
kubectl apply -f javak8s-service.yaml
- Pod 文件简单模板
# javak8s-deployment.yaml
apiVersion: v1
kind: Pod # 创建的资源类型 pod
metadata:
name: ember-app # 资源名称
labels:
app: ember-app # pod 标签 用在 service 中进行筛选
spec:
containers:
- image: zhyq0826/nginx:k8s-ember-app # 镜像名称 来自 docker hub 公开镜像 / 本地镜像
name: ember-app # pod container 的名称
ports:
- containerPort: 80 # 容器监控 port
- 删除资源
# 根据 yaml 文件删除对应的资源,但是 yaml 文件并不会被删除,这样更加高效
kubectl delete -f javak8s-deployment.yaml
kubectl delete -f javak8s-service.yaml
# 也可以通过具体的资源名称来进行删除,使用这个删除资源,需要同时删除pod和service资源才行
kubectl delete 具体的资源名称
- 在集群中分创建并运行一个或多个容器镜像
# 基本语法
run NAME --image=image [--env="key=value"] [--port=port] [--replicas=replicas] [--dry-run=bool] [--overrides=inline-json] [--command] -- [COMMAND] [args...]
# 示例,运行一个名称为nginx,副本数为3,标签为app=example,镜像为nginx:1.10,端口为80的容器实例
kubectl run nginx --replicas=3 --labels="app=example" --image=nginx:1.10 --port=80
3. KubeSphere 简单使用
KubeSphere 上最常用的就是「工作负载的部署」。也就是 「Docker 容器的部署」,具体步骤如下:
步骤 1:打开仪表板
打开 KubeSphere Web 管理页面,转到项目的「应用负载」,选择「工作负载」,点击右侧「部署」选项卡下面的「创建」按钮。
步骤 2:输入基本信息
为该部署指定一个名称(例如 demo-deployment
),选择一个项目(默认选 default
),点击「下一步」继续。
步骤 3:设置容器组
有两种方式,第一种是根据 YAML 配置文件设置容器。
第一种方式:启用右上角的「编辑 YAML」,查看 YAML 格式的部署清单文件。可以直接编辑清单文件进行创建部署,这一步跟kubernetes 相关命令中的「根据配置文件创建资源」差不多。
第二种方式:
- 设置镜像前,请点击「容器组副本数量」中的 或 来定义容器组的副本数量,该参数显示在清单文件中的
.spec.replicas
字段。 - 点击「添加容器」。
- 输入镜像名称,该镜像可以来自公共 Docker Hub,也可以来自您指定的「私有仓库」。例如,在搜索栏输入
nginx
然后按「回车键」。- 如果想使用私有镜像仓库,应该先通过「配置」下面的「保密字典」,参考:创建镜像仓库保密字典。
- 根据需求设置 CPU 和内存的资源请求和限制。
- 点击「使用默认端口」以自动填充「端口设置」,或者自定义「协议」、「名称」和「容器端口」。
- 在下拉列表中选择镜像拉取策略。有关更多信息,参考:容器镜像设置中关于镜像拉取策略的内容。
- 对于其他设置(「健康检查」、「启动命令」、「环境变量」、「容器安全上下文」以及「同步主机时区」),也可以在仪表板上配置。参考:容器组设置 中对这些属性的详细说明。操作完成后,点击右下角的 ✓ 继续。
- 在下拉菜单中选择更新策略。建议您选择「滚动更新」。参考:更新策略。
- 选择容器组调度规则。有关更多信息,参考:容器组调度规则。
- 完成容器组设置后,点击「下一步」继续。
步骤 4:挂载持久卷
- 直接添加持久卷或者挂载配置字典或保密字典,或者直接点击「下一步」跳过该步骤。参考:持久卷声明。
步骤 5:配置高级设置
可以在该部分设置节点调度策略并添加元数据。完成操作后,点击「创建」完成创建部署的整个流程。
- 选择节点:分配容器组副本在指定节点上运行。该参数在
nodeSelector
字段中指定。 - 添加元数据:为资源进行额外的元数据设置,例如「标签」和「注解」。
步骤 6:查看部署详情
- 部署创建后会显示在列表中。您可以点击右边的 ,在弹出菜单中选择操作,修改您的部署。
- 编辑信息:查看并编辑基本信息。
- 编辑 YAML:查看、上传、下载或者更新 YAML 文件。
- 重新创建:重新创建该部署。
- 删除:删除该部署。
- 点击部署名称可以进入它的详情页面。
- 点击「更多操作」,显示您可以对该部署进行的操作。
- 回退:选择要回退的版本。
- 编辑自动扩缩:根据 CPU 和内存使用情况自动伸缩副本。如果 CPU 和内存都已指定,则在满足任一条件时会添加或删除副本。
- 编辑设置:配置更新策略、容器和存储。
- 编辑 YAML:查看、上传、下载或者更新 YAML 文件。
- 重新创建:重新创建该部署。
- 删除:删除该部署并返回部署列表页面。
- 点击「资源状态」选项卡,查看该部署的端口和容器组信息。
- 副本运行状态:点击 或 来增加或减少容器组副本数量。
- 容器组:
- 容器组列表中显示了容器组详情(运行状态、节点、容器组 IP 以及资源使用情况)。
- 您可以点击容器组条目查看容器信息。
- 点击容器日志图标查看容器的输出日志。
- 您可以点击容器组名称查看容器组详情页面。
评论(没有评论)