使用 Docker 安装 showdoc
一、简介
ShowDoc 是一个非常适合IT团队在线共享文档的工具,在线访问地址为:https://www.showDoc.cc
本来也可以直接 pull showdoc 镜像到本地,使用 docker search showdoc 之后可以看到已经在仓库中存在 showdoc 的镜像了,但是当我 pull 到本地过程中的时候,发现有一个层一直是 waiting 状态,于是决定先去 GitHub 下载,然后手动创建镜像。
二、下载 showdoc
showdoc 的 GitHub 项目地址为:https://github.com/star7th/showdoc,下载地址为 https://github.com/star7th/showdoc.git 或者 git://github.com/star7th/showdoc.git
[root@masternode opt]# mkdir git_repository
[root@masternode opt]# chmod git_repository
[root@masternode opt]# cd git_repository
[root@masternode git_repository]# git clone git://github.com/star7th/showdoc.git
git 默认是在当前目录下下载项目代码。
三、创建镜像
下载后,生成 showdoc 目录,进入目录,可以看到 Dockerfile 文件,使用 docker build -t showdoc ./ 命令根据 Dockerfile 来创建镜像,-t,--tag,镜像的名字及标签,通常 name:tag 或者 name 格式;可以在一次构建中为一个镜像设置多个标签。./ 表示当前 Dockerfile 所在目录。
[root@masternode git_repository]# cd showdoc
[root@masternode showdoc]# ls -ltr
total
-rw-r--r-- root root Jul : LICENSE.txt
-rw-r--r-- root root Jul : Dockerfile
-rw-r--r-- root root Jul : README.md
drwxr-xr-x root root Jul : Public
drwxr-xr-x root root Jul : Sqlite
-rw-r--r-- root root Jul : composer.json
-rw-r--r-- root root Jul : robots.txt
drwxr-xr-x root root Jul : install
-rw-r--r-- root root Jul : index.php
-rw-r--r-- root root Jul : favicon.ico
drwxr-xr-x root root Jul : documentation
drwxr-xr-x root root Jul : web
drwxr-xr-x root root Jul : server
drwxr-xr-x root root Jul : web_src
[root@masternode showdoc]# pwd
/opt/git_repository/showdoc
[root@masternode showdoc]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest f68d6e55e065 days ago 109MB
hello-world latest fce289e99eb9 months ago .84kB
[root@masternode showdoc]# docker build -t showdoc ./
......
[root@masternode showdoc]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
showdoc latest 40d2089cc644 seconds ago 384MB
nginx latest f68d6e55e065 days ago 109MB
hello-world latest fce289e99eb9 months ago .84kB
richarvey/nginx-php-fpm 1.5. 0b8e5203860f months ago 300MB
此处 docker build 时间比较长,镜像创建好之后,使用 docker images 可以看到。
四、新建并启动容器
此处会涉及到端口映射的概念。
[root@masternode showdoc]# docker run -d --name showdoc -p : showdoc
11f2354ab1cb48a264555660e8f363654f7bd23745f165fe03a379f94fabfe77
[root@masternode showdoc]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
11f2354ab1cb showdoc "docker-php-entrypoi…" seconds ago Up seconds /tcp, /tcp, 0.0.0.0:-> /tcp showdoc
此处使用 -d 选项表示后台运行,--name 指定容器名称,-p 进行端口映射,宿主机端口:容器端口,将允许映射容器内应用的服务端口到本地宿主机端口,此处将本地宿主机的 4999 映射到了容器的 80 端口。之后访问宿主机的 4999 端口即可访问容器内 Web 应用提供的界面。
五、访问应用
初次访问时,在浏览器中访问 http://192.168.56.110:4999/install/index.php 进行 showdoc 程序的初始化(192.168.56.110 为宿主机的 IP 地址),如下:



六、注意事项
showdoc容器中的 /var/www/html/Sqlite/showdoc.db.php 是数据库文件,数据都保存在该文件中;/var/www/html/Public/Uploads 目录中存放附件数据。
/var/www/html/Sqlite/showdoc.db.php 对应的转移文件为:/showdoc_data/html/Sqlite/showdoc.db.php;/var/www/html/Public/Uploads 对应的转移目录为:/showdoc_data/html/Public/Uploads
[root@masternode showdoc]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
11f2354ab1cb showdoc "docker-php-entrypoi…" hours ago Up hours /tcp, /tcp, 0.0.0.0:->/tcp showdoc
[root@masternode showdoc]# docker exec -it 11f2354ab1cb /bin/bash
bash-4.4# ls -ltr /var/www/html/Sqlite
total
-rwxrwxrwx nginx nginx Jul : showdoc.db.php
bash-4.4# ls -ltr /showdoc_data/html/Sqlite/
total
-rwxr-xr-x root root Jul : showdoc.db.php
bash-4.4# ls -ltr /showdoc_data/html/Public/Uploads
total
-rwxr-xr-x root root Jul : index.html
bash-4.4# ls -ltr /var/www/html/Public/Uploads
total
-rwxrwxrwx nginx nginx Jul : index.html
七、上传镜像到远程仓库
可以基于已有镜像 showdoc 的容器来创建新的 showdoc 镜像,然后将镜像推送到 Registry,此处使用阿里云的远程仓库。如下:
[root@masternode showdoc]# docker login --username=xxxxxx registry.cn-hangzhou.aliyuncs.com
Password:
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store Login Succeeded
[root@masternode showdoc]# docker tag showdoc registry.cn-hangzhou.aliyuncs.com/moonxy/showdoc:latest
[root@masternode showdoc]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
showdoc latest 40d2089cc644 minutes ago 384MB
registry.cn-hangzhou.aliyuncs.com/moonxy/showdoc latest 40d2089cc644 minutes ago 384MB
nginx latest f68d6e55e065 days ago 109MB
hello-world latest fce289e99eb9 months ago .84kB
richarvey/nginx-php-fpm 1.5. 0b8e5203860f months ago 300MB
[root@masternode showdoc]# docker push registry.cn-hangzhou.aliyuncs.com/moonxy/showdoc:latest
The push refers to repository [registry.cn-hangzhou.aliyuncs.com/moonxy/showdoc]
33079a95bf6b: Pushed
0e506a4e952d: Pushed
......
进入阿里云的容器镜像服务中,可以看到自己的 push 的镜像,如下:

