简单记录win10下docker的安装配置

2020-04-24

这个过程主要还是参考上篇提到的使用docker来实现libreoffice并发转换docx文件为pdf这篇文章。

不过原文是在centos下建docker,本文记录了在win10下的安装配置过程。

1、在官网上下载安装docker软件。

此过程略过不表。

2、在Docker Desktop设置共享盘

settings->Resources->FILE SHARING->选择共享文件夹要放置的盘

3、下载centos docker镜像

docker pull centos

4、启动centos的docker镜像

docker run -it centos /bin/bash 安装的是centos8

5、进入docker容器

#docker run -it centos -v /root/install:/root/install /bin/bash #docker run -it centos -v E:/Docker_share:/share /bin/bash 这个莫名报错

docker run -v “e:\Docker_share”:/share -it centos /bin/bash

安装libreoffice、中文字体库等所需的软件

yum install libreoffice-writer.x86_64

yum groupinstall “Fonts”

yum groupinstall “Input Methods”

把微软雅黑等字体复制到/usr/share/fonts/chinese/ 刷新字体: fc-cache -fv 查看已经安装的中文字体: fc-list :lang=zh

安装中文语言包(centos8):yum install langpacks-zh_CN.noarch 然后通过命令:locale -a 查看结果。

修改设置 sed -i ‘s/en_US/zh_CN/’ /etc/locale.conf

========================

6、生成安装了libreoffice、中文字体等软件的docker 镜像

docker commit CONTAINER_ID libreofficedocker

其中:

CONTAINER_ID是docker ps -a得到了容器id docker ps -a grep “centos” awk ‘{print $1}’

libreofficedocker 是我们生成的docker镜像

E:>docker commit 4500165c3350 libreofficedocker


E:\>docker images
REPOSITORY          TAG                 IMAGE ID            CREATED              SIZE
libreofficedocker   latest              75cb2d88753e        About a minute ago   1.85GB
centos              latest              470671670cac        3 months ago         237MB

hello-world         latest              bf756fb1ae65        3 months ago         13.3kB

7、启动我们新生成的docker 镜像

根据并发转换docx为pdf文件的需要,基于我们自己生成的docker镜像,启动多个docker的容器,利用docker容器对资源的隔离,调用不同容器中的soffice来并发处理不同的pdf文件

docker run –name office1 -it -d -v E:/Docker_share/pdf:/share/pdf libreofficedocker

docker run –name office2 -it -d -v E:/Docker_share/pdf:/share/pdf libreofficedocker

镜像文件与宿主机的共享目录为E:/Docker_share/pdf和E:/Docker_share/pdf,在共享目录中放入要转换的docx文件

docker exec -it office1 /bin/bash

8、调用soffice命令行,将docx转为pdf

docker exec -it office1 /bin/soffice –headless –convert-to pdf ‘/share/pdf/xx.docx’ –outdir /share/pdf

docker exec -it office2 /bin/soffice –headless –convert-to pdf ‘/share/pdf/xx.docx’ –outdir /share/pdf

以上命令行放到程序代码中,同时可以在多个线程中并发调用。