文章的主要部分是一步一步的教程,文章的最后是我整理好的一键安装命令,自动下载并安装docker,构建镜像,启动容器集群(压缩包内注释覆盖范围达到80%)
大家可以看完教程亲自尝试下,也可以直接执行一键安装命令,整个过程大概10分钟左右,我在四台不同的机器上执行过该命令,由于网络原因,5-15分钟不等。
如本文章内容与通过一键安装下载的不同,以一键安装的为准,一键安装版本会继续更新,v1.3.0版本支持memcache 和 redis。
执行完一键安装后,直接访问 你的IP:8081 访问即可出现phpinfo页面的内容
本次部署,旨在单台服务器上使用docker构建集成环境,并运行Nginx+PHP项目
宿主机系统:CentOS7+ 内存4G
安装docker环境
首先更新yum
$ sudo yum update
移除docker旧版本(如果有的话)
$ sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine
安装系统依赖
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
添加软件源信息
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
更新yum缓存
sudo yum makecache fast
安装docker-ce
sudo yum -y install docker-ce
启动docker 后台服务
sudo systemctl start docker
建议使用阿里镜像加速,百度一下就有教程,步骤很简单,否则下载docker官方镜像可能会很慢
测试运行 hello-world
[root@runoob ~]# docker run hello-world
docker run 命令会先在本地查找 hello-world镜像,如果本地没有会自动下载一个到本地,然后在运行hello-world
删除docker-ce(如想卸载docker可以执行下面的命令)
$ sudo yum remove docker-ce
$ sudo rm -rf /var/lib/docker
现在我们已经有了docker环境,下面我们要用docker 构建 Nginx和PHP, 关于数据库,我们还是使用之前的数据库服务器,
下面使用Dockerfile 构建 Nginx环境,
在/root目录下 新建 docker-env文件夹,这里面包含nginx和php的镜像构建的所有文件和配置,以及Dockerfile
cd /root
mkdir docker-env //建立文件夹
cd docker-env/
mkdir nginx //存放nginx相关文件
cd nginx/
touch Dockerfile && mkdir conf && mkdir logs && mkdir html && mkdir www //创建Dockerfile文件,建立nginx的配置目录和日志等目录
nginx文件夹下的Dockerfile内容如下, 用来构建属于自己的nginx镜像
[root@mdm nginx]# cat Dockerfile
# 基础镜像
FROM centos
# 维护者
MAINTAINER 271648298@qq.com
# 安装wget下载工具
RUN yum install -y wget
# 切换到usr/lcoal/src/目录,相当于cd,并可以用cd 代替, 但docker官方不建议用cd
WORKDIR /usr/local/src
# 添加远程文件到当前文件夹, 注意:后面有个点(.) 代表当前目录。ADD可以添加远程文件到镜像,但COPY仅可以添加本地文件到镜像中。
ADD http://nginx.org/download/nginx-1.17.0.tar.gz .
# RUN,在镜像内运行解压命令
RUN tar zxvf nginx-1.17.0.tar.gz
# 切换目录
WORKDIR /usr/local/src/nginx-1.17.0
# 更新yum,可不执行
# RUN yum -y update
# 安装必要的软件和添加nginx用户
RUN yum install -y gcc gcc-c++ glibc make openssl-devel
RUN yum install -y libxslt-devel -y gd-devel GeoIP GeoIP-devel pcre pcre-devel
RUN useradd -M -s /sbin/nologin nginx
# 挂载卷,测试用例(这里的挂载卷,不可以指定本机的目录,不够灵活,一般会在 启动容器时通过 -v 参数指定挂载卷,或在docker-compose.yaml文件中指定,都可以指定本地目录)
VOLUM