docker 手动清理私有仓库的方法
1.关于删除私有仓库的镜像,官网说明如下:
官网上注明可以通过name和digest删除image。name我们是知道的。我们只要获取digest就可以了!
查看所有镜像:
查看指定镜像:
2.registry启动依赖config.yml配置文件:在默认文件的storage区域中添加delete_enable_ture配置项(默认不添加)。也可以在启动时候指定-e添加。允许删除镜像:
下图是仓库磁盘使用情况:
3.获取某个镜像(如api-service服务)的digest(需要进入私有仓库容器,参考上一步)(没有清理的仓库,历史镜像有很多):
4.删除镜像(接上一步)(用awk拼接出删除镜像的URL,然后批量执行):
/var/lib/registry/docker/registry/v2 # ls -l repositories/api-service/_manifests/tags/0.0.1-SNAPSHOT/index/sha256/|grep -v "total 0"|awk '{print"curl -I -X DELETE https://sxxh-docker001.lo:5000/v2/api-service/manifests/sha256:"$9}'
curl -I -X DELETE https://sxxh-docker001.lo:5000/v2/api-service/manifests/sha256:001b7aac44f7879861eaa310375d339ae28801e8c3784ab229a04880789b3030
curl -I -X DELETE https://sxxh-docker001.lo:5000/v2/api-service/manifests/sha256:008e0311afc9842aa5968c309fade709f84f19e1e1b4f740679fbc2c0f07a422
curl -I -X DELETE https://sxxh-docker001.lo:5000/v2/api-service/manifests/sha256:04b41e1d6af713ebc13f219c39ba8e9c6c10896e7f80ce33301ee58152019aa7
curl -I -X DELETE https://sxxh-docker001.lo:5000/v2/api-service/manifests/sha256:04b6e9563f6b2f0acd337c2c2baf1a068eaadaf0dcfae77a1779ee8ed47da3d4
curl -I -X DELETE https://sxxh-docker001.lo:5000/v2/api-service/manifests/sha256:04efcac51201b2d5d2fda9fbac5e4865662495bbe7ac10d3056d0102a4cfa78a
curl -I -X DELETE https://sxxh-docker001.lo:5000/v2/api-service/manifests/sha256:06c019b03712670db4943a20a4b765de0d99002193c4160550ceca64d6333c72
curl -I -X DELETE https://scxxh-docker001.lo:5000/v2/api-service/manifests/sha256:085bca22b063f7ac0615f6c6154f960da35d4ceb5236f74e741271f3288d73a7
如上图,删除成功!
5.上面步骤只是删除了image的元数据信息(索引)。现在进入registry中进行垃圾回收命令如下:
registry garbage-collect /etc/docker/registry/config.yml
删除结果如下(部分):
6.其他:获取digest也可以使用其他方法(但是如果历史镜像很多,显示貌似有问题,没仔细研究)。如下:
[root@sxxh-docker002 ~]# curl https://sxxh-docker001.lo:5000/v2/web-service/manifests/0.0.1-SNAPSHOT
{
"schemaVersion": ,
"name": "web-service",
"tag": "0.0.1-SNAPSHOT",
"architecture": "amd64",
"fsLayers": [
{
"blobSum": "sha256:a3ed95caeb02ffe68cdd9fd84406680ae93d633cb16422d00e8a7c22955b46d4"
},
{
"blobSum": "sha256:a3ed95caeb02ffe68cdd9fd84406680ae93d633cb16422d00e8a7c22955b46d4"
},
{
"blobSum": "sha256:95edc035592e218bf92a7d08a04f0c7d587f5a14385a0d5f6f62e806fa7693a2"
},
{
"blobSum": "sha256:a3ed95caeb02ffe68cdd9fd84406680ae93d633cb16422d00e8a7c22955b46d4"
},
{
"blobSum": "sha256:054d5672a4a8d76a4f37dbd922f73e5a93a9799af8868795dd427af43d2e9827"
},
{
"blobSum": "sha256:a3ed95caeb02ffe68cdd9fd84406680ae93d633cb16422d00e8a7c22955b46d4"
},
{
"blobSum": "sha256:0a2b7222259b98cf41d67ce95433b5410e85ff8492c5c47254b60a0ca56a9271"
},
{
"blobSum": "sha256:81cf5426393a4ac116dac26d8e0f95ea3ba85afcc09bc6eafdbd2efc598aa180"
},
{
"blobSum": "sha256:a3ed95caeb02ffe68cdd9fd84406680ae93d633cb16422d00e8a7c22955b46d4"
},
{
"blobSum": "sha256:a3ed95caeb02ffe68cdd9fd84406680ae93d633cb16422d00e8a7c22955b46d4"
},
{
"blobSum": "sha256:a3ed95caeb02ffe68cdd9fd84406680ae93d633cb16422d00e8a7c22955b46d4"
},
{
"blobSum": "sha256:a3ed95caeb02ffe68cdd9fd84406680ae93d633cb16422d00e8a7c22955b46d4"
},
{
"blobSum": "sha256:813b623203785421e2ad013759851cd6069d7f88dfc0211a091aad6b51ea465b"
},
{
"blobSum": "sha256:a3ed95caeb02ffe68cdd9fd84406680ae93d633cb16422d00e8a7c22955b46d4"
},
{
"blobSum": "sha256:c7a02d193df75b11859dfcf15697ec0821e6a0f39d9dec6c9c4477955554d0db"
},
{
"blobSum": "sha256:624ba6156166d75b89cefff243adfa3d60384629102ab210b7a049c0464a2aa7"
},
{
"blobSum": "sha256:3318dd58ae6084d70d299efb50bcdf63e861f2dc3d787e03a751581e606442d9"
},
{
"blobSum": "sha256:8d9ed335b7dbe095ecfbbfe0857d07971283db0119f7a4aa490f9cbe06187335"
},
{
"blobSum": "sha256:a3ed95caeb02ffe68cdd9fd84406680ae93d633cb16422d00e8a7c22955b46d4"
},
{
"blobSum": "sha256:e12c678537aee9a1a1be8197da115e7c4d01f2652344f492a50ca8def9993d1e"
}
],
"history": [
{
"v1Compatibility": "{\"architecture\":\"amd64\",\"author\":\"统一Maven版本依赖\",\"config\":{\"Hostname\":\"33842653d6db\",\"Domainname\":\"\",\"User\":\"\",\"AttachStdin\":false,\"AttachStdout\":false,\"AttachStderr\":false,\"Tty\":false,\"OpenStdin\":false,\"StdinOnce\":false,\"Env\":[\"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin\",\"LANG=C.UTF-8\",\"JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64\",\"JAVA_VERSION=8u111\",\"JAVA_DEBIAN_VERSION=8u111-b14-2~bpo8+1\",\"CA_CERTIFICATES_JAVA_VERSION=20140324\",\"TZ=Asia/Shanghai\"],\"Cmd\":null,\"ArgsEscaped\":true,\"Image\":\"sha256:df682f932e08fd0fbd0fabbdbd033183e3115f57c7f00d5d0678448d2c364ad8\",\"Volumes\":{\"/tmp\":{}},\"WorkingDir\":\"\",\"Entrypoint\":[\"java\",\"-jar\",\"/web-service-0.0.1-SNAPSHOT.jar\"],\"OnBuild\":[],\"Labels\":{}},\"container\":\"d38226cf23843b0df2bbaefa8cd89022d7ffea8fb18be63174eddc23a6e1f870\",\"container_config\":{\"Hostname\":\"33842653d6db\",\"Domainname\":\"\",\"User\":\"\",\"AttachStdin\":false,\"AttachStdout\":false,\"AttachStderr\":false,\"Tty\":false,\"OpenStdin\":false,\"StdinOnce\":false,\"Env\":[\"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin\",\"LANG=C.UTF-8\",\"JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64\",\"JAVA_VERSION=8u111\",\"JAVA_DEBIAN_VERSION=8u111-b14-2~bpo8+1\",\"CA_CERTIFICATES_JAVA_VERSION=20140324\",\"TZ=Asia/Shanghai\"],\"Cmd\":[\"/bin/sh\",\"-c\",\"#(nop) \",\"VOLUME [/tmp]\"],\"ArgsEscaped\":true,\"Image\":\"sha256:df682f932e08fd0fbd0fabbdbd033183e3115f57c7f00d5d0678448d2c364ad8\",\"Volumes\":{\"/tmp\":{}},\"WorkingDir\":\"\",\"Entrypoint\":[\"java\",\"-jar\",\"/web-service-0.0.1-SNAPSHOT.jar\"],\"OnBuild\":[],\"Labels\":{}},\"created\":\"2018-04-16T08:12:12.377573866Z\",\"docker_version\":\"17.03.1-ce\",\"id\":\"051756db9ef951ec6e9452b85d2981f74c1a849cb58c1a7b10324399e92fab05\",\"os\":\"linux\",\"parent\":\"07e9eac23fce9b48c1703a5afcf1331a2d9f342cf89fd4fd36fd2b5ebdbc769f\",\"throwaway\":true}"
},
{
"v1Compatibility": "{\"id\":\"07e9eac23fce9b48c1703a5afcf1331a2d9f342cf89fd4fd36fd2b5ebdbc769f\",\"parent\":\"a03985d32e0e7e0d2b7fd528f29b399efb948fec5da591f7e20d98aa0f8d2b56\",\"created\":\"2018-04-16T08:12:10.033500448Z\",\"container_config\":{\"Cmd\":[\"/bin/sh -c #(nop) ENTRYPOINT [\\\"java\\\" \\\"-jar\\\" \\\"/web-service-0.0.1-SNAPSHOT.jar\\\"]\"]},\"author\":\"统一Maven版本依赖\",\"throwaway\":true}"
},
{
"v1Compatibility": "{\"id\":\"a03985d32e0e7e0d2b7fd528f29b399efb948fec5da591f7e20d98aa0f8d2b56\",\"parent\":\"ca071fc3fa4df214579dd746c8688f217dba0281cfb48fa856e8de3c98294299\",\"created\":\"2018-04-16T08:12:08.181245759Z\",\"container_config\":{\"Cmd\":[\"/bin/sh -c #(nop) ADD file:72c2b113c156719c5846f0888e2d65fd2c69abe32b85ee3e9930a6e987a54873 in // \"]},\"author\":\"统一Maven版本依赖\"}"
},
{
"v1Compatibility": "{\"id\":\"ca071fc3fa4df214579dd746c8688f217dba0281cfb48fa856e8de3c98294299\",\"parent\":\"cf2bea30fd3a5447838f21d8d85e399e79ce6f15395e839771590b308d2aaada\",\"created\":\"2018-03-30T07:19:59.569600284Z\",\"container_config\":{\"Cmd\":[\"/bin/sh -c #(nop) MAINTAINER 统一Maven版本依赖\"]},\"author\":\"统一Maven版本依赖\",\"throwaway\":true}"
},
{
"v1Compatibility": "{\"id\":\"cf2bea30fd3a5447838f21d8d85e399e79ce6f15395e839771590b308d2aaada\",\"parent\":\"3c057fbea6207ba9a2b823dd17f145f2f2fcf6db1472062486e6701b1bb4cc6c\",\"created\":\"2017-10-17T07:04:47.230082637Z\",\"container_config\":{\"Cmd\":[\"/bin/sh -c ln -snf /usr/share/zoneinfo/$TZ /etc/localtime \\u0026\\u0026 echo $TZ \\u003e /etc/timezone\"]}}"
},
{
"v1Compatibility": "{\"id\":\"3c057fbea6207ba9a2b823dd17f145f2f2fcf6db1472062486e6701b1bb4cc6c\",\"parent\":\"0331530cc61a4109413744b40320a54b814d64b00e94e1d30d8d7dc88a4efecc\",\"created\":\"2017-10-17T07:04:43.346160813Z\",\"container_config\":{\"Cmd\":[\"/bin/sh -c #(nop) ENV TZ=Asia/Shanghai\"]},\"throwaway\":true}"
},
{
"v1Compatibility": "{\"id\":\"0331530cc61a4109413744b40320a54b814d64b00e94e1d30d8d7dc88a4efecc\",\"parent\":\"ae1adbef900f22a6c8d52f8a5d0bee556572227d114adbd0e6c7028843c76a11\",\"created\":\"2017-01-17T00:52:54.890877145Z\",\"container_config\":{\"Cmd\":[\"/bin/sh -c /var/lib/dpkg/info/ca-certificates-java.postinst configure\"]}}"
},
{
"v1Compatibility": "{\"id\":\"ae1adbef900f22a6c8d52f8a5d0bee556572227d114adbd0e6c7028843c76a11\",\"parent\":\"4a4ced94bfab216abf2abe264900120cfb2db2e149b5a670315b62cc823ccd91\",\"created\":\"2017-01-17T00:52:53.062156474Z\",\"container_config\":{\"Cmd\":[\"/bin/sh -c set -x \\t\\u0026\\u0026 apt-get update \\t\\u0026\\u0026 apt-get install -y \\t\\topenjdk-8-jdk=\\\"$JAVA_DEBIAN_VERSION\\\" \\t\\tca-certificates-java=\\\"$CA_CERTIFICATES_JAVA_VERSION\\\" \\t\\u0026\\u0026 rm -rf /var/lib/apt/lists/* \\t\\u0026\\u0026 [ \\\"$JAVA_HOME\\\" = \\\"$(docker-java-home)\\\" ]\"]}}"
},
{
"v1Compatibility": "{\"id\":\"4a4ced94bfab216abf2abe264900120cfb2db2e149b5a670315b62cc823ccd91\",\"parent\":\"1ba36725ad52df8df858da07fc04e4b98cc03762f67911b1c4aea55cd2257604\",\"created\":\"2017-01-17T00:51:50.743926212Z\",\"container_config\":{\"Cmd\":[\"/bin/sh -c #(nop) ENV CA_CERTIFICATES_JAVA_VERSION=20140324\"]},\"throwaway\":true}"
},
{
"v1Compatibility": "{\"id\":\"1ba36725ad52df8df858da07fc04e4b98cc03762f67911b1c4aea55cd2257604\",\"parent\":\"a46acdc5fd926ac28ff88efe97f57bc3e0d62174bff1d0ce43c3c3fd7acfdcf0\",\"created\":\"2017-01-17T00:51:50.391717354Z\",\"container_config\":{\"Cmd\":[\"/bin/sh -c #(nop) ENV JAVA_DEBIAN_VERSION=8u111-b14-2~bpo8+1\"]},\"throwaway\":true}"
},
{
"v1Compatibility": "{\"id\":\"a46acdc5fd926ac28ff88efe97f57bc3e0d62174bff1d0ce43c3c3fd7acfdcf0\",\"parent\":\"6842fc455f496bc87a45f64380c2f0366dac050b6d90c4b40855440c5f905c47\",\"created\":\"2017-01-17T00:51:50.099715912Z\",\"container_config\":{\"Cmd\":[\"/bin/sh -c #(nop) ENV JAVA_VERSION=8u111\"]},\"throwaway\":true}"
},
{
"v1Compatibility": "{\"id\":\"6842fc455f496bc87a45f64380c2f0366dac050b6d90c4b40855440c5f905c47\",\"parent\":\"8ebd976b93669bca3dfd72cfbad438567b7415cac0ecb519dc5d040411345496\",\"created\":\"2017-01-17T00:51:49.822140353Z\",\"container_config\":{\"Cmd\":[\"/bin/sh -c #(nop) ENV JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64\"]},\"throwaway\":true}"
},
{
"v1Compatibility": "{\"id\":\"8ebd976b93669bca3dfd72cfbad438567b7415cac0ecb519dc5d040411345496\",\"parent\":\"cff77c62e3e489f43b36f21a37a8e5b3042b250e58aacf2da34229057e96ce5b\",\"created\":\"2017-01-17T00:51:49.52423661Z\",\"container_config\":{\"Cmd\":[\"/bin/sh -c { \\t\\techo '#!/bin/sh'; \\t\\techo 'set -e'; \\t\\techo; \\t\\techo 'dirname \\\"$(dirname \\\"$(readlink -f \\\"$(which javac || which java)\\\")\\\")\\\"'; \\t} \\u003e /usr/local/bin/docker-java-home \\t\\u0026\\u0026 chmod +x /usr/local/bin/docker-java-home\"]}}"
},
{
"v1Compatibility": "{\"id\":\"cff77c62e3e489f43b36f21a37a8e5b3042b250e58aacf2da34229057e96ce5b\",\"parent\":\"cae57b7d75ad8496a8822d6b5a6ad12f8aa41afedf8ac392ec7076e9bb4fbc2f\",\"created\":\"2017-01-17T00:51:48.563377618Z\",\"container_config\":{\"Cmd\":[\"/bin/sh -c #(nop) ENV LANG=C.UTF-8\"]},\"throwaway\":true}"
},
{
"v1Compatibility": "{\"id\":\"cae57b7d75ad8496a8822d6b5a6ad12f8aa41afedf8ac392ec7076e9bb4fbc2f\",\"parent\":\"460e9e88f2e3e275a94af3830c839674b2ca2af8140c1d46b1d60f7eb1ee00b5\",\"created\":\"2017-01-17T00:51:48.199853506Z\",\"container_config\":{\"Cmd\":[\"/bin/sh -c echo 'deb http://deb.debian.org/debian jessie-backports main' \\u003e /etc/apt/sources.list.d/jessie-backports.list\"]}}"
},
{
"v1Compatibility": "{\"id\":\"460e9e88f2e3e275a94af3830c839674b2ca2af8140c1d46b1d60f7eb1ee00b5\",\"parent\":\"98c8b00e72a3fefb671ae6a7a07c1f1ccd313c198f47cf98c33119ba0ef07688\",\"created\":\"2017-01-17T00:49:51.939655817Z\",\"container_config\":{\"Cmd\":[\"/bin/sh -c apt-get update \\u0026\\u0026 apt-get install -y --no-install-recommends \\t\\tbzip2 \\t\\tunzip \\t\\txz-utils \\t\\u0026\\u0026 rm -rf /var/lib/apt/lists/*\"]}}"
},
{
"v1Compatibility": "{\"id\":\"98c8b00e72a3fefb671ae6a7a07c1f1ccd313c198f47cf98c33119ba0ef07688\",\"parent\":\"571c55696ed384dac735d9bd3d21f35d9c275ef40bef26dac50c6a0e3b5a8dd9\",\"created\":\"2017-01-17T00:01:07.867997465Z\",\"container_config\":{\"Cmd\":[\"/bin/sh -c apt-get update \\u0026\\u0026 apt-get install -y --no-install-recommends \\t\\tbzr \\t\\tgit \\t\\tmercurial \\t\\topenssh-client \\t\\tsubversion \\t\\t\\t\\tprocps \\t\\u0026\\u0026 rm -rf /var/lib/apt/lists/*\"]}}"
},
{
"v1Compatibility": "{\"id\":\"571c55696ed384dac735d9bd3d21f35d9c275ef40bef26dac50c6a0e3b5a8dd9\",\"parent\":\"dd971d935f0529013f3bf48999e9cebe16e11f5318538fea15d61dd41326600a\",\"created\":\"2017-01-17T00:00:45.363077258Z\",\"container_config\":{\"Cmd\":[\"/bin/sh -c apt-get update \\u0026\\u0026 apt-get install -y --no-install-recommends \\t\\tca-certificates \\t\\tcurl \\t\\twget \\t\\u0026\\u0026 rm -rf /var/lib/apt/lists/*\"]}}"
},
{
"v1Compatibility": "{\"id\":\"dd971d935f0529013f3bf48999e9cebe16e11f5318538fea15d61dd41326600a\",\"parent\":\"9f872f437c9c25c1364b6527e1570d990d5b935fe96f3aebf6acfcd5aa889500\",\"created\":\"2017-01-16T20:35:16.587175871Z\",\"container_config\":{\"Cmd\":[\"/bin/sh -c #(nop) CMD [\\\"/bin/bash\\\"]\"]},\"throwaway\":true}"
},
{
"v1Compatibility": "{\"id\":\"9f872f437c9c25c1364b6527e1570d990d5b935fe96f3aebf6acfcd5aa889500\",\"created\":\"2017-01-16T20:35:09.371844927Z\",\"container_config\":{\"Cmd\":[\"/bin/sh -c #(nop) ADD file:89ecb642d662ee7edbb868340551106d51336c7e589fdaca4111725ec64da957 in / \"]}}"
}
],
"signatures": [
{
"header": {
"jwk": {
"crv": "P-256",
"kid": "K5CO:ZZ5X:DMFZ:MTEY:62K2:AHLT:GCMH:JHFI:4QVC:PHUT:BC7Q:HFM2",
"kty": "EC",
"x": "pnKfVj7NRAQwfowPYvaFKrAHgCYdbHuzuH7xxSpQ2Ds",
"y": "fwTbqPdjEXNsC4L1XR7VoQ2o0Xhznn3562lOdFF_aeo"
},
"alg": "ES256"
},
"signature": "XDlym6XfYzkaRryxti-DiGykWFTXSo02VRy5Fa67a4R7dvgYX2OXVWfr3R8oxiUFiWP8N4Jz8nEHynySO0b3QA",
"protected": "eyJmb3JtYXRMZW5ndGgiOjEyMjMyLCJmb3JtYXRUYWlsIjoiQ24wIiwidGltZSI6IjIwMTgtMDQtMThUMTA6MTE6NDRaIn0"
}
]
}
docker 手动清理私有仓库的方法的更多相关文章
- Docker:搭建私有仓库(Registry 2.4)
一.背景 首先,Docker Hub是一个很好的用于管理公共镜像的地方,我们可以在上面找到想要的镜像(Docker Hub的下载量已经达到数亿次):而且我们也可以把自己的镜像推送上去.但是,有的时候, ...
- docker上传私有仓库报错
docker 1.17 版本搭建私有仓库,上传镜像报错:server gave HTTP response to HTTPS client” 系统环境:centos7docker版本:1.17(注意版 ...
- docker registry (私有仓库)
首先要导入registry的镜像文件 1.普通的registry 一条命令创建一个仓库 docker run -d -p 5000:5000 --restart=always --name regis ...
- Docker Registry搭建私有仓库
利用Registry镜像搭建Docker私有仓库遇到了很多坑,说来也是找到的资料都是杂而不精的东西,所以也没少走了弯路,现在回过头看去感觉好多坑还是别人给挖的··· 不过努力的最终结果还是好的,因为找 ...
- Ubuntu Docker Registry 搭建私有仓库
服务器版本 Ubuntu 16.04 LTS. 安装命令: $ docker run -d -v /opt/registry:/var/lib/registry -p 5000:5000 --rest ...
- 基于IP的docker private registry 私有仓库的搭建
鉴于国内的网络环境,如果公司内部大量使用docker,镜像上传下载将是个非常耗时的工作,搭建一个私有仓库可以很好的解决自有镜像的存储,如果你在私有网络,不能使用域名的话,那么本文可以作为一个很好的例子 ...
- docker 构建 https 私有仓库 Registry
1.安装docker # docker install docker 2.拉取仓库镜像 # docker pull registry 3.生成认证certificate # mkdir ~/certs ...
- docker 基础之私有仓库
docker-registry 是官方提供的工具,可以用于构建私有的镜像仓库.安装运行 docker-registry容器 在安装了 Docker 后,可以通过获取官方 registry 镜像来运行. ...
- docker之搭建私有仓库
一.私有仓库 1.防止网络原因:下载慢,访问不到的情况,需要在内网搭建一个私有仓库. 二.仓库镜像下载 [root@node03 ~]# docker pull registry 三.创建私有仓库容器 ...
随机推荐
- 微信小程序-转发
仅供参考 1,js: onShareAppMessage(res) { return { title: '我在使用俺搜·找客户,10万+材料人都在用,就差你了', path: '/pages/inde ...
- js+css3+HTML5拖动滑块(type="range")改变值
最近在做一个H5的改版项目,产品和设计给出的效果中有一个拖动滑块可以改变输入值的效果,类似如下图这样: 拿到这样的设计稿后,我有点懵了,自己写一个js?去网上找一个这样的效果?自己写一个可以,只是实现 ...
- web (Servlet)
1.如果你文档新建的出现很多红色的小擦擦出错 这样做
- Mac删除默认美国输入法
1.打开sudo open ~/Library/Preferences/com.apple.HIToolbox.plist 2.找到这个,然后点击删除,最后保存,然后在立马重启 3.如果要还原,直接在 ...
- javaScript系列 [06]-javaScript和this
在javaScript系列 [01]-javaScript函数基础这篇文章中我已经简单介绍了JavaScript语言在函数使用中this的指向问题,虽然篇幅不长,但其实最重要的部分已经讲清楚了,这篇文 ...
- 基于ping++聚合支付进行微信红包开发
1.微信方面的开发,一定要详细的阅读微信支付的开发文档. https://pay.weixin.qq.com/wiki/doc/api/tools/cash_coupon.php?chapter=13 ...
- RabbitMQ 可靠投递
RabbitMQ 可靠投递 标签: RabbitMQ shovel-plugin ConfirmCallback RabbitMQ消息投递 背景 confirmCallback 确认模式 return ...
- Android application捕获崩溃异常
Java代码 .收集所有 avtivity 用于彻底退出应用 .捕获崩溃异常,保存错误日志,并重启应用 , intent, , restartIntent); // 关闭当前应用 finishAllA ...
- Numba加速Python程序
众所周知,Python和Java一样是基于虚拟机的语言,并不是像C/C++那样将程序代码编译成机器语言再运行,而是解释一行执行一行,速度比较慢.使用Numba库的JIT技术编译以后,可以明显提高程序的 ...
- 在django中怎么解决没有MySQLdb库的问题
1.安装:pymysql模块 2.在app文件目录下,找到__init__.py文件,在文件中写入下面的代码 #解决django中的MySQLdb模块在python3中没有的问题 import pym ...