首页
Search
1
v2ray异常错误之二
3,310 阅读
2
linux时区设置
2,698 阅读
3
DB2常用操作
2,173 阅读
4
websphere修改jvm内存xmx和xms
1,929 阅读
5
nfs客户端文件属主为nobody的现象
1,552 阅读
技术
生活
运动
游戏
电影
登录
Search
标签搜索
docker
linux
troubleshooting
nginx
secure
truenas
mysql
windows
python
esxi
docker swarm
oracle
zabbix
tomcat
blog
dsm
群晖
rpa
freenas
db
yuc
累计撰写
291
篇文章
累计收到
0
条评论
首页
栏目
技术
生活
运动
游戏
电影
页面
搜索到
22
篇与
的结果
2022-06-13
docker通过宿主机PID获取容器
场景 某docker的宿主机很卡,显示负载很高,可能是由某个容器导致的,但是通过宿主机的top看资源使用没有明显的异常,不能很好区分,其他的异常表现为显示有zombie进程,那么现在查出进程号后如何知道宿主机的此进程号对应的哪个容器呢? 解决 其实对于正常情况来说查进程号是能够看到容器不少信息的,如果没有大量重复容器的情况下基本上能够通过这些信息定位到相关的容器。但是我们遇到的情况是: 第一有大量重复的容器,正常情况查询宿主机进程显示的内容都是一样的 第二此进程已经zombie,显示的内容为僵尸进程内容,所以需要使用以下命令来查询此进程号对应的容器: docker inspect -f '{{.State.Pid}} {{.Id}}' $(docker ps -q) | grep <Pid>
2022年06月13日
906 阅读
0 评论
0 点赞
2022-05-27
jenkins构建docker镜像
背景 因为有用户需要容器化运行,需要我们提供镜像,但镜像构建分发还是比较麻烦的,涉及到如下步骤: 下载此版本最新的war包 构建war包为镜像 推送到仓库 如果总是人工操作必然会浪费很多时间,于是使用jenkins来提供自动化的流程 注意点 因为Dockerfile/启动脚本的以后可能会修改,这部分我们使用git托管起来,使用jenkins构建的时候也能自动拉取最新代码 流程 jenkins中先拉取代码 jenkins中调用脚本拿到war包,并且获取war包的版本 把脚本从本地发送到远端进行构建,如果是本地就更方便一点了! 远程机器获取到war版本,设置新镜像名称,根据传送过来的文件中的dockerfile进行构建 构建完成后推送至镜像仓库 代码部分 镜像的dockerfile FROM harbor.xxx.com/base/xxx-centos:7.6-2020120414 COPY dirs/ /usr/local/ COPY ROOT.war start.sh /opt/ CMD sh -x /opt/start.sh dockerfile中的启动命令 #!/bin/bash # # 提供了三个参数: # MEM用来设置内存大小,未设置为1G # SERVICE来设置war名,上下文,否则为ROOT # CLUSTER设置集群ip前缀,docker私有ip有多个,如果做web集群,需要指定能容器之间互通的段 mem=0 war=0 cluster=0 if [ ! -z "${MEM}" ];then if echo ${MEM} | grep "^[[:digit:]]*$" &> /dev/null;then if [ ${MEM} -gt 31 ];then MEM=31 fi mem=1 fi fi if [ ! -z "${SERVICE}" ];then if [ -z "$(echo ${SERVICE} | tr -d '0-9A-Za-z')" ];then if ! echo ${SERVICE} | egrep "^[0-9]|[0-9]$" &> /dev/null;then war=1 fi fi fi if [ ! -z "${CLUSTER}" ];then cluster=1 fi if [ ${cluster} -eq 1 ];then export JAVA_OPTS="-Dsucc.clusterBindAddressPrefix=${CLUSTER}" fi if [ ${mem} -eq 1 ];then sed -i "s/1g/${MEM}g/g" /usr/local/tomcat/bin/catalina.sh fi if [ ${war} -eq 1 ];then cp -a /usr/local/tomcat/ROOT /usr/local/tomcat/webapps/ cp -a /opt/ROOT.war /usr/local/tomcat/webapps/${SERVICE}.war else cp -a /opt/ROOT.war /usr/local/tomcat/webapps/ fi /usr/local/tomcat/bin/catalina.sh start tail -f /etc/getcode/code jenkins部分 this="镜像-4.19.3" release_root="/var/jenkins_home/jobs/bi-4.19.3/workspace/bi" src_FILE="${release_root}/com.succez.bi/dist/ROOT.war" dst_FILE="/var/jenkins_home/jobs/${this}/workspace/ROOT.war" if [ ! -f "${src_FILE}" ];then echo "war包不存在" exit 1 fi \cp -rfa ${src_FILE} ${dst_FILE} version=$(cat ${release_root}/com.succez.bi/src/main/java/META-INF/succ-product.json | grep "version" | awk '{print $2}' | tr -d "\",") echo ${version} > /var/jenkins_home/jobs/${this}/workspace/version 文件传输 文件传输到远程机器使用的jenkins的sftp传输插件,在后台配置server登录账号密码后,在前端设置本地路径和目的路径。 本地路径是以workspace为参照的相对目录,表示当前所有文件,如果下级目录下的所有文件需要两个 目的路径需要写绝对目录 Remove prefix,如果本地目录中的目录层级需要移除,那么写入 后续脚本 cd /usr/local/build/release-bi/ version=$(cat version) time=`date +%Y%m%d%H` echo ${time} echo ${version} image_name="succbi:${version}-${time}" image_prefix="harbor.xxx.com/succbi/" image_latest="harbor.xxx.com/succbi/succbi:latest" image_cn=${image_prefix}${image_name} docker build -t ${image_name} . if [ $? -ne 0 ];then echo "docker build failed" exit 1 fi docker tag ${image_name} ${image_cn} docker tag ${image_name} ${image_latest} docker push ${image_cn} docker push ${image_latest} docker镜像命名规范 suxxx-4.xx.3:latest suxxx-4.xx.3:2022060801 suxxx-4.xx.0:latest suxxx-4.xx.0:2022060801 suxxx-oem:latest suxxx-oem:2022060801
2022年05月27日
920 阅读
0 评论
0 点赞
1
...
4
5