第一部分:docker
常用docker命令:
1、查看docker所有鏡像
docker images 或者docker image ls
2、容器運行有幾種狀態(tài)
運行(Up)、退出(Exited)
3、如何運行一個容器
方式1:交互式方式
①退出容器后,容器狀態(tài)是Exited
docker container run -it 鏡像ID /bin/sh
②退出容器后,容器狀態(tài)是Up,結(jié)束容器時:Ctrl+P,Q
docker container run -it 鏡像ID /bin/sh
方式2:守護(hù)進(jìn)程方式
docker container run -d 鏡像ID /bin/sh
5、守護(hù)式容器啟動與關(guān)閉
docker container start 容器ID
交互式容器方法多一個-i,docker container start -i 容器ID
docker container stop 容器ID
6、守護(hù)式容器子進(jìn)程進(jìn)入方法
docker container exec -it 容器ID /bin/sh
說明:此方法退出不影響守護(hù)式容器運行狀態(tài)
7、容器端口映射
核心:-p(宿主機(jī)端口:容器端口)
docker container run -d -p 8080:80 --name='n2' nginx:1.14
docker container run -d -p 10.0.0.100:8081:80 --name='n3' nginx:1.14
8、容器數(shù)據(jù)卷
核心:-v(宿主機(jī)目錄:容器目錄)
docker container run -d --name="nginx_3" -p 83:80 -v /opt/html:/usr/share/nginx/html nginx:1.15
9、宿主機(jī)和容器文件復(fù)制
docker container cp 容器ID:文件起點 文件終點
說明:文件起點在容器上,文件終點在宿主機(jī)上,即使是退出的容器也可以拷貝
當(dāng)然也可以反過來
docker container cp == docker cp
10、查看正在運行的容器
docker container ls
或者docker ps
11、定制鏡像
方法1:docker commit 容器名字或容器ID 鏡像名字
方法2:dockerFile
FROM:初始容器
RUN:運行Shell命令,最后用&&符號寫成一串,否則會生成很多中間容器
COPY:從dockerFile所在目錄拷貝文件到容器指定目錄下
ADD:和COPY差不多,但是支持對.tar*包的自動解壓,同時也支持url拷貝,源地址是url??傊?,ADD是COPY的超集,COPY是ADD的子集。
EXPOSE:對外暴露端口
VOLUME:數(shù)據(jù)卷
ENV:設(shè)置變量
CMD:容器啟動的根命令
ENTRYPOINT:和CMD類似,但是書寫ENTRYPOINT后可以防止根命令被替換
12、鏡像→鏡像
docker build -t ImageName:TagName dir
dir只是一個目錄
第二部分:k8s
1、查看所有命名空間的pod,怎么命令查看
kubectl get pods --all-namespaces
默認(rèn)查看的命名空間是deafult,即
kubectl get pods
等價于
kubectl get pods -n default
2、什么是命名空間(ns或namespace)
目前的認(rèn)識:RBAC(基于角色的訪問控制)使用,先創(chuàng)建ns,然后在ns中創(chuàng)建pod,創(chuàng)建一個角色,然后進(jìn)行角色綁定,使用證書識別身份。
3、如何下線一個node節(jié)點
kubectl cordon k8s-node1 #禁止調(diào)度
kubectl uncordon k8s-node1 #恢復(fù)調(diào)度
4、如何進(jìn)入一個pod節(jié)點
kubectl exec -it pod節(jié)點名稱 /bin/sh
5、kubectl get pod和kubectl describe pod
前者是查看pod的簡略信息,如果前者命令執(zhí)行發(fā)現(xiàn)錯誤,例如鏡像拉取沒有成功,需要用后者查看詳細(xì)信息,后者輸出內(nèi)容很多(命名空間、容器信息、鏡像信息等)。