使用 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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM