最近同学买了一台虚机( centos7 系统 )、一个域名,让帮忙搭一个个人博客。本着简单快捷,个人博客采用 wordpress 来搭建。为了以后博客系统的迁移方便,使用 docker 来安装 wordpress。下面是这次博客搭建的详细过程。
一、更新 centos
yum -y update
二、安装 docker
yum install docker
启动 docker:systemctl start docker
设置开机启动:systemctl enable docker
三、安装 docker-compose
docker-compose 是布署多个容器的简单有效工具,由于博客系统搭建需要安装 wordpress 、mysql 两个容器,所以采用 docker-compose 来布署。docker-compose 的安装有不同的方式,这里采用的是 pip 安装。
1、安装 python-pip
yum -y install epel-release yum -y install python-pip
2、升级 pip
pip install --upgrade pip
查看安装是否成功:pip -V
3、安装 docker-compose
pip install docker-compose
报错:
Cannot uninstall “requests”. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall.
处理:
pip install docker-compose --ignore-installed requests
四、编写 docker-compose 脚本文件 docker-compose.yml
version: '3.3' services: db: image: mysql:5.7 volumes: - db_data:/var/lib/mysql restart: always environment: MYSQL_ROOT_PASSWORD: wordpress123 MYSQL_DATABASE: wordpress MYSQL_USER: wordpress MYSQL_PASSWORD: wordpress123 wordpress: depends_on: - db image: wordpress:latest ports: - "9090:80" restart: always environment: WORDPRESS_DB_HOST: db:3306 WORDPRESS_DB_USER: wordpress WORDPRESS_DB_PASSWORD: wordpress123 volumes: db_data: {}
五、使用 docker-compose 构建并运行程序
在 docker-compose.yml 的目录下运行
docker-compose up -d
浏览器输入:http://0.0.0.0:9090 进入 wordpress 安装页面
六、绑定域名
由于以后还会在这台机器上布署其他系统,所以没有给 wordpress 暴露到 80 端口,在绑定域名前需要用 nginx 做层代理
1、安装 nginx
yum install -y nginx
2、配置 nginx
# vim /etc/nginx/nginx.conf ... http { ... server { listen 80; server_name xxx.com; location / { proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header REQUEST-URI $request_uri; proxy_set_header Cookie $http_cookie; proxy_pass http://localhost:9090; proxy_cookie_domain domino.server nginx.server; proxy_redirect off; } } }
3、启动 nginx 并设置开机自动运行
systemctl start nginx.service
systemctl enable nginx.service
4、wordpress 设置,进入 wordpress 管理页面
二个 URL 都设置为域名 如果不设置 URL,每次访问域名会自动跳转到 http://ip:port
浏览器输入 http://xxxx.com ,一个个人博客诞生了。