环境准备
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