CentOS 6.5下利用Docker使用Letsencrypt

616 查看

问题来源

Letsencrypt依赖python 2.7及以上,而CentOS 6.5又只支持到2.6,每次执行letsencrypt都会卡在升级上,总是过不去,最后决定使用docker解决此问题。

步骤

安装docker

docker缺省要求CentOS 7,但实际在CentOS 6.5上也是可以安装的,只不过包名不叫docker,而是docker-io

yum install docker-io

配置国内镜像

如你所知,docker在国内访问不了,所以需要配置国内镜像,按照这篇文章的说法:

curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://ed92cb97.m.daocloud.io

然后,你需要重新启动docker服务:

service docker restart

运行

装好之后,就可以执行了:

docker run --rm -it -v "/var/log/letsencrypt:/var/log/letsencrypt" -v "/etc/letsencrypt:/etc/letsencrypt" lojzik/letsencrypt renew

几个参数解释一下:
--rm表示删除container,每次执行完之后,需要把container删除,否则系统里留一堆没用的container很浪费。
-it表示交互。
-v表示把我们本系统的目录配置给container使用,冒号前面是本系统的路径,冒号后面是container里的路径。因为我们之前已经在本系统安装过letsencrypt并且配置过了,所以直接用相同的就可以。
后面是包名。
再往后是所执行的命令,在这里我只需要执行renew就好了,其它命令同certbot
运行完之后可以执行

docker images

看一下,系统自动下载了一个letsencryptimage进来,只是第一次下,以后就不需要下了。
可以执行docker ps -a检查确保没有垃圾container留在系统里。如果有的话,执行docker rm container-name删除之。

利用docker,我们实现了完全不依赖CentOS的独立python以及letsencrypt,这样不管你系统是什么,都不会影响letsencrypt的正常使用。

关于letsencrypt的安装和使用,请参考我前面的文章