docker:
doker ps -a 查看所有docker,包括已经停止运行的
docker rm -f `docker ps -a -q` 删除所有docker
docker cp file_name (docker_name):/home/ 主机和docker之间互相拷贝文件,位置可颠倒
若docker安装了scp scp hello.txt root@192.168.12.3:/home 效果一样。
docker start 已停止的容器名
docker load -i 镜像包.tar; //得到loaded image ID
docker run -idt --name my_docker -v /svn:/svn +loaded image ID; //运行镜像,--name指定docker名 -v 设置映射
docker exec -it my_docker /bin/bash; //进入到docker中,exit 退出
docker system prune -a; //删除停止的容器
docker 命令详解 https://www.runoob.com/docker/docker-tutorial.html
k8s操作和docker 差不多:
kubectl get pod //获取容器名 -o wide 可以输出更多信息
kubectl exec -it pod_name bash //运行pod
kubectl get deployment //输出所有deployment ,-o wide输出更多
kubectl edit deployment +deployment_name //编辑容器环境变量 修改replicas: 控制pod副本数,注意:不能使用tab键,否则保存退出时会报错,不能保存,且空格键一定要对齐
kubectl delete pod +pod_name 删除pod
kubectl cp //同docker cp
kubectl logs -f pod_name //若设置了日志可以查看日志
一、基础概念
container:容器,就是docker容器的概念
pod:一组容器,是kubernetes的一个基本操作单位,一个pod中的所有容器共享IP,共享存储卷
deployment:可以看做是rc的升级版,可以更好的部署&编排无状态pod
statefulSet:用做有状态节点的部署(比如数据库)
service:可以理解为微服务架构中的微服务,提供了域名,解决服务路由并做负载均衡,管理端口映射关系,承担了服务发现功能
二、基本操作
1、获取所有pod/deployment/statefulSet/service
kubectrl get pod/deployment/statefulSet/service
2、进入容器,对于只有一个容器的pod,可以省略-c [container-name]
kubectl exec -it [pod-name] -c [container-name] /bin/bash
3、查看日志,对于只有一个容器的pod,可以省略 [container-name]
kubectl logs -f [pod-name] [container-name]
4、文件拷贝,对于只有一个容器的pod,可以省略 [container-name]
kubectl cp [file-path] [pod-name]:[file-path] -c [container-name]
kubectl cp [pod-name]:[file-path] [file-path] -c [container-name]
从容器内拷贝到容器外时会报错,但实际已经成功,错误可忽略
5、替换镜像(版本号不同)
- 将tar拷贝到服务器
- docker load -i [image-name.tar]
- docker push [image-name:version]
- kubectl set image [deployment-name] [container-name]=[image-name:version]
6、替换镜像(版本号相同)
- 前三步不变
- kubectl delete pod [pod-name]
7、修改副本数量
kubectl scale --replicas=n deployment/[deployment-name]
kubectl scale --replicas=n statefulSet/[statefulSet-name]
8、修改deployment/statefulSet/service
kubectl edit deployment/statefulSet/service [deployment/statefulSet/service-name]
如果对kubernetes不熟,不建议这样修改,如需修改,请找人确认后再改
9、暂时不涉及命名空间,如果后续区分命名空间,命令后加 -n [namespace]