Docker实践3:fig搭建mediawiki

fig,无花果。fig项目源自docker,可以认为是快速搭建基于Docker的隔离开发环境的工具。

一、安装fig

$ mkdir docker; cd docker

$ curl -L https://github.com/docker/fig/releases/download/1.0.1/fig-`uname -s`-`uname -m` > fig

$ sudo chmod +x fig; sudo mv /usr/local/bin/

二、搭建mediawiki

使用个人构建的镜像,github地址:https://github.com/bopjiang/wikimedia-docker

在docker目录下执行如下命令:

$ git clone https://github.com/bopjiang/wikimedia-docker.git
$ cd wikimedia-docker
$ fig up -d

此时有两个容器启动:

r$ docker ps
CONTAINER ID        IMAGE                           COMMAND                CREATED             STATUS              PORTS                  NAMES
21182a060c17        nickstenning/mediawiki:latest   "/usr/bin/mediawiki-   7 hours ago         Up 7 hours          0.0.0.0:8880->80/tcp   wikimediadocker_wiki2_1
728ec09c3552        mysql:5.7.5                     "/entrypoint.sh mysq   7 hours ago         Up 7 hours          3306/tcp               wikimediadocker_db_1    

三、fig.yml

fig.yml用来配置镜像构建的具体内容,此wiki的fig.yml在wikimedia-docker目录下,内容如下:

wiki2:
    image: ‘nickstenning/mediawiki‘
    ports:
        - "8880:80"
    links:
        - db:database
    volumes:
        - /data/wiki2:/data

db:
    image: "mysql:5.7.5"
    expose:
        - "3306"
    environment:
        - MYSQL_ROOT_PASSWORD=defaultpass

image:用来指定镜像,如果本地没有,fig将会尝试去远程pull这个镜像。
ports:暴露的端口.

links:在其他服务中连接容器。

volumes: 卷挂载路径,容器中的/data/目录挂载到主机的/data/wiki2下。在wiki配置完毕后,将LocalSettings.php文件放置在主机的/data/wiki2目录下。

expose:也是暴露端口,与ports的区别是不发布到宿主机的端口,只被连接的服务访问。

environment:设置环境变量。

四、wiki的配置

浏览器中输入localhost:8880,首次启动会让进入配置界面。完成后生成LocalSettings.php文件。也可以直接在这个配置文件中作配置。

五、wiki的使用技巧

1.左侧导航栏的配置
以管理员身份登录,在搜索栏中输入MediaWiki:sidebar
进入配置界面后就可以编辑了。比如:
<pre>
navigation
    http://192.168.0.111:8880/index.php?title=Category:XXX|XXX
    mainpage|mainpage-description
    portal-url|portal
</pre>

3.分类
文章的末尾加入"category"标签即可将此文章放到了xxx分类中,一篇文章可以加入多个分类。
比如:[[category:XXX]]

4.新文章
在Search中输入你的文章名称即可Edit。

5.换行
用br标签可以换行。<br>
空一行也会有换行效果。

6.pre标签包围源代码
例如:
<pre>
private int mSize;
</pre>

六、保存容器和导入

sudo docker commit 9ab6e234c9ba linc-wiki

sudo docker images REPOSITORY               TAG                 IMAGE ID            CREATED             VIRTUAL SIZE linc-wiki                latest              b5a1e34b01c2        14 seconds ago      689.7 MB

sudo docker export 9ab6e234c9ba > /home/linc/docker/images-bk/linc-wiki-export.tar
sudo docker save linc-wiki > ../images-bk/linc-wiki-save.tar

$ du -sh *
495M    linc-wiki-export.tar
672M    linc-wiki-save.tar

sudo cat /home/linc/docker/images-bk/linc-wiki-export.tar | sudo docker import - docker_hgweb
sudo docker load --input ../images-bk/linc-wiki-save.tar

附录:

1.fig使用报错及解决

fig running error:

$ fig up
Couldn‘t connect to Docker daemon at http:/ - is it running?

If it‘s at a non-standard location, specify the URL with the DOCKER_HOST environment variable.

fix it:

1) Change the DOCKER_OPTS in /etc/default/docker to:
DOCKER_OPTS="-H tcp://127.0.0.1:4243 -H unix:///var/run/docker.sock"

2) Restart docker
sudo restart docker

3) Make sure that docker is running on localhost:4243
$ netstat -ant  |grep 4243
tcp        0      0 127.0.0.1:4243          0.0.0.0:*               LISTEN

4) Set DOCKER_HOST (.bashrc)
export DOCKER_HOST=tcp://localhost:4243

$ echo $DOCKER_HOST
tcp://localhost:4243 

参考:

dockerpool.com/static/books/docker_practice/fig/yml_ref.html

时间: 2024-11-09 06:22:37

