用 alphine 镜像的一些常用技巧:
会随时增加:
一、修改源,用国外的源非常慢,替换成国内的中科大源
1sed -i 's/dl-cdn.alpinelinux.org/mirrors.ustc.edu.cn/g' /etc/apk/repositories
二、更新apk库
1apk update
三、安装软件
1#安装telnet
2apk add busybox-extras
3
4#安装curl
5apk add curl
6
7#安装时间组件
8apk add tzdata
9
10#更新并且安装软件
11apk add --update tzdata
四、进入容器一步执行换源、更新、安装
1sed -i 's/dl-cdn.alpinelinux.org/mirrors.ustc.edu.cn/g' /etc/apk/repositories && apk update && apk add curl && apk add busybox-extras
五、解决缺少glibc库的问题
如果不ln会报错,原因是缺少glibc库!!!解决方法如下:
1RUN mkdir /lib64 && \
2 ln -s /lib/libc.musl-x86_64.so.1 /lib64/ld-linux-x86-64.so.2
六、一些调试的CMD
1CMD ["/bin/bash", "-c", "while true; do echo hi; sleep 10; done"]
2
3kubectl run curlpod --image=radial/busyboxplus:curl --command -- /bin/sh -c "while true; do echo hi; sleep 10; done"
七、pod的等待技巧
这儿里启动正式的pod之前,先临时起了两个容器等待其他服务的完成
1 containers:
2 - name: myapp-container
3 image: busybox
4 command: ['sh', '-c', 'echo The app is running! && sleep 3600']
5 initContainers:
6 - name: init-myservice
7 image: busybox
8 command: ['sh', '-c', 'until nslookup myservice; do echo waiting for myservice; sleep 2; done;']
9 - name: init-mydb
10 image: busybox
11 command: ['sh', '-c', 'until nslookup mydb; do echo waiting for mydb; sleep 2; done;']