zoukankan      html  css  js  c++  java
  • docker-compose介绍及部署LNMP

     

     

     

    一、简介

    Compose是用于定义和运行多容器Docker应用程序的工具,是docker的服务编排工具,主要应用于构建基于Docker的复杂应用,compose通过一个配置文件来管理多个docker容器,适合组合使用多个容器进行开发的场景。

    使用compose,可以使用yaml文件配置应用程序的服务。

    然后,通过一个命令,可以从配置中创建和启动所有服务。

    官网:https://docs.docker.com/compose/overview/

    二、使用

    compose适用于所有环境:生产,开发,测试以及CI工作流程。

    使用compose基本上是一个三步过程:

    1. 用dockerfile,或者镜像定义应用程序的环境,以便在任何地方复制。

    2. 在docker-compose.yml中定义组成应用程序的服务,以便它们可以在单独的环境中一起运行。

    3. 运行docker compose up启动并运行整个应用程序。

    五、docker-compose用法
    常用选项:
    --verbose:输出更多的调试信息
    --version:查看compose的版本
    -f --file FILE:使用特定的compose模板文件,默认为docker-compose.yml。
    -p --project-name NAME 指定项目名称,默认使用目录名称。
    常用命令:
    build:构建或重建服务
    ps:查看已经启动的服务状态       
    kill:停止某个服务、杀掉容器       
    logs:可以查看某个服务的log、显示容器的输出内容       
    port:打印绑定的public port(开放端口)        
    pull:拉取服务镜像      
    up:启动yml定义的所有服务     
    stop:停止yml中定义的所有服务       
    start:启动被停止的yml中的所有服务        
    kill:强行停止yml中定义的所有服务        
    rm:删除yml中定义的所有服务      
    restart:重启yml中定义的所有服务        
    scale:设置服务的容器数目
    run:运行一个一次性命令
     
     YAML简介
            Yaml简介.YAML是一种标记语言,可读性很强。类似于XML数据描述语言,语法比XML简单的多。YAML数据结构通过缩进来表示,连续的项目通过减号来表示,键值对用冒号分割,数组用括号括起来, hash用花括号括起来。
    YAML文件格式注意事项:
    在缩排中空白字符的数目并不是非常重要,只要相同阶层的元素左侧对齐就可以了(不过不能使用TAB字符);
    通常开头缩进2个空格;字符的后面缩进1个空格,比如冒号、逗号、横杆;
    支持#注释;
    允许在文件中加入选择性的空行,以增加可读性;
    docker-compose中YAML常用的字段:

    字段

    描述

    build

      dockerfile

      context

    指定dockerfile文件名

    构建镜像上下文路径

    image 指定镜像
    command 执行命令,覆盖默认命令
    container_name 指定容器名称,由于容器名称是唯一的,如果指定自定义名称,则无法scale
    deploy  指定部署和运行服务相关配置,只能在Swarm模式使用
    environment 添加环境变量
    networks 加入网络,引用顶级networks下条目
    ports 暴漏端口,与-p相同,但端口不能低于60
    volumes 挂载宿主机路径或命名卷在顶级volumes定义卷名称
    restart 重启策略,默认no,always|on-failurel|unless-stopped
    hostname 容器主机名

    ================================================================================================

    安装docker-compose

    一、配置环境

    [root@docker ~]# systemctl stop firewalld
    [root@docker ~]# iptables -F
    [root@docker ~]# setenforce 0

    安装docker commpose是在安装好了docker的基础上安装的

    安装依赖包

    [root@docker ~]# yum install libcurl libcurl-devel libxml2 libxm2-devel pcre-devel zlib-devel lrzsz telnet nmap -y

    [root@docker ~]#curl -L https://github.com/docker/compose/releases/download/1.21.1/docker-compose- `uname -s`-`uname -m` -o /usr/local/bin/docker-compose
    curl: (1) Protocol https not supported or disabled in libcurl
    curl: (6) Could not resolve host: Linux-x86_64; 未知的错误

    这里报https文件问题,这时上传docker-compose包

    二、上传需要的软件包

    [root@docker ~]# mkdir docker

    [root@localhost docker]# ls
    centos-7-x86_64.tar.gz     compose_lnmp-190606.zip     docker-compose        wordpress-4.7.4-zh_CN.tar.gz

    [root@docker docker]# unzip compose_lnmp-190606.zip

     

     三、部署docker-compose

    [root@docker ~]# cat centos-7-x86_64.tar.gz | docker import - centos:7                         将镜像导入到docker

    [root@docker ~]# docker images
    REPOSITORY           TAG                 IMAGE ID            CREATED             SIZE
    centos               7                   c2705e1a484d        2 days ago          589MB

     [root@docker ~]# vim docker/compose_lnmp/nginx/nginx.conf

     五、将Wordpress放到wwwroot目录下

     

     [root@docker docker]# mv wordpress compose_lnmp/wwwroot/

    [root@docker docker]# cd compose_lnmp/wwwroot/
    [root@docker wwwroot]# ls
    index.html  index.php  wordpress

    将docker-compose加入到/usr/local/bin

     [root@docker docker]# chmod +x /usr/local/bin/docker-compose                #加权限

    [root@docker compose_lnmp]# docker-compose up -d                               #执行                          

    六、访问测试

  • 相关阅读:
    第02组 Alpha冲刺 (3/6)
    第02组 Alpha冲刺 (2/6)
    第02组 Alpha冲刺 (1/6)
    第02组(51) 需求分析报告
    第02组(51) 团队展示
    结对编程作业
    CentOS7下利用systemd机制实现tomcat开机自启动
    mysql5.7密码修改
    last命令显示出unknown用户究竟是因为啥?
    3.图形显示设备
  • 原文地址:https://www.cnblogs.com/CMX_Shmily/p/11941867.html
Copyright © 2011-2022 走看看