Docker&k8s常用的命令记录
一、Docker命令
1.查看docker版本及信息
docker version
docker info
2.docker命令帮助
docker --help
3.镜像仓库命令
以nexus私库镜像仓库为例,仓库地址如:192.168.56.1:5000。
##登陆
docker login 192.168.56.1:5000
##退出
docker logout 192.168.56.1:5000
##推送镜像到私库
docker push 192.168.56.1:5000/liu:latest
##下载镜像到本地
docker pull 192.168.56.1:5000/liu:latest
4.查看镜像列表
docker images
docker images -a
5.删除镜像
docker rmi 镜像名称/镜像ID
docker rmi c6b0863bc64f
6.搜索镜像
docker search 镜像名
docker search mysql
7.通过dockerfile构建镜像
#docker build -t 镜像名称 -f dockerFile名称 .
docker build -t sendi_kkfileview:latest -f Dockerfile_kkfileView .
8.通过后台运行镜像
####其中-p指定端映射
docker run -itd --privileged=true -p 8012:8012 sendi_kkfileview:latest /usr/sbin/init
#### --name指定名称
docker run -itd --name sendi_kkfileview --privileged=true -p 8012:8012 sendi_kkfileview:latest /usr/sbin/init
9.进入运行中容器
##c6b0863bc64f为容器id
docker exec -it fe4ccf746211 /bin/bash
10.在主机上操作执行容器中的shell命令
docker exec fe4ccf746211 /bin/sh -c "df -hl"
docker exec fe4ccf746211 /bin/sh -c "tail -f /opt/kkFileView-4.0.0/log/kkFileView.log"
11.主机与容器中文件互相拷贝
Usage: docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|-
docker cp [OPTIONS] SRC_PATH|- CONTAINER:DEST_PATH
Copy files/folders between a container and the local filesystem
主机中拷贝文件进容器:
docker cp startup.sh fe4ccf746211:/opt/kkFileView-4.0.0/bin/startup.sh
容器中文件拷贝到主机:
docker cp fe4ccf746211:/opt/kkFileView-4.0.0/bin/startup.sh /root/startup.sh
12.查看日志
## Usage: docker logs [OPTIONS] CONTAINER
Options:
--details Show extra details provided to logs
-f, --follow Follow log output
--since string Show logs since timestamp (e.g. 2013-01-02T13:23:37Z) or relative (e.g. 42m for 42 minutes)
-n, --tail string Number of lines to show from the end of the logs (default "all")
-t, --timestamps Show timestamps
--until string Show logs before a timestamp (e.g. 2013-01-02T13:23:37Z) or relative (e.g. 42m for 42 minutes)
##示例:
docker logs -f 042d30ec0500
13.将容器重新打包成镜像
有时我们需要基于运行中的容器,进行一些修改,比如增加一些文件进行,修改一些配置等,修改后的容器可以重新打包成镜像
Usage: docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
-a, --author string Author (e.g., "John Hannibal Smith <[email protected]>")
-c, --change list Apply Dockerfile instruction to the created image
-m, --message string Commit message
-p, --pause Pause container during commit (default true)
##示例:
docker commit -a "liu" -m "sendi_heketi" 2741ea603980 sendi_heketi:latest
14.删除容器
Usage: docker rm [OPTIONS] CONTAINER [CONTAINER...]
Remove one or more containers
Options:
-f, --force Force the removal of a running container (uses SIGKILL)
-l, --link Remove the specified link
-v, --volumes Remove anonymous volumes associated with the container
##示例:
docker rm c6b0863bc64f
15.挂载目录并启动容器
使用-v进行目录的挂载
docker run -v /home/data/mysqldata:/var/lib/mysql --name mysql -e MYSQL_ROOT_PASSWORD=123456 -p 13306:3306 -d mysql:5.6
16.启动停止及重启容器
docker start c6b0863bc64f
docker stop c6b0863bc64f
docker restart c6b0863bc64f
17.导出镜像到文件
docker save -o sendi_kkfileview.tar sendi_kkfileview:latest
18.从文件导入镜像
docker load -i sendi_kkfileview.tar
二、K8s命令
1.查看所有的nodes
#l查看节点状态信息
kubectl get nodes
kubectl get nodes -o wide
2.查看所有的pods
#l查看所有命名空间下的pods
kubectl get pods --all-namespaces
#kubectl get pods -n 命名空间
kubectl get pods -n liutest
#l可以查到更多信息(pod部署在哪个node上)
kubectl get pods -n liutest -o wide
3.查看所有的资源
查看所有的资源信息,包含pod、service、deployment、statefulset、replicaset等
#l查看所有
kubectl get all -n gzyxgoldcard -o wide
#l查看service
kubectl get svc --all-namespaces
#l查看deployment
kubectl get deployment --all-namespaces
#l查看资源描述
#kubectl describe 资源类型 资源名称 -n 命名空间
#examples:
kubectl describe namespace gzyxgoldcard
kubectl describe pod goldcardsystem-67ddbc47cb-fswvx -n gzyxgoldcard
4.帮助命令
帮助命令,可以显示出kubectl所有支持的命令摘要集合,
kubectl help
5.查看版本信息
kubectl version
6.查看POD运行日志
###
### kubectl logs pod名称 -n 命名空间
kubectl logs goldcardsystem-67ddbc47cb-fswvx -n gzyxgoldcard
kubectl logs -f goldcardsystem-67ddbc47cb-fswvx -n gzyxgoldcard
7.删除资源
#kubectl delete 资源类型 资源名称 -n 命令空间
#示例
kubectl delete pod goldcardsystem-67ddbc47cb-fswvx -n gzyxgoldcard
kubectl delete
8.扩容pod数量
kubectl scale deployment nginx --replicas=2 -n microservice
9.升级镜像
kubectl set image deployment nginx nginx=nginx:alpine -n microservice
10.自动伸缩相关
kubectl autoscale deployment nginx-c -n microservice --max=10 --cpu-percent=10 --min=1
kubectl get hpa -n microservice
11.通过文件部署
#kubectl apply -f 部署文件
示例:
kubectl apply -f mysql-deployment.yaml
12.通过文件删除部署
#kubectl delete -f 部署文件
kubectl delete -f mysql-deployment.yaml
13.进入k8s容器pod内部
#kubectl exec -it pod名称 -n 命令空间 -- /bin/bash
#examples,示例
kubectl exec -it goldcardsystem-67ddbc47cb-fswvx -n gzyxgoldcard -- /bin/bash
14.执行容器pod中的shell命令
#kubectl exec -it pod名称 -n 命令空间 -- shell命令
kubectl exec -it goldcardsystem-67ddbc47cb-fswvx -n gzyxgoldcard -- ls -hl
15.新建命名空间
#kubectl create namespace 命名空间名称
#examples,示例:
kubectl create namespace liutest