大部分Linux,比如說Ubuntu,Debian都可以通過如下命令安裝:
curl -sSL https://get.daocloud.io/docker | sh
TIP:別忘了配置好DaoCloud加速,不然構建速度很慢。
docker build -t hexo3 - < hexo3.dockerfile
hexo3.dockerfile
FROM node:slim MAINTAINER Jianying Li <[email protected]> # instal basic tool RUN apt-get update && apt-get install -y git ssh-client ca-certificates --no-install-recommends && rm -r /var/lib/apt/lists/* # set time zone RUN echo "Asia/Shanghai" > /etc/timezone && dpkg-reconfigure -f noninteractive tzdata # install hexo RUN npm install [email protected] -g # set base dir RUN mkdir /hexo # set home dir WORKDIR /hexo EXPOSE 4000 CMD ["/bin/bash"]
定制自己的image請注意,現在最簡潔的三個包內容為:
1. git,部署的時候用(如果不用git部署請去掉)。
2. ssh-client(ssh方式的git部署依賴)。
3. ca-certificates(https方式的git部署依賴)。
TIP: 在shell中或者lib中調用https方式通訊的時候如果報錯Problem with the SSL CA cert (path? access rights?)
可以通過安裝包:ca-certificates來解決問題,yum apt中都是如此。
構建時間大概十幾分鐘完成。
sudo mount -t vboxsf [sharename] [dist]
來掛載共享目錄。
docker run -it -d -p 4000:4000 -v /root/blog:/hexo/ --name hexo hexo3注意路徑 /root/blog/
是我VirtualBox 虛擬機中blog存儲的位置。
注意參數/root/blog/
需要使用絕對路徑
其他的參數可以很容易的在manual中找到意義。
#docker save hexo3 > /root/hexo3.tar #docker load < /root/hexo3.tar
注意這裡使用save而不是export 因為需要保存歷史層
參考導出大小:
du -h /root/hexo3.tar 261M /root/hexo3.tar
從以上所有的工作中,對比虛擬機進行環境的構建打包,docker具有構建環境時間更短,打包文件更小的特點。
docker exec -it hexo /bin/bash
Tip: 雖然做到了用docker構建一個非常方便移植的hexo環境,但是運行命令hexo的時候有點慢,但不是那種忍受不了的慢。
在調試的時候可以使用 docker rm $(docker ps -q -a) 一次性刪除所有的容器,docker rmi $(docker images -q) 一次性刪除所有的鏡像。