一、简介

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的更多相关文章

  1. Docker安装ShowDoc

    ShowDoc就是一个非常适合IT团队的在线文档分享工具,它可以加快团队之间沟通的效率. 一.下载showDoc资源 打开 https://github.com/star7th/showdoc 复制其 ...

  2. centos7 docker 安装showdoc

    可参考 http://www.showdoc.cc/help?page_id=65610 1.下载代码,并上传服务器 https://github.com/star7th/showdoc 解压之后我的 ...

  3. CentOS6.5利用Docker部署ShowDoc

    在Docker中部署ShowDoc 一.安装Docker 1.安装Docker yum install docker 最后出现Complete即可 2.启动服务 # service docker st ...

  4. docker 系列 - Docker 安装和Hub Mirror地址设置

    ======================为什么要使用Docker?======================= 容器真是个好东西, (1)容器能提供隔离性; (2)容器能打包环境, 简化部署难度 ...

  5. Docker搭建Showdoc

      基础安装 安装前请确保你的环境已经装好了docker docker pull star7th/showdoc #新建存放showdoc数据的目录 mkdir /opt/showdoc mkdir ...

  6. 理解Docker(1):Docker 安装和基础用法

    本系列文章将介绍Docker的有关知识: (1)Docker 安装及基本用法 (2)Docker 镜像 (3)Docker 容器的隔离性 - 使用 Linux namespace 隔离容器的运行环境 ...

  7. docker安装

    系统要求:需要一个64位的centos7操作系统和版本3.10或更高版本的Linux内核 开始安装: uname -r   //查看内核版本yum -y update //更新系统更新到最新 #安装d ...

  8. 2. Docker - 安装

    一.Docker介绍 1. Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上, 也可以实现虚拟化. 容器时完全使用沙 ...

  9. Docker 安装部署

    Docker学习笔记 一.Ubuntu Docker 安装 (1).获取最新版本Docker安装包 lyn@lyn:/data/docker$ sudo wget -qO- https://get.d ...

随机推荐

  1. JVM面试十问

    1. JVM运行时划分哪几个区域?哪些区域是线程共享的?哪些区域是线程独占的? JVM运行时一共划分:程序计数器.虚拟机栈.堆.本地方法栈.方法区. 线程共享的数据区域:堆.方法区. 线程独享的数据区 ...

  2. 用原生JS实现AJAX和JSONP

    前端开发在需要与后端进行数据交互时,为了方便快捷,都会选择JQuery中封装的AJAX方法,但是有些时候,我们只需要JQuery的AJAX请求方法,而其他的功能用到的很少,这显然是没必要的.其实,原生 ...

  3. BUPTOJj83

    83. A + B Problem 时间限制 1000 ms 内存限制 65536 KB 题目描述 Calculate the sum of two given integers A and B. 输 ...

  4. bs4-BeautifulSoup

    1.BeautifulSoup下载 pip install BeautifulSoup4 或者 pip install bs4 pip install lxml #解析器 2.BeautifulSou ...

  5. 使用Sigar做后台服务器管理时,遇到的linux上的问题

    首先是线下猛如虎,线上惨不忍赌........ 问题的出处是: function change() { /*获取cpu*/ $.ajax({ url: "http://localhost:8 ...

  6. GIT和SVN教程

    各种版本控制工具的简单比较 特性 CVS SVN GIT 并发修改 支持 支持 支持 并发提交 不支持 支持 支持 历史轨迹 不支持更名 支持更名 支持更名 分布式 不支持 不支持 支持 SVN SV ...

  7. 【翻译】无需安装Python,就可以在.NET里调用Python库

    原文地址:https://henon.wordpress.com/2019/06/05/using-python-libraries-in-net-without-a-python-installat ...

  8. 消息中间件——RabbitMQ(八)高级特性全在这里!(下)

    前言 上一篇消息中间件--RabbitMQ(七)高级特性全在这里!(上)中我们介绍了消息如何保障100%的投递成功?,幂等性概念详解,在海量订单产生的业务高峰期,如何避免消息的重复消费的问题?,Con ...

  9. 写博客没高质量配图?python爬虫教你绕过限制一键搜索下载图虫创意图片!

    目录 前言 分析 理想状态 爬虫实现 其他注意 效果与总结 @(文章目录) 前言 在我们写文章(博客.公众号.自媒体)的时候,常常觉得自己的文章有些老土,这很大程度是因为配图没有选好. 笔者也是遇到相 ...

  10. 18_init 函数的使用

    1.init()函数是一个内置函数,在程序执行前会先执行init()函数,及在main()函数执行前执行 2.如果调用包里有init()函数,会先执行调用包的init()函数,在这执行本函数的init ...