wdp项目docker及k8s之CI&CD实践
# docker管理
# portainer安装
sudo mkdir -p /home/wdp-docker-bak/portainer && sudo chown -R 1000:1000 /home/wdp-docker-bak/portainer
docker run -d -p 9988:9000 \
--restart=always \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /home/wdp-docker-bak/portainer:/data \
--name wdp-portainer \
docker.io/portainer/portainer-ce
1
2
3
4
5
6
7
2
3
4
5
6
7
# docker加速
# 腾讯云
suodo vim /etc/docker/daemon.json
; 如为默认 {}内容则直接替换即可
注意: 一定要保证该文件符合 json 规范,否则 Docker 将不能启动。
{
"registry-mirrors": [
"https://mirror.ccs.tencentyun.com"
]
}
1
2
3
4
5
2
3
4
5
重启docker后查询pull即可
systemctl restart docker
1
# DockerHub&JKS
# docker-registry
# 安装
mkdir -p /home/wdp-docker-bak/registry && chown -R 1000:1000 /home/wdp-docker-bak/registry
docker run -d -p 5000:5000 -v /home/wdp-docker-bak/registry:/var/lib/registry --restart always --name wdp-registry registry:2.7.1
1
2
2
# 相关操作
#拉取公共的
docker pull hello-world
#重命名本地镜像名字
docker tag hello-world:latest 10.45.xxx.116:5000/hello-world:latest
#推送本地镜像到私库
docker push 10.45.xxx.116:5000/hello-world:latest
#可能会报错;
systemctl restart docker
docker push 10.45.xxx.116:5000/hello-world:latest
curl -XGET http://10.45.xxx.116:5000/v2/_catalog
# 若成功会返回以下值
#{"repositories":["hello-world","nginxtest"]}
curl http://10.45.xxx.116:5000/v2/hello-world/tags/list
#{"name":"hello-world","tags":["latest"]}
#也可通浏览器直接访问
http://10.45.xxx.116:5000/v2/_catalog
http://10.45.xxx.116:5000/v2/xxx/tags/list
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
移除相关命令:
docker container stop wdp-registry && docker container rm -v wdp-registry
1
如果需要删除私有仓库中的镜像,有一个简单的方法在运行registry时挂载在本地的目录[/home/wdp-docker-bak/registry]中,找到指定的镜像存放的目录来进行删除。
cd /home/wdp-docker-bak/registry
ls
blobs repositories
cd repositories/
ls
nginx
rm -rf nginx/
1
2
3
4
5
6
7
2
3
4
5
6
7
删除后再次查看私有仓库中的镜像是否还存在:
curl http://172.16.1.xxx:5000/v2/_catalog
{"repositories":[]}
1
2
2
备份重新上传其他必要镜像:
docker push 10.45.xx.116:5000/mysql:5.7
docker push 10.45.xx.116:5000/registry.cn-hangzhou.aliyuncs.com/google_containers/tiller:v2.16.6
docker push 10.45.xx.116:5000/wdp-runtime:1.0
1
2
3
2
3
# docker-harbor
# Jks
# 最后考虑不做成镜像安装方式;直接用war启动,方便跟宿主机公用命令操作;
# 安装
#需要修改下目录权限, 因为当映射本地数据卷时,/home/docker/jenkins目录的拥有者为root用户,而容器中jenkins user的uid为1000
mkdir -p /home/wdp-docker-bak/jenkins && chown -R 1000:1000 /home/wdp-docker-bak/jenkins
docker run -d -p 8877:8080 --name wdp-jenkins -p 50000:50000 -v /home/wdp-docker-bak/jenkins:/var/jenkins_home jenkins/jenkins:lts
1
2
3
2
3
# 构建
cd $WORKSPACE
cd wdp-runtime
docker build --no-cache -t wdp-xxxx:1.0 .
#docker build -t 192.168.1.121:5000/hxkg-tomcat-8.5 .
#docker push 192.168.1.121:5000/hxkg-tomcat-8.5
1
2
3
4
5
6
2
3
4
5
6
因用docker安装的jks内部没有docker;要考虑安装docker;通过远程宿主方式处理;
版本固定:10.45.xxx.116:5000/wdp-jks:v${BUILD_NUMBER}
上次更新: 2023/11/17, 05:08:19