Docker实践3:fig搭建mediawiki的相关文章

Docker实践5:搭建redmine

Redmine是一个开源的项目管理系统,它有如下优势让我选择它作为我的项目管理工具. 1.支持多项目管理 2.灵活的角色管理 3.灵活的issue/bug跟踪管理 4.支持甘特图和日历 5.支持新闻.文档和文件管理,邮件通知等功能 6.每个项目有自己的wiki和论坛,这一点非常棒 7.与SCM系统集成,支持SVN, CVS, Git, Mercurial, Bazaar and Darcs等源代码管理工具,这一点同样非常棒 有了Redmine,让项目经理不用愁管理项目了. 同样,看看官方是否出d

Docker实践9:备份方案

1 两个文件系统 先提一下两个重要的文件系统概念,一个是aufs,一个是vfs. aufs是一个类似于Unionfs的可堆叠联合文件系统.它将多个目录整合成单一的目录.ubuntu对其有良好的支持,因此docker的镜像就存储在aufs文件系统下. vfs是linux的内核中一个重要概念,这个虚拟文件系统可以让open().read().write()等系统调用不用关心底层的存储介质和文件系统类型就可以工作的粘合层. 2 docker镜像与容器的存储 docker的层次结构如上图. docker

Docker实践(4)—network namespace与veth pair

network namespace 创建network namespace # ip netns add blue # ip netns list blue 添加网口到namespace 先创建veth # ip link add veth0 type veth peer name veth1 在当前namespace可以看到veth0和veth1 # ip link list 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue stat

SUSE Enterpris 11 SP2搭建mediawiki指南

0.libxml2的安装 libxml是一个用来解析XML文档的函数库. a)检查可用软件包 终端输入命令:zypper se libxml2 出现Abort, retry, ignore? [a/r/i/?] (a): 输入i,选择忽视即可 b)安装libxml2 终端输入命令: zypper install libxml2 出现Abort, retry, ignore? [a/r/i/?] (a): 输入i,选择忽视即可 请求下载输入y c)安装libxml2-develop : zyppe

Docker实践(3)—浅析device mapeper的thin provoision

thin provision是在 kernel3.2 中引入的.它主要有以下一些特点: (1)允许多个虚拟设备存储在相同的数据卷中,从而达到共享数据,节省空间的目的: (2)支持任意深度的快照.之前的实现的性能为O(n),新的实现通过一个单独的数据避免了性能随快照深度的增加而降低. (3)支持元数据存储到单独的设备上.这样就可以将元数据放到镜像设备或者更快的SSD上. 上面3个特性正是devicemapper支持docker存储镜像的关键特性. 使用lvm管理thin provisioning

Docker实践(1)—入门

tutorial centos6.5环境. # yum install docker-io -y 会依赖安装libcgroup,lxc,lxc-libs 启动docker # service docker start Starting cgconfig service: [确定] Starting docker:        [确定] 获取最新的docker image # docker pull centos:latest 运行image # docker run -i -t centos

搭建MediaWiki服务器

系统信息:# cat /etc/redhat-release CentOS release 6.4 (Final) MediaWiki官网:http://www.mediawiki.org/wiki/MediaWiki 1.安装所需软件yum install httpd php php-mysql php-gd mysql-server php-xml mysql service mysqld startmysql_secure_installation 2.数据库授权mysql -u root

Docker实践(一)

Docker实践 什么是LXC? LXC为Linux Container的简写.Linux Container容器是一种内核虚拟化技术,可以提供轻量级的虚拟化,以便隔离进程和资源,而且不需要提供指令解释机制以及全虚拟化的其他复杂性.相当于C++中的NameSpace.容器有效地将由单个操作系统管理的资源划分到孤立的组中,以更好地在孤立的组之间平衡有冲突的资源使用需求.与传统虚拟化技术相比,它的优势在于: 与宿主机使用同一个内核,性能损耗小: 不需要指令级模拟: 不需要即时(Just-in-tim

Docker实践,来自沪江、滴滴、蘑菇街架构师的交流分享

架构师小组交流会:每期选一个时下最热门的技术话题进行实践经验分享. 第一期主题:容器实践.Docker 作为当前最具颠覆性的开源技术之一,其轻量虚拟化.可移植性是CI/CD,DevOps,微服务的重要实现技术.但目前技术还不够成熟,在生产实践中会遇到不少坑.本期参与小组交流的是国内较早采用 Docker 实践的公司. 参与嘉宾:沪江架构师黄凯.滴滴架构师田智伟.蘑菇街架构师张振华.蘑菇街运维架构师向靖.七牛技术总监袁晓沛.扇贝技术总监丁彦 第一轮:自由交流 沪江黄凯:大家好,我是来自沪江的 Ja