zoukankan      html  css  js  c++  java
  • Docker 使用Docker-Compose编排容器

    简介:

    Docker Compose是一个用来定义和运行复杂应用的Docker工具。一个使用Docker容器的应用,通常由多个容器组成。使用Docker Compose不再需要使用shell脚本来启动容器。 
    Compose 通过一个配置文件来管理多个Docker容器,在配置文件中,所有的容器通过services来定义,然后使用docker-compose脚本来启动,停止和重启应用,和应用中的服务以及所有依赖服务的容器,非常适合组合使用多个容器进行开发的场景。

    Docker与Compose的兼容性:

    compose文件格式版本    docker版本
    3.7                  18.06.0+
    3.6                  18.02.0+
    3.5                  17.12.0+
    3.4                  17.09.0+
    3.3                  17.06.0+
    3.2                  17.04.0+
    3.1                  1.13.1+
    3.0                  1.13.0+
    2.3                  17.06.0+
    2.2                  1.13.0+
    2.1                  1.12.0+
    2.0                  1.10.0+
    1.0                  1.9.1.+

    安装:

    sudo curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose
    sudo chmod +x /usr/local/bin/docker-compose

    查看:

    [root@localhost bin]# docker-compose --version
    docker-compose version 1.22.0, build f46880fe

    compose命令选项:

    -f, --file FILE 指定使用的 Compose 模板文件,默认为 docker-compose.yml ,可以多次指定。 
    -p, --project-name NAME 指定项目名称,默认将使用所在目录名称作为项目名。 
    --x-networking 使用 Docker 的可拔插网络后端特性 
    --x-network-driver DRIVER 指定网络后端的驱动,默认为 bridge 
    --verbose 输出更多调试信息。 
    -v, --version 打印版本并退出。

    compose命令:

    build 构建或重建服务
    help 命令帮助
    kill 杀掉容器
    logs 显示容器的输出内容
    port 打印绑定的开放端口
    ps 显示容器
    pull 拉取服务镜像
    restart 重启服务
    rm 删除停止的容器
    run 运行一个一次性命令
    scale 设置服务的容器数目
    start 开启服务
    stop 停止服务
    up 创建并启动容器

    Code:

    wordpress.yml

    version: '3'
    services:
      web:
        image: wordpress:4
        environment:
          - WORDPRESS_DB_PASSWORD=password
          - WORDPRESS_AUTH_KEY=changeme
          - WORDPRESS_SECURE_AUTH_KEY=changeme
          - WORDPRESS_LOGGED_IN_KEY=changeme
          - WORDPRESS_NONCE_KEY=changeme
          - WORDPRESS_AUTH_SALT=changeme
          - WORDPRESS_SECURE_AUTH_SALT=changeme
          - WORDPRESS_LOGGED_IN_SALT=changeme
          - WORDPRESS_NONCE_SALT=changeme
          - WORDPRESS_NONCE_AA=changeme
        ports:
          - 80:80
        depends_on:
          - mysql
        deploy:
          replicas: 3
          restart_policy:
            condition: on-failure
      mysql:
        image: mysql:5.7
        environment:
          - MYSQL_ROOT_PASSWORD=password
        deploy:
          restart_policy:
            condition: on-failure

    wordpress.yml 定义了包含两个服务的Wordpress应用

    web服务:部署3个实例的wordpress:4容器
    mysql服务:部署1个实例的mysql:5.7容器

    注意:

    restart_policy:定义服务的重启条件 (v1/v2中restart指令不再支持)

    deploy与depends_on不要搞混,一个配置,一个依赖。

    命令:

    使用docker-compose构建并运行应用:

    # 若是要后台运行: $ docker-compose up -d
    $ docker-compose up
    
    # 若不使用默认的docker-compose.yml 文件名:
    $ docker-compose -f server.yml up -d 

    停止删除容器:

    #必须跟docker-compose.yml的文件路径中执行命令
    docker-compose stop
    #必须跟docker-compose.yml文件路径中执行命令
    docker-compose rm

    设置服务容器数量:

    docker-compose scale mysql=2

    总结:

    不要把 docker 当做数据容器来使用,数据一定要用 volumes 放在容器外面
    不要把 docker-compose 文件暴露给别人, 因为上面有你的服务器信息
    多用 docker-compose 的命令去操作, 不要用 docker 手动命令&docker-compose 去同时操作
    写一个脚本类的东西,自动备份docker 映射出来的数据。
    不要把所有服务都放在一个 docker 容器里面

    参考:

    https://docs.docker.com/compose/install/#install-compose

    http://www.widuu.com/docker/compose/install.html

    https://blog.csdn.net/pushiqiang/article/details/78682323

    https://www.jianshu.com/p/2217cfed29d7

    https://blog.csdn.net/pushiqiang/article/details/78682323

  • 相关阅读:
    python,生产环境安装
    neo4j 图数据库
    RNN系列
    机器学习关于AUC的理解整理
    fensorflow 安装报错 DEPENDENCY ERROR
    dubbo Failed to check the status of the service com.user.service.UserService. No provider available for the service
    使用hbase遇到的问题
    MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist on disk
    gradle 安装
    jenkins 安装遇到的坑
  • 原文地址:https://www.cnblogs.com/hongdada/p/9387643.html
Copyright © 2011-2022 走看看