Docker 快速上手:用 Docker + GitBook 写书

By Falcon of TinyLab.org 泰晓沙龙第二期 @ 2015/04/26

准备 GitBook 环境安装 Docker

以Ubuntu为例

$ echo deb docker main \| sudo tee /etc/apt/sources.list.d/docker.list$ sudo apt-key adv –keyserver keyserver.ubuntu.com \–recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21E9$ sudo apt-get update$ sudo apt-get install -y lxc-docker安装 GitBook 环境

搜索镜像

$ sudo docker search gitbookNAME DESCRIPTION STARSOFFICIAL AUTOMATEDtobegit3hub/gitbook-server 2[OK]

安装镜像

ubuntunpm + nodejs

gitbook + calibre(ebook-convert)

$ sudo docker pull tobegit3hub/gitbook-server完善 GitBook 环境

启动 GitBook 环境

$ sudo docker images | grep gitbooktobegit3hub/gitbook-server latest d171079650c8$ sudo docker run -i -t \tobegit3hub/gitbook-server /bin/bash

安装 字体 和 Git

$ apt-get install git$ apt-get install fonts-arphic-gbsn00lp用 GitBook 写书基础准备

Markdown

Pandoc

各种格式自由转换Pandoc Markdown 语法

GitBook

GitBook 快速上手GitBook 简明教程GitBook 核心文件

GitBook 本身是一个 Git 仓库

.gitignore: 需要忽略的临时内容

重要组件

GitBook 输出格式

静态 HTML 页面

gitbook build ./ –output=./_book/

PDF

gitbook pdfGitBook 在线预览启动服务 gitbook serve ./

Starting server …

Serving book on :4000

在线预览 用浏览器打开: :4000杂项Json 语法错误 book.json:不支持注释等。JSON 在线验证

SyntaxError:…/book.json:Unexpected token o

GitBook 调试

export DEBUG=true

GitBook 插件

GitBook 图书实例下载和编译图书

下载

$ git clone \https://github.com/tobegit3hub/understand_linux_process.git

编译

$ cd understand_linux_process$ gitbook build$ gitbook pdf在线预览图书

Docker 侧

启动图书服务器

$ ifconfig eth0 | grep “inet addr”inet addr:172.17.0.31 …$ gitbook serve ./Starting server …Serving book on :4000

主机侧

在浏览器访问::4000从 Docker 拷贝出 pdf

Docker 侧:确认 pdf 路径

$ readlink -f book.pdf/gitbook/understand_linux_process/book.pdf

主机侧:docker cp CONTAINER_ID:PATH HOSTPATH

$ sudo docker ps -aCONTAINER ID IMAGECOMMANDcf5925e tobegit3hub/gitbook-server “/bin/bash”$ sudo docker cp \cf5925e:/gitbook/understand_linux_process/book.pdf .从 主机 拷入 Docker

两个步骤

获取容器挂载路径

通过本地 cp 命令直接拷贝进去

$ fullid=`sudo docker inspect -f ‘{{.Id}}’ cf5925e`$ gitbook=/var/lib/docker/aufs/mnt/$fullid/gitbook/$ ls $gitbookunderstand_linux_process$ cp book.pdf $gitbook/book-from-host.pdf直接挂载卷共享

挂载主机 GitBook 目录到 Docker

$ sudo docker run -i -t \ -v /path/to/mybook/:/gitbook/ \ tinylab/gitbook /bin/bash新建 GitBook 环境备份/导出/导入容器

保存容器为新镜像: commit

$ sudo docker commit cf5925e tinylab/gitbook$ sudo docker images | grep tinylab/gitbooktinylab/gitbook latest 2106b9f7f675

导出镜像文件: save/export

$ sudo docker save tinylab/gitbook > gitbook.tar

导入镜像文件到其他主机上: load/import

$ sudo docker load < gitbook.tar其他操作

删除/杀掉容器

docker rm [-f] contaier_iddocker kill contaier_id

停止容器

docker stop container_id

启动容器

docker start container_id

删除镜像

docker rmi image_id新建 GitBook Dockerfile# DockerfileFROM ubuntu:14.04MAINTAINER Falcon wuzhangjin@gmail.comRUN sed -i -e “s/archive.ubuntu.com/mirrors.163.com/g” \/etc/apt/sources.listRUN apt-get -y updateRUN apt-get install -y nodejs npm git && \npm install gitbook -gRUN apt-get install -y calibreRUN apt-get install -y fonts-arphic-gbsn00lpRUN mkdir /gitbookWORKDIR /gitbookEXPOSE 4000CMD [“gitbook”, “serve”, “/gitbook”]新建 GitBook Dockerfile(续)# DockerfileFROM ubuntu:14.04MAINTAINER Falcon wuzhangjin@gmail.comRUN sed -i -e “s/archive.ubuntu.com/mirrors.163.com/g” \/etc/apt/sources.listRUN apt-get -y updateRUN apt-get install -y curl git && cd / && \git clone https://github.com/creationix/nvm.git nvm && \echo “. /nvm/nvm.sh” > ~/.bashrc && . ~/.bashrc && \nvm install 0.12.2 && nvm use 0.12.2 && \npm install gitbook -gRUN apt-get install -y calibreRUN apt-get install -y fonts-arphic-gbsn00lpRUN mkdir /gitbookWORKDIR /gitbookEXPOSE 4000CMD [“gitbook”, “serve”, “/gitbook”]基于 Dockerfile 构建映像

快速构建

$ sudo docker build -t tinylab/gitbook ./

更多参数: Cgroup

-c, –cpu-shares=0 CPU shares (relative weight)

–cpuset-cpus= CPUs in which to allow execution (0-3, 0,1)

-m, –memory= Memory limit

参考资料

,幸福就是重复。每天跟自己喜欢的人一起,

Docker 快速上手:用 Docker + GitBook 写书

相关文章:

你感兴趣的文章:

标签云: