Letsencrypt
依賴python 2.7
及以上,而CentOS 6.5
又只支持到2.6,每次執行letsencrypt
都會卡在升級上,老是過不去,最後決定使用docker
解決此問題。html
docker
缺省要求CentOS 7
,但實際在CentOS 6.5
上也是能夠安裝的,只不過包名不叫docker
,而是docker-io
。python
yum install docker-io
如你所知,docker
在國內訪問不了,因此須要配置國內鏡像,按照這篇文章的說法:docker
curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://ed92cb97.m.daocloud.io
而後,你須要從新啓動docker
服務:segmentfault
service docker restart
頗有可能,這時你的docker起不來:app
Cannot connect to the Docker daemon. Is 'docker -d' running on this host?
ps aux | grep docker
也看不到docker進程。當你執行docker -d
命令時:curl
INFO[0000] Listening for HTTP on unix (/var/run/docker.sock) INFO[0000] [graphdriver] using prior storage driver "devicemapper" WARN[0000] Running modprobe bridge nf_nat failed with message: , error: exit status 1 FATA[0000] Error starting daemon: Error initializing network controller: Error creating default "bridge" network: can't find an address range for interface "docker0"
這時,你須要vi /etc/sysconfig/network-scripts/route-eth0
,把其中有172.16.0.0
的這一行註釋掉,在前面加一個#
號。而後:this
route del -net 172.16.0.0 netmask 255.240.0.0 /etc/init.d/network restart
再次執行service docker restart
,而後,執行ps aux | grep docker
,你會看到docker進程已啓動。url
裝好以後,就能夠執行了:unix
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
。
運行完以後能夠執行rest
docker images
看一下,系統自動下載了一個letsencrypt
的image
進來,只是第一次下,之後就不須要下了。
能夠執行docker ps -a
檢查確保沒有垃圾container
留在系統裏。若是有的話,執行docker rm container-name
刪除之。
利用docker
,咱們實現了徹底不依賴CentOS
的獨立python
以及letsencrypt
,這樣無論你係統是什麼,都不會影響letsencrypt
的正常使用。
關於letsencrypt
的安裝和使用,請參考我前面的文章。