• 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

  • 相关阅读:
    MVP的理解和使用
    Fragment
    ProgressBar及其子类
    几种Menu和几种对话框
    APP打包上线应注意的问题!
    Linux常用命令大全
    如何调试Android Framework?
    Android Studio你不知道的调试技巧
    OSError: [WinError 193] %1 不是有效的 Win32 应用程序。
    LookupError: Couldn't find path to unrar library.
  • 原文地址:https://www.cnblogs.com/hongdada/p/9387643.html
Copyright © 2020-2023  润新知