zoukankan      html  css  js  c++  java
  • 使用 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 777 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 36
    -rw-r--r--  1 root root 1743 Jul  6 21:00 LICENSE.txt
    -rw-r--r--  1 root root  257 Jul  6 21:00 Dockerfile
    -rw-r--r--  1 root root 4221 Jul  6 21:00 README.md
    drwxr-xr-x 14 root root  214 Jul  6 21:00 Public
    drwxr-xr-x  2 root root   28 Jul  6 21:00 Sqlite
    -rw-r--r--  1 root root  564 Jul  6 21:00 composer.json
    -rw-r--r--  1 root root   30 Jul  6 21:00 robots.txt
    drwxr-xr-x  2 root root  142 Jul  6 21:00 install
    -rw-r--r--  1 root root 1023 Jul  6 21:00 index.php
    -rw-r--r--  1 root root 4286 Jul  6 21:00 favicon.ico
    drwxr-xr-x  4 root root   29 Jul  6 21:00 documentation
    drwxr-xr-x  3 root root   38 Jul  6 21:00 web
    drwxr-xr-x  4 root root   75 Jul  6 21:00 server
    drwxr-xr-x  7 root root  250 Jul  6 21:00 web_src
    [root@masternode showdoc]# pwd
    /opt/git_repository/showdoc
    [root@masternode showdoc]# docker images
    REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
    nginx               latest              f68d6e55e065        4 days ago          109MB
    hello-world         latest              fce289e99eb9        6 months ago        1.84kB
    [root@masternode showdoc]# docker build -t showdoc ./
    ......
    [root@masternode showdoc]# docker images
    REPOSITORY                TAG                 IMAGE ID            CREATED             SIZE
    showdoc                   latest              40d2089cc644        15 seconds ago      384MB
    nginx                     latest              f68d6e55e065        4 days ago          109MB
    hello-world               latest              fce289e99eb9        6 months ago        1.84kB
    richarvey/nginx-php-fpm   1.5.4               0b8e5203860f        12 months ago       300MB

    此处 docker build 时间比较长,镜像创建好之后,使用 docker images 可以看到。

    四、新建并启动容器

    此处会涉及到端口映射的概念。

    [root@masternode showdoc]# docker run -d --name showdoc -p 4999:80 showdoc
    11f2354ab1cb48a264555660e8f363654f7bd23745f165fe03a379f94fabfe77
    [root@masternode showdoc]# docker ps
    CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                                                                              NAMES
    11f2354ab1cb        showdoc             "docker-php-entrypoi…"   9 seconds ago       Up 8 seconds        443/tcp, 9000/tcp, 0.0.0.0:4999->80                                         /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…"   18 hours ago        Up 8 hours          443/tcp, 9000/tcp, 0.0.0.0:4999->80/tcp   showdoc
    [root@masternode showdoc]# docker exec -it 11f2354ab1cb /bin/bash
    bash-4.4# ls -ltr /var/www/html/Sqlite
    total 252
    -rwxrwxrwx    1 nginx    nginx       258048 Jul  7 08:31 showdoc.db.php
    bash-4.4# ls -ltr /showdoc_data/html/Sqlite/
    total 252
    -rwxr-xr-x    1 root     root        258048 Jul  6 14:20 showdoc.db.php
    bash-4.4# ls -ltr /showdoc_data/html/Public/Uploads
    total 4
    -rwxr-xr-x    1 root     root             1 Jul  6 14:20 index.html
    bash-4.4# ls -ltr /var/www/html/Public/Uploads
    total 4
    -rwxrwxrwx    1 nginx    nginx            1 Jul  6 13:00 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        23 minutes ago      384MB
    registry.cn-hangzhou.aliyuncs.com/moonxy/showdoc   latest              40d2089cc644        23 minutes ago      384MB
    nginx                                              latest              f68d6e55e065        4 days ago          109MB
    hello-world                                        latest              fce289e99eb9        6 months ago        1.84kB
    richarvey/nginx-php-fpm                            1.5.4               0b8e5203860f        12 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

  • 相关阅读:
    [NOI2016]循环之美(杜教筛)
    [CF600E]Dsu on tree
    [POI2015]Myjnie
    [POI2015]Odwiedziny
    [POI2015]Logistyka
    [POI2015]Wilcze doły
    [POI2017]Sabotaż
    [BZOJ3928/4048]Outer space invaders
    [BZOJ5109]大吉大利,晚上吃鸡!
    [AGC016E]Poor Turkeys
  • 原文地址:https://www.cnblogs.com/cnjavahome/p/11146333.html
Copyright © 2011-2022 走看看