k8s下创建pod,与service&相关docker知识
通过对总体原理了解后,我们来做下具体应用布署的实践。通过yaml创建podapiVersion: v1kind: Podmetadata:name: mytomcatlabels:app: tomcat_label ----可以作为service找到它的标志spec:containers:- name: tomcatima...
通过对总体原理了解后,我们来做下具体应用布署的实践。
-
通过yaml创建pod
apiVersion: v1
kind: Pod
metadata:
name: mytomcat
labels:
app: tomcat_label ----可以作为service找到它的标志
spec:
containers:
- name: tomcat
image: dualvenregistry:5000/tomcat:v1
ports:
- containerPort: 8080
-
通过yaml创建Service
apiVersion: v1
kind: Service
metadata:
name: mytomcat-service
spec:
ports:
- port : 8081
nodePort : 8888
targetPort: 8080
protocol: TCP
selector:
app: tomcat_label
type: NodePort
-
port ,nodePort ,targetPort, containerPort
docker中的应用port,就是containerPort;
docker中通过 -P暴露出-expose里设定的端口,就会让它原封不动暴露出来;-p就可以手动指派。最后暴露出来的端口就是targetPort.
而service用于集群里服务的内访问端口,port.
最后,如果要独立暴露出来访问,就是nodePort
-
docker网络知识
安装Docker时,它会自动创建三个网络,bridge(创建容器默认连接到此网络)、 none 、host
host:容器将不会虚拟出自己的网卡,配置自己的IP等,而是使用宿主机的IP和端口。
Container:创建的容器不会创建自己的网卡,配置自己的IP,而是和一个指定的容器共享IP、端口范围。
None:该模式关闭了容器的网络功能。
Bridge:此模式会为每一个容器分配、设置IP等,并将容器连接到一个docker0虚拟网桥,通过docker0网桥以及Iptables nat表配置与宿主机通信。
-
dockerfile里的几个命令
RUN 指令通常用于安装应用和软件包。
RUN 在当前镜像的顶部执行命令,并通过创建新的镜像层。Dockerfile 中常常包含多个 RUN 指令。
RUN 有两种格式:
-
Shell 格式:RUN
-
Exec 格式:RUN ["executable", "param1", "param2"
CMD
CMD 指令允许用户指定容器的默认执行的命令。
此命令会在容器启动且 docker run 没有指定其他命令时运行。
如果 docker run 指定了其他命令,CMD 指定的默认命令将被忽略。
如果 Dockerfile 中有多个 CMD 指令,只有最后一个 CMD 有效。
-
Exec 格式:CMD ["executable","param1","param2"]
这是 CMD 的推荐格式。 -
CMD ["param1","param2"] 为 ENTRYPOINT 提供额外的参数,此时 ENTRYPOINT 必须使用 Exec 格式。
-
Shell 格式:CMD command param1 param2
ENTRYPOINT 指令可让容器以应用程序或者服务的形式运行。
ENTRYPOINT 看上去与 CMD 很像,它们都可以指定要执行的命令及其参数。不同的地方在于 ENTRYPOINT 不会被忽略,一定会被执行,即使运行 docker run 时指定了其他命令。
ENTRYPOINT 有两种格式:
-
Exec 格式:ENTRYPOINT ["executable", "param1", "param2"] 这是 ENTRYPOINT 的推荐格式。
-
Shell 格式:ENTRYPOINT command param1 param2
在为 ENTRYPOINT 选择格式时必须小心,因为这两种格式的效果差别很大。
/mydata/storage_data/storage001:/fastdfs/store_path --net=host -e TRACKER_SERVER=127.0.0.1:22122 season/fastdfs storage
这里面注意-e 传递参数进入到entrypoint.sh里可以使用;storage也只是作为entrypoint接收到的参数使用。
-
对已经生成的docker进行运行参数的修改
必须先systemctl stop docker(不然你即使修改了下述,也会被系统改回来)
然后更改/var/lib/docker/container/******/config****.or host***
systemctl start docker
docker start tracker
更多推荐
所有评论(0)