zoukankan      html  css  js  c++  java
  • Linux(Ubuntu):搭建Docker-Compose

    1. Docker Compose 简介及安装

    Docker Compose 是一种用于通过使用单个命令创建和启动 Docker 应用程序的工具。我们可以使用它来配置应用程序的服务。

    它是开发,测试和升级环境的利器。

    它提供以下命令来管理应用程序的整个生命周期:

    • 启动,停止和重建服务
    • 查看运行服务的状态
    • 流式运行服务的日志输出
    • 在服务上运行一次性命令

    要实现 docker compose安装,需要包括以下步骤:

    以下是在 Ubuntu 系统中安装 Docker Compose 的说明:

    curl -L https://github.com/docker/compose/releases/到这个网址直接下载即可,但是我已经提前下载好了拖进来安装即可

    • 将应用程序环境变量放在 Docker 文件中以公开访问。
    • 使用命令查看环境变量: cat /etc/environment
    • 具体给你显示的环境变量为:

       

    • 也就是说我们把下载好的docker compose放到任意一个环境变量目录下即可使用
    • 使用 mv docker-compose /usr/bin  把docker compose移动到该目录下即可

         

    • 这个时候我们可以看到该权限为和组权限为suchuanqi 可读可写,但不能执行,而且是都不能执行,所以要对权限进行修改,使用命令 chown -R root:root docker-compose   进行修改,具体如下所示:

         

    •  然后设置可执行权限,具体命令如下所示: chmod +x docker-compose   即变为可执行文件

          

    • 然后使用命令 docker-compose version 进行版本的查看,并验证是否能够执行
    • 注意我们真正的操作Docker是基于Docker Compose来进行操作的

    2. Docker Compose 使用

    创建一个 docker-compose.yml 配置文件:

    root@localhost:/usr/local/docker/tomcat# vi docker-compose.yml  在这里创建,docker-compose.yml文件,并编写下面的内容

    注意:在编写配置文件是不能够是tab键只能使用空格键进行缩进

    version: '3'
    
    services:
    
      webapp:
    
        restart: always
    
        image: training/webapp
    
        container_name: webapp
    
        ports:
    
          - 5000:5000

    下面是我电脑里面的配置

    version: '3'    制定服务器解析版本
    
    services:       要启动的服务器列表
    
      tomcat:      服务器的名称为tomcat,随便起不可以重复
    
        restart: always      这里表示只要docker-compose启动那么tomcat也总是跟着启动
    
        image: tomcat        这里表示镜像名称为tomcat,如果没有会自动的去docker远程仓库区拉去镜像
    
        container_name: tomcat        随便启,但是不能够出重复的
    
        ports:                       映射端口号
    
          - "8080:8080"

    参数说明:

    • version:指定脚本语法解释器版本
    • services:要启动的服务列表
    • webapp:服务名称,可以随便起名,不重复即可
    • restart:启动方式,这里的 always 表示总是启动,即使服务器重启了也会立即启动服务
    • image:镜像的名称,默认从 Docker Hub 下载
    • container_name:容器名称,可以随便起名,不重复即可
    • ports:端口映射列列表,左边为宿主机端口,右边为容器端口

    前台运行:

    suchuanqi@UbuntuBase:/usr/local/docker/python$ docker-compose up     前台启命令docker-compose up, 但是这种操作并不好会占用主线程,阻止其他线程操作
    
    Creating network "python_default" with the default driver
    
    Creating webapp ...
    
    Creating webapp ... done
    
    Attaching to webapp
    
    webapp    |  * Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)

    后台运行:

    suchuanqi@UbuntuBase:/usr/local/docker/python$ docker-compose up -d    这里是后台启动docker-compose,不会占用当前主线程
    
    Creating webapp ...
    
    Creating webapp ... done
    
    lusifer@UbuntuBase:/usr/local/docker/python$

    运行效果:

     

    通过docker-compose启动了tomcat我们可以通过:

    docker-compose logs -f tomcat  进行对tomcat日志的打印工作,可以看到日志

    3. Docker Compose 命令

    前台运行

    docker-compose up

    后台运行

    docker-compose up -d

    启动

    docker-compose start

    停止

    docker-compose stop     注意停止的时候必须在有docker-compose.yml的配置文件中进行使用

    停止并移除容器

    docker-compose down      这里的删除是在docker ps -a 删除tomcat容器的,因为我的tomcat在docker-compose里面进行设置

    4. Docker Compose 实例教程:

    Docker Compose 运行 Tomcat

    docker-compose.yml 配置文件:

    version: '3'
    services:
      tomcat:
        restart: always
        image: tomcat
        container_name: tomcat
        ports:
          - 8080:8080
        volumes:
          - /usr/local/docker/tomcat/webapps/:/usr/local/tomcat/webapps/
        environment:
          TZ: Asia/Shanghai
    开启tomcat后记得在webapps里面创建一个ROOT文件夹,然后在里面创建一个index.html以供测试使用

    Docker Compose 运行 mysql

    创建docker-compose.yml 配置文件:使用vi docker-compose.yml创建该文件并进行编译操作

    version: '3'
    services:
      mysql:
        restart: always
        image: mysql:5.7
        container_name: mysql
        ports:
          - 3306:3306
        environment:
          TZ: Asia/Shanghai
          MYSQL_ROOT_PASSWORD: 123456
        command:
          --character-set-server=utf8mb4                    这里是设置字符及UTF-8 
          --collation-server=utf8mb4_general_ci
          --explicit_defaults_for_timestamp=true
          --lower_case_table_names=1                        这里是忽略大小写
          --max_allowed_packet=128M
          --sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO"
        volumes:
          - mysql-data:/var/lib/mysql
     
    volumes:
      mysql-data:

    我们可以通过

    docker-compose logs -f mysql  进行日志的查看

    在关闭任何关于docker-compose的先关服务时必须要进入到有docker.compose.yml的文件夹使用:

    docker-compose down  进行关闭,不能使用类似于docker stop xxxx等命名,因为这样关闭的话就没有使用docker-compose进行托管了

    配置继承环境下的docker-compose   也就是把mysql   tomcat结合在一起进行配置,具体如下所示, 然后部署一个项目:

     

    我们可以通过:

    /var/lib/docker/volumes  来进行访问到mysql存放数据文件的的路径
  • 相关阅读:
    面试回忆录(一)
    2013国内IT行业薪资对照表【技术岗】
    腾讯2013笔试题—web前端笔试题 (老题练手)
    Nicholas C. Zakas(JS圣经:JavaScript高级程序设计作者)如何面试前端工程师
    Js中 关于top、clientTop、scrollTop、offsetTop的用法
    JavaScript中的面向对象的讨论(转)
    javascript中的原型理解总结
    关于Javascript语言中this关键字(变量)的用法
    window.clearInterval与window.setInterval的用法(
    JavaScript经典魔力代码
  • 原文地址:https://www.cnblogs.com/chuanqi1995/p/11424158.html
Copyright © 2011-2022 走看看