如果是公共仓库,可以将镜像地址提供给别人,供别人 pull,如下:
docker pull registry.cn-hangzhou.aliyuncs.com/moonxy/showdoc:latest
参考文档
showdoc的 docker 安装方式:https://www.showdoc.cc/help?page_id=65610
修改已有 docker 容器中的内容:https://blog.csdn.net/dechengtju/article/details/85009836
使用 Docker 安装 showdoc的更多相关文章
- Docker安装ShowDoc
ShowDoc就是一个非常适合IT团队的在线文档分享工具,它可以加快团队之间沟通的效率. 一.下载showDoc资源 打开 https://github.com/star7th/showdoc 复制其 ...
- centos7 docker 安装showdoc
可参考 http://www.showdoc.cc/help?page_id=65610 1.下载代码,并上传服务器 https://github.com/star7th/showdoc 解压之后我的 ...
- CentOS6.5利用Docker部署ShowDoc
在Docker中部署ShowDoc 一.安装Docker 1.安装Docker yum install docker 最后出现Complete即可 2.启动服务 # service docker st ...
- docker 系列 - Docker 安装和Hub Mirror地址设置
======================为什么要使用Docker?======================= 容器真是个好东西, (1)容器能提供隔离性; (2)容器能打包环境, 简化部署难度 ...
- Docker搭建Showdoc
基础安装 安装前请确保你的环境已经装好了docker docker pull star7th/showdoc #新建存放showdoc数据的目录 mkdir /opt/showdoc mkdir ...
- 理解Docker(1):Docker 安装和基础用法
本系列文章将介绍Docker的有关知识: (1)Docker 安装及基本用法 (2)Docker 镜像 (3)Docker 容器的隔离性 - 使用 Linux namespace 隔离容器的运行环境 ...
- docker安装
系统要求:需要一个64位的centos7操作系统和版本3.10或更高版本的Linux内核 开始安装: uname -r //查看内核版本yum -y update //更新系统更新到最新 #安装d ...
- 2. Docker - 安装
一.Docker介绍 1. Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上, 也可以实现虚拟化. 容器时完全使用沙 ...
- Docker 安装部署
Docker学习笔记 一.Ubuntu Docker 安装 (1).获取最新版本Docker安装包 lyn@lyn:/data/docker$ sudo wget -qO- https://get.d ...
随机推荐
- 维恩贝特面试JAVA后台开发
1 自我介绍 2 链表和数组区别(数组空间连续,且有下标,查找快,但是增删数据效率不高,链表的空间不连续,查找起来慢,但是对数据的增删效率高,链表可以随意扩大,数组不能) 3 sort方法的实现 (A ...
- 从零写一个编译器(九):语义分析之构造抽象语法树(AST)
项目的完整代码在 C2j-Compiler 前言 在上一篇完成了符号表的构建,下一步就是输出抽象语法树(Abstract Syntax Tree,AST) 抽象语法树(abstract syntax ...
- SQL TRUNCATE TABLE 命令
SQL TRUNCATE TABLE 命令 SQL TRUNCATE TABLE 命令用于删除现有数据表中的所有数据. 你也可以使用 DROP TABLE 命令来删除整个数据表,不过 DROP TAB ...
- Spring入门(十):Spring AOP使用讲解
1. 什么是AOP? AOP是Aspect Oriented Programming的缩写,意思是:面向切面编程,它是通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术. 可以认为AOP是 ...
- 100天搞定机器学习|day45-53 推荐一本豆瓣评分9.3的书:《Python数据科学手册》
<Python数据科学手册>共五章,每章介绍一到两个Python数据科学中的重点工具包.首先从IPython和Jupyter开始,它们提供了数据科学家需要的计算环境:第2章讲解能提供nda ...
- Flac无损音频导入premiere
安装Ogg Vorbis插件即可导入FLAC音频 项目地址:https://github.com/fnordware/AdobeOgg 下载地址:http://www.fnordware.com/do ...
- java设计模式7.策略模式、模板方法模式、观察者模式
策略模式 策略模式的用意,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换.策略模式使得算法可以在不影响到客户端的情况下发生变化. 环境角色:持有一个抽象策略角色的引用. 抽象策略 ...
- HDU2485Destroying the bus stations 拆点网络流求割点个数
题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=2485 题目要求:删除最少的点,使得源点到汇点的距离大于k 思路:拆点.建图求费用小于等于k的最大流 # ...
- zoj 3261 Connections in Galaxy War(并查集逆向加边)
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3261 题意:有很多颗星球,各自有武力值,星球间有一些联系通道,现 ...
- [NOI1995]石子合并 题解
一道经典的dp题 在一个圆形操场的四周摆放N堆石子,现要将石子有次序地合并成一堆.规定每次只能选相邻的2堆合并成新的一堆,并将新的一堆的石子数,记为该次合并的得分. 试设计出1个算法,计算出将N堆石子 ...