Docker搭建MediaWiki
一、安装docker环境
1. 安装依赖
[root@centos8 ~]# sudo yum install -y yum-utils device-mapper-persistent-data lvm2
[root@centos8 ~]# sudo yum-config-manager —add-repo https://download.docker.com/linux/centos/docker-ce.repo
[root@centos8 ~]# sudo yum install docker-ce docker-ce-cli containerd.io
[root@centos8 ~]# sudo systemctl start docker
[root@centos8 ~]# docker —version
Docker version 20.10.7, build f0df350
设置开机自启
[root@centos8 ~]# sudo systemctl enable docker如果国外的Docker镜像很慢的话,则可以基于阿里云镜像来安装Docker。
[root@centos8 ~]# yum-config-manager —add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
[root@centos8 ~]# dnf install https://mirrors.aliyun.com/docker-ce/linux/centos/7/x86_64/stable/Packages/containerd.io-1.2.13-3.1.el7.x86_64.rpm
[root@centos8 ~]# dnf install docker-ce接着,设置开机自启Docker并启动Docker:
[root@centos8 ~]# systemctl enable docker.service
[root@centos8 ~]# systemctl start docker.service接着,我们可以使用Docker进行容器的创建
docker info # 查看docker的信息
docker search img_name # 搜索名为img_name的镜像
docker pull img_name # 将名为img_name的镜像下载到本地
docker images # 查看本地已有的镜像
docker rmi img_name # 删除名为img_name的镜像
docker ps # 列出正在运行的容器
docker ps -a # 列出所有的容器
docker run -itd —name=container_name img_name # 使用img_name以交互模式在后台运行分配了伪终端的名为container_name的镜像
docker start container_name/container_id # 通过容器名字或ID启动容器
docker stop container_name/container_id # 通过容器名字或ID停止容器
docker restart container_name/container_id # 通过容器名字或ID重启容器
docker rm container_name/container_id # 通过容器名字或ID删除容器
docker exec -it container_name/container_id /bin/bash # 通过容器名字或ID进入容器
exit # 退出容器
二、安装mysql
[root@centos8 ~]# mkdir -p /data/
[root@centos8 ~]# mkdir -p /data/mediawiki
[root@centos8 ~]# mkdir -p /data/mysql
[root@centos8 ~]# docker pull mysql:5.7
[root@centos8 ~]# docker run -itd -p 3306:3306 —name wiki-mysql -e MYSQL_ROOT_PASSWORD=123456 —restart=always —restart=on-failure:1 —oom-score-adj -1000 —privileged=true —log-opt max-size=10m —log-opt max-file=1 -v /data/mysql:/var/lib/mysql mysql:5.7
创建数据库以及用户,并开启远程连接权限
[root@centos8 ~]# docker exec -it wiki-mysql /bin/bash
root@8440f16cba3e:/# mysql -p123456
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.35 MySQL Community Server (GPL)
Copyright (c) 2000, 2021, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.
mysql> create database my_wiki;
Query OK, 1 row affected (0.00 sec)
mysql> create user ‘wikiuser’@’%’ identified by ‘123456’;
Query OK, 0 rows affected (0.00 sec)
mysql> grant all privileges on my_wiki.* to ‘wikiuser’@’%’ with grant option;
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
三、安装MediaWiki
MediaWiki 需要依赖于 MySQL,所以要先启动 MySQL,再启动 MediaWiki,不然启动会失败。
[root@centos8 ~]# docker pull mediawiki:1.31.1
[root@centos8 ~]# docker run -itd —name mywiki -p 8080:80 —privileged=true —restart=always —link wiki-mysql:mysql mediawiki:1.31.1
四、初始化设置
http://192.168.10.231:8080/
选择mysql,注意:修改ip地址为服务器ip。数据库用户:wikiuser,密码:123456
选择数据库引擎为InnoDB
设置全局名称和添加管理员
注意:wiki名称,一般为公司名
密码:必须8位以上,且符合复杂性要求
账号:admin 密码:hadoop123456
正式安装
安装完成
注意:页面会自动下载一个LocalSettings.php
注意:先不要点击进入您的wiki,还查一个步骤,否则会出错的。
登录到服务器,将 LocalSettings.php 上传到服务器,比如:/tmp目录
可以使用Xshell连接上传,但需要先yum安装lrzsz
[root@centos8 ~]# yum install -y lrzsz
将 LocalSettings.php 复制到容器中的wiki根目录
[root@centos8 ~]# ls
anaconda-ks.cfg LocalSettings.php
[root@centos8 ~]# docker cp LocalSettings.php wiki:/var/www/html/
点击上图中的 进入您的wiki
它会调转链接:
http://192.168.31.149:8080/index.php/首页
网页持久化配置
目前的php代码在容器里面,一旦重启,数据就丢失了。
复制网页目录
[root@centos8 ~]# docker cp wiki:/var/www/html /data/mediawiki/
杀掉docker,以新的方式启动。
[root@centos8 ~]# docker rm -f wiki
[root@centos8 ~]# docker run -itd —name wiki -p 8080:80 -v /data/mediawiki/html:/var/www/html —privileged=true —restart=always —link wiki-mysql:mysql mediawiki:1.31.1
c04ef323a46bfc72799453819cdf45ed7f59966849f2b4f02c82e15069b62a8e