常用命令
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
| # 1.停止所有的container,这样才能够删除其中的images: docker stop $(docker ps -a -q) # 如果想要删除所有container: docker rm $(docker ps -a -q) # 2.查看当前有些什么images docker images # 3.删除images,通过image的id来指定删除谁 docker rmi <image id> # 想要删除untagged images,也就是那些id为<None>的image的话可以用 docker rmi $(docker images | grep "^<none>" | awk "{print $3}") # 删除全部image docker rmi $(docker images -q) # 退出容器 # 1.退出并停止容器:(而后执行docker ps不能看到该容器) Ctrl+D # 2.退出但不停止容器:而后执行docker ps能看到该容器)" Ctrl+P+Q # 进入容器(只能进入已经启动了的容器,若容器已经停止,则先执行docker start <容器名称或ID> 来启动容器) docker attach <容器名称或ID> # 启动/停止容器 docker start/stop <容器名称或ID> # 查看镜像 docker images # 提交镜像,(docker commit <容器名称或id> <自定镜像名称>:<自定版本号TAG> ) docker commit 2736 myproject:1.0.0 # 查看镜像的修改历史 docker history 镜像ID # 连接到容器上运行bash docker exec -ti CONTAINER /bin/bash # 删除镜像 docker rmi IMAGE ID docker rmi REPOSITORY+TAG # 查看版本 docker version # 搜索可用docker镜像 docker search centos # 下载镜像 docker pull centos # docker导入本地镜像 cat centos.tar | docker import - centos6 # docker导出镜像 docker export id > cenos6.tar # 在docker容器中运行hello world! docker run centos echo "hello word" # 在容器中安装ntpdate的程序 docker run centos yum install ntpdate # 关闭容器 docker stop id # 启动某个容器 docker start id # 删除容器 docker rm id #容器主机间文件复制 #从主机复制到容器 sudo docker cp host_path containerID:container_path #从容器复制到主机 sudo docker cp containerID:container_path host_path
|
启动,端口映射及目录挂载
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| # 从镜像启动容器 docker run -d -p 9090:8080 --name testproject myproject:1.0.0 /root/run.sh -d: # 表示以“守护模式”执行/root/run.sh脚本,此时 Tomcat 控制台不会出现在输出终端上。此时需要查看日志使用命令:docker logs <容器名称或ID> -p: # 表示宿主机与容器的端口映射,此时将容器内部的 8080 端口映射为宿主机的 9090 端口,这样就向外界暴露了 9090 端口,可通过 Docker 网桥来访问容器内部的 8080 端口了。 --name: # 表示容器名称,用一个有意义的名称命名即可"
# 把所需要的环境(如jdk,tomcat等)拉取到docker容器中 # 方法一:启动一个容器,同时指定将宿主机中的某个文件夹挂载到docker容器中,-v参数中,冒号":"前面的目录是宿主机目录,后面的目录是容器内目录 docker run -i -t -v /myjava/:/mnt/software/ ubuntu /bin/bash -i: # 以交互模式运行容器,通常与 -t 同时使用; -t: # 为容器重新分配一个伪输入终端,通常与 -i 同时使用(容器启动后会进入其命令行); -v: #指定宿主机的哪个目录挂载到容器中,格式:-v <宿主机目录>:<容器目录>
# 方法二:使用docker cp 命令拷贝文件,(docker cp <宿主机目录或文件> <容器名称或id>:<容器目录>) # 若已经在容器里面,则先退出容器,退出容器后执行命令: docker cp myjava/ 190d:mnt/software/
|
便捷搭建服务搭建
jernkins
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| docker run -d --name jenkins -p 8080:8080 -p 50000:50000 -v ~/docker/jenkins:/var/jenkins_home jenkins/jenkins chown -R 1000:1000 ~/docker/jenkins
#更换插件源地址 #进入jenkins的工作目录 #hudson.model.UpdateCenter.xml #http://updates.jenkins-io/update-center.json #改成 #https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json # #进入Jenkins工作目录: cd /var/lib/jenkins/updates/ #使用sed命令修改default.json文件: sed -i 's#https://updates.jenkins.io/download#https://mirrors.tuna.tsinghua.edu.cn/jenkins#g' default.json && sed -i 's#http://www.google.com#https://www.baidu.com#g' default.json
|
jenkins节点失联
如果您不想重新启动,则只需在从站上终止这些进程,然后再次启动从属代理
1 2 3
| $ ps -ef |grep java 1006 11948 11930 0 Jul17?00:00:00 bash -c cd“/ mnt / jenkins”&& java -jar slave.jar 1006 11949 11948 0 Jul17?00:02:55 java -jar slave.jar
|
Timestamper
job配置,构建环境中勾选:Add timestamps to the Console Output。执行时控制台输出就会在每一行显示时间
对于脚本化管道,只需将您的脚本包装在timestamps { }
Eg中即可。
向声明管道添加选项
1 2 3 4 5
| pipeline { agent any options { timestamps () } }
|
全局配置:在Jenkins配置的“时间戳”部分中选中“为所有管道版本启用”
QQ&微信通知
https://my.oschina.net/u/4320414/blog/3930777
钉钉通知
https://blog.csdn.net/liujingqiu/article/details/87977396
重置Jenkins的build序号
1 2 3 4 5 6 7
| # 系统管理->脚本命令行 item = Jenkins.instance.getItemByFullName("your-job-name-here")
item.builds.each() { build -> build.delete() } item.updateNextBuildNumber(1)
|
sonar
构建
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| docker pull postgres docker pull sonarqube docker run -p 5432:5432 --name db -e POSTGRES_USER=sonar -e POSTGRES_PASSWORD=sonar -d postgres docker run --name sq -e SONARQUBE_JDBC_URL=jdbc:postgresql://172.31.19.221:5432/sonar -e SONARQUBE_JDBC_USERNAME=sonar -e SONARQUBE_JDBC_PASSWORD=sonar -p 9000:9000 -d sonarqube #加插件:https://github.com/rhinoceros/sonar-p3c-pmd/releases/tag/pmd-3.2.0-beta-with-p3c1.3.6-pmd6.10.0 #https://gitee.com/chenlingtao/sonar-pmd.git docker stop d0c95e1e9270 docker cp /home/docker/sonarqube/extensions/plugins/sonar-pmd-plugin-3.2.0-SNAPSHOT.jar d0c95e1e9270:/opt/sonarqube/extensions/plugins docker start d0c95e1e9270 #宿主机目录挂载,方便加插件 docker run -v /home/bq/docker/sonarqube/extensions/plugins:/opt/sonarqube/extensions/plugins --name sq --link db -e SONARQUBE_JDBC_URL=jdbc:postgresql://db:5432/sonar -e SONARQUBE_JDBC_USERNAME=sonar -e SONARQUBE_JDBC_PASSWORD=sonar -p 9000:9000 -d sonarqube docker run -v ~/docker/sonarqube/extensions/plugins:/opt/sonarqube/extensions/plugins --name sq -e SONARQUBE_JDBC_URL=jdbc:postgresql://172.17.225.160:5432/sonar -e SONARQUBE_JDBC_USERNAME=sonar -e SONARQUBE_JDBC_PASSWORD=sonar -p 9000:9000 -d sonarqube
#内存要够,不够es抛137;sudo sysctl -w vm.max_map_count=524288 太小es抛78
|
扫描
1
| sonar-scanner.bat -D"sonar.projectKey=homepage" -D"sonar.sources=./src" -D"sonar.java.binaries=./out" -D"sonar.host.url=http://ec2-52-221-237-133.ap-southeast-1.compute.amazonaws.com:9000" -D"sonar.login=31d831eb5f55827eb84201821a921ed3131ae455"
|
禅道
1 2 3 4 5 6
| # 创建docker网络驱动 #sudo docker network create --subnet=[ip范围] [网络驱动名] #ip范围:例如172.172.172.0/24的意思ip可以指定范围为172.172.172.1到172.172.172.254;网络驱动名:创建的网络驱动名,可随意指定; docker network create --subnet=172.172.172.0/24 zentaonet #启动 docker run --name zentao -p 8090:80 --network=zentaonet --ip 172.172.172.172 --mac-address 02:42:ac:11:00:00 -v ~/docker/zentao/zentaopms:/www/zentaopms -v ~/docker/zentao/mysqldata:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d easysoft/zentao:latest
|