Compose应用案例(利用docker compose安装lnmp实例)

目录

Compose应用案例

一、前提配置

(一)安装docker-ce(Linux安装Docker)

(二)安装docker-compose

二、安装docker compose部署lnmp

(一)目录结构:

(二)编写compose文件:

三、验证LNMP环境 


Compose应用案例

一、前提配置

为了能够说明compose如何实现上述编排与部署的原理,下面和大家分享一个通过compose来编排部署LNMP服务来更好的理解它。

(一)安装docker-ce(Linux安装Docker)

CentOS系统下安装Docker可以有两种方式:

一种是使用curl获得Docker的安装脚本进行安装,

另一种是使用YUM仓库来安装Docker。主要注意的是目前Docker只能支持64位系统。

1、安装前准备:

[root@huyang1 ~]# iptables -F

[root@huyang1 ~]# setenforce 0

[root@huyang1 ~]# systemctl stop firewalld

保证可以访问互联网

[root@huyang1 ~]# ping www.baidu.com

[root@huyang1 ~]# ls /etc/yum.repos.d/

[root@huyang1 yum.repos.d]# yum clean all && yum makecache fast

2、安装docker-ce

[root@huyang1 ~]# wget -O

/etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

[root@huyang1 ~]# yum -y install yum-utils

device-mapper-persistent-data lvm2

[root@huyang1 ~]# yum-config-manager --add-repo

http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

[root@huyang1 ~]# ls /etc/yum.repos.d/

[root@huyang1 ~]# yum -y install docker-ce

[root@huyang1 ~]# docker version  查看版本

[root@huyang1 ~]# systemctl start docker

[root@huyang1 ~]# systemctl enable docker

3、阿里云镜像加速器

阿里云登录 - 欢迎登录阿里云,安全稳定的云计算服务平台

[root@huyang1 ~]# cat << END > /etc/docker/daemon.json

{   "registry-mirrors":[ "https://nyakyfun.mirror.aliyuncs.com" ]

}

END

[root@huyang1 ~]# systemctl daemon-reload

[root@huyang1 ~]# systemctl restart docker

[root@huyang1 ~]# docker version

(二)安装docker-compose

下载最新版本安装,下载时间可能比较长

[root@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

[root@compose ~]# chmod +x

/usr/local/bin/docker-compose

[root@compose ~]# docker-compose --version

二、安装docker compose部署lnmp

(一)目录结构:

[root@compose ~]# mkdir compose_lnmp/

[root@compose ~]# cd compose_lnmp/

[root@compose compose_lnmp]# tree

  [root@compose compose_lnmp]#vim mysql/conf/my.cnf

 [root@compose compose_lnmp]#vim nginx/Dockerfile

 [root@compose compose_lnmp]#vim nginx/nginx.conf

 [root@compose compose_lnmp]#vim nginx/run.sh

  [root@compose compose_lnmp]#vim php/Dockerfile

  [root@compose compose_lnmp]#vim wwwroot/index.html

   [root@compose compose_lnmp]#vim wwwroot/index.php

(二)编写compose文件:

[root@compose compose_lnmp]# cat docker-compose.yml

配置如下:

version: '3'
services:
  nginx:
    hostname: nginx
    build:
      context: ./nginx
      dockerfile: Dockerfile
    ports:
      - 80:80
    networks:
      - lnmp
    volumes:
      - ./wwwroot:/usr/local/nginx/html

  php:
    hostname: php
    build:
      context: ./php
      dockerfile: Dockerfile
    ports:
      - 9000:9000
    networks:
      - lnmp
    volumes:
      - ./wwwroot:/usr/local/nginx/html

  mysql:
    hostname: mysql
    image: mysql:5.6
    ports:
      - 3306:3306
    networks:
      - lnmp
    volumes:
      - ./mysql/conf:/etc/mysql/conf.d
      - ./mysql/data:/var/lib/mysql
    command: --character-set-server=utf8
    environment:
      MYSQL_ROOT_PASSWORD: 123456
      MYSQL_DATABASE: wordpress
      MYSQL_USER: user
      MYSQL_PASSWORD: user123

networks:
  lnmp:
~                                     

可以看到一份标准配置文件应该包含 version、services、networks 三大部分,共有三级标签,每一级都是缩进两个空格。

下面来详细说明一下里面的内容:

(一)version: '3'  这是定义compose的版本号为version 3,可以参考官方文档详细了解具体有哪些版本 Overview | Docker Documentation

(二)services:

nginx:这是services下面的二级标签,名字用户自己定义,它将是服务运行后的名称;
  hostname: nginx 这是定义容器的主机名,将写入到/etc/hostname中;

build:

context: ./nginx 指定nginx服务的上下文路径;

dockerfile:Dockerfile 指定通过上面指定路径中的Dockerilfe来构建;

ports:

 - 80:80 端口映射没什么好说的;

networks:

 -lnmp 指定的网络环境
volumes:把宿主机的/wwwroot目录绑定到容器中的/usr/local/nginx/html目录;

php:这个二级标签服务和下面的内容跟nginx差不多;

mysql:这个二级标签服务也和nginx、php差不多,唯一不同的是多了个images标签、还有定义了些环境变量。

image: mysql:5.6 它是通过mysql:5.6镜像来构建mysql服务器,前面nginx、php都指定了上下文通过Dockerfile来构建的。

environment:

   MYSQL_ROOT_PASSWORD:定义root用户密码变量为123456;

   MYSQL_DATABASE:定义了数据变量为wordpress;

   MYSQL_USER:定义了普通用户变量为user;

   MYSQL_PASSWORD:定义了普通用户密码变量为user123;

(三)networks:

   lnmp: 相当于执行docker network create lnmp命令了;

最后来运行docker-compose命令来启动:

[root@localhost ~]# cat centos-7-x86_64.tar.gz | docker import - centos:7

[root@localhost ~]# docker images centos:7

[root@localhost compose_lnmp]# docker-compose -f docker-compose.yml up -d

[root@localhost compose_lnmp]# docker-compose ps

三、验证LNMP环境 

客户端使用浏览器验证 docker-compose 创建的 lnmp 环境

 

猜你喜欢

转载自blog.csdn.net/2302_77582029/article/details/132092246