一、简介

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. 颜色下拉菜单(combox)

    using System; using System.Drawing; using System.Collections; using System.ComponentModel; using Sys ...

  2. 前端小知识-js

    一.对象冒充 function student(name,age){ this.name = name; this.age = age; this.show = function(){ console ...

  3. ALTER TABLE permission is required on the target table of a bulk copy operation if the table has triggers or check constraints, but 'FIRE_TRIGGERS' or 'CHECK_CONSTRAINTS' bulk hints are not specified

    这个是使用SqlBulkCopy进行批量复制导致的异常,此问题涉及大容量导入数据时,控制大容量导入操作是否执行(触发)触发器.大容量导入操作应只对包含支持多行插入的 INSERT 和 INSTEAD ...

  4. 二级小兵——工厂模式(Factory Method)

    前言 上一篇我们介绍了单例模式,今天给大家讲一个比较简单的模式——工厂模式(Factory Method),工厂模式又是什么呢?顾名思义,工厂——生产制造东西的地方.那么应用在程序当中该如何使用.并且 ...

  5. 《Java 8 in Action》Chapter 6:用流收集数据

    1. 收集器简介 collect() 接收一个类型为 Collector 的参数,这个参数决定了如何把流中的元素聚合到其它数据结构中.Collectors 类包含了大量常用收集器的工厂方法,toLis ...

  6. Leetcode之二分法专题-275. H指数 II(H-Index II)

    Leetcode之二分法专题-275. H指数 II(H-Index II) 给定一位研究者论文被引用次数的数组(被引用次数是非负整数),数组已经按照升序排列.编写一个方法,计算出研究者的 h 指数. ...

  7. Spring框架核心知识介绍

    一:spring框架介绍   1.spring框架是为了解决复杂的企业级应用而创建的, 使用Spring可以让简单的JavaBean实现之前只有EJB才能完成的事情.但是Spring不仅仅局限于服务器 ...

  8. PyTorch : torch.nn.xxx 和 torch.nn.functional.xxx

    PyTorch : torch.nn.xxx 和 torch.nn.functional.xxx 在写 PyTorch 代码时,我们会发现一些功能重复的操作,比如卷积.激活.池化等操作.这些操作分别可 ...

  9. 洛谷P1939【模板】矩阵加速(数列)+矩阵快速幂

    思路: 这个 a[1]=a[2]=a[3]=1 a[x]=a[x-3]+a[x-1] (x>3) 可以想成: [a(n) ] [1 0 1] [a(n-1)   ] [a(n-1) ] =    ...

  10. HDU2896病毒入侵AC_自动机

    #include <iostream> #include <cstdio> #include <cstring> #include <algorithm> ...