【实验】使用docker-compose编排lnmp(dockerfile) 完成Wordpress 部署

环境准备

docker:192.168.67.30

虚拟机:4核4G

关闭防火墙
systemctl stop firewalld 
systemctl disable firewalld
setenforce 0

安装docker

直接点击【复制】粘贴到xshell中即可,

执行过程中若出现睡眠(sleep)通过 kill -9 pid号 ,杀掉重新执行即可

#安装依赖包
yum -y install yum-utils device-mapper-persistent-data lvm2
#设置阿里云镜像
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 
#安装最新版本的docker
yum -y install docker-ce docker-ce-cli containerd.io
#设置开机自启
systemctl enable docker.service 
#镜像加速下载
mkdir -p /etc/docker
tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://fil0uwf5.mirror.aliyuncs.com"]
}
EOF
#重新加载配置,重启docker
systemctl daemon-reload
systemctl restart docker
#下载镜像
docker pull centos:7
docker images

部署nginx、mysql、php 镜像

请参考:http://t.csdnimg.cn/jmeMb 博客

docker-compose部署

#下载
curl -L https://github.com/docker/compose/releases/download/1.21.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
 
#安装
chmod +x /usr/local/bin/docker-compose
 
#查看版本
docker-compose --version

①直接拉取了docker-compose文件

②链接下载(太慢了,不建议用)

创建docker-compose.yml文件
cd /opt/lnmp/
vim /opt/lnmp/docker-compose.yml
i
version: '3'
services:
  nginx:
    container_name: fwl-nginx
    hostname: nginx
    build:
      context: /opt/lnmp/nginx
      dockerfile: Dockerfile
    ports:
      - 80:80
      - 443:443
    networks:
      lnmp:
        ipv4_address: 172.18.0.10
    volumes:
      - /opt/lnmp/nginx/html:/usr/local/nginx/html

  mysql:
    container_name: fwl-mysql
    hostname: mysql
    build:
      context: /opt/lnmp/mysql
      dockerfile: Dockerfile
    ports:
      - 3306:3306
    networks:
      lnmp:
        ipv4_address: 172.18.0.20
    volumes:
      - db-data:/usr/local/mysql
    privileged: true

  php:
    container_name: fwl-php
    hostname: php
    build:
      context: /opt/lnmp/php
      dockerfile: Dockerfile
    ports:
      - 9000:9000
    networks:
      lnmp:
        ipv4_address: 172.18.0.30
    volumes:
      - db-data:/usr/local/mysql
      - /opt/lnmp/nginx/html:/usr/local/nginx/html
    depends_on:
      - nginx
      - mysql

networks:
  lnmp:
    driver: bridge
    ipam:
      config:
        - subnet: 172.18.0.0/16
volumes:
  db-data:
拉取centos:7镜像

前面安装docker时如果创建过了,就不用再做了

执行前查看一下

执行docker-compose 创建镜像

docker-compose -f docker-compose.yml up -d

登录mysql

xxxxxxxxxx docker exec -it mysql /bin/bash
mysql -uroot -p

#建库
create database wordpress;
#查看
show databases;
#赋权
grant all privileges on wordpress.* to 'wordpress'@'%' identified by '123456';
grant all privileges on *.* to 'root'@'%' identified by 'abc123';
#刷新
flush privileges;

浏览器访问
http://192.168.67.30/wordpress/index.php

点击【现在就开始!】

输入刚才创建的【数据库名】、赋权并创建的【用户名】和【密码】,点击【提交】

创建wp-config.php 文件
cd /opt/lnmp/nginx/html/wordpress/
ls
#备份后再修改
cp wp-config-sample.php wp-config.php
vim wp-config.php
i

修改23行的数据库名称

修改26行的用户名

修改29行的数据库密码

输入【用户名】、【密码】,勾选【确认使用弱密码】

输入你的【邮箱地址】

点击【安装WordPress】

点击【登录】

输入【用户名】和【密码】,勾选【记住我的登录信息】

点击【登录】

登录成功页

报错总结

无法拉取镜像

报错:WARNING: IPv4 forwarding is disabled. Networking will not work.

原因:IPv4转发可能被系统内核参数禁用;也可能是由于网络配置文件中的错误设置导致的

解决方法


#先检查是否能上网
ping baidu.com
#不能上网去改ifcfg-ens33,DNS1=114.114.114.114


#永久启用IPv4转发
vim /etc/systcl.conf
#找到并取消注释以下行(如果不存在则添加):
net.ipv4.ip_forward = 1
#保存文件后,运行以下命令使更改生效
sudo sysctl -p

地址池冲突

报错:ERROR: Pool overlaps with other one on this address space

原因:地址池冲突

解决:删除冲突的网路,或者修改要新建的网络地址池

mysql编译安装过程中报错

报错:make: *** [all] Error 2

原因:大概率时因为网络不稳定

解决:重新执行一边命令

docker-compose -f docker-compose.yml up -d

扩展命令

删除所有已停止的容器
docker rm $(docker ps -aq)
批量停止容器
docker ps -a | awk 'NR>=2 {print "docker stop "$1}'|bash
vim 中的set: 命令
:set paste  命令用来启用或禁用粘贴模式,自动缩进、自动补全等功能
:set autoindent 命令来启用自动缩进功能
打包目录
tar -cf docker-compose-lnmp.tar.gz lnmp
上传到宿主机
sz docker-compose-lnmp.tar.gz
nginx 的启动和停止
启动:nginx
停止:nginx -s stop
重载配置文件:nginx -s reload

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值