• docker compose 安装与卸载

    安装

    二进制包在线安装

    curl -L https://github.com/docker/compose/releases/download/1.25.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose 

    sudo chmod +x /usr/local/bin/docker-compose

    这个方法现在基本行不通,下载太慢了,不推荐使用。

    二进制包离线安装

    https://github.com/docker/compose/releases/download/1.25.0/docker-compose-Linux-x86_64下载对应的安装包,比如我下载了Linux-x86_64的。

    将下载好的安装包剪切到 /usr/local/bin/docker-compose目录下
    mv /app/download/docker-compose-Linux-x86_64 /usr/local/bin/docker-compose

    添加执行权限
    sudo chmod +x /usr/local/bin/docker-compose

    pip安装

    #安装依赖 
    yum -y install epel-release 
    #安装PIP 
    yum -y install python-pip 
    #升级PIP 
    pip install --upgrade pip
    [root@tymonitor bin]# pip --version
    pip 8.1.2 from /usr/lib/python2.7/site-packages (python 2.7)
    [root@tymonitor bin]# docker-compose --version
    docker-compose version 1.25.0, build b42d419

    安装补全插件

    curl -L https://raw.githubusercontent.com/docker/compose/1.25.0/contrib/completion/bash/docker-compose > /etc/bash_completion.d/docker-compose

    卸载

    二进制卸载

    rm /usr/local/bin/docker-compose

    pip卸载

    pip uninstall docker-compose

    docker compose 重要命令

    命令选项

    常用&重要命令

    docker compose 模板文件

    模板文件是使用 Compose 的核心,涉及到的指令关键字也比较多。本文主要列出几个常见&重要的指令,其他指令大家可以自行百度。默认的模板文件名称为 docker-compose.yml,格式为 YAML 格式。

    version: '3'
    services:
      elasticsearch:
        image: elasticsearch:6.8.5
        container_name: elasticsearch
        restart: always
        volumes:
          - /app/skywalking/elasticsearch/data:/usr/share/elasticsearch/data:rw
          - /app/skywalking/elasticsearch/conf/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
          - /app/skywalking/elasticsearch/conf/jvm.options:/usr/share/elasticsearch/config/jvm.options
          - /app/skywalking/elasticsearch/logs:/usr/share/elasticsearch/logs:rw
        environment:
          - TZ=Asia/Shanghai
          - xpack.monitoring.enabled=false
          - xpack.watcher.enabled=false
        ports:
          - "9200:9200"
          - "9300:9300"

    注意每个服务都必须通过 image 指令指定镜像或 build 指令(需要 Dockerfile)等来自动构建生成镜像。如果使用 build 指令,在 Dockerfile 中设置的选项(例如:CMD, EXPOSE, VOLUME, ENV 等) 将会自动被获取,无需在 docker-compose.yml 中重复设置。

    常用&重要命令

    image: apache/skywalking-oap-server:6.5.0
    image: apache/skywalking-ui:6.5.0
    ports: 
        - "3000" 
        - "8080:8080" 
        - "127.0.0.1:8001:8001"
    volumes:
          - /app/skywalking/elasticsearch/data:/usr/share/elasticsearch/data:rw
          - conf/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
    version: "3"
    services:
      my_src:
        image: mysql:8.0
        volumes:
          - mysql_data:/var/lib/mysql
    volumes:
      mysql_data:
    ulimits:
       nproc: 65535
       nofile:
         soft: 20000
         hard: 40000
    version: '3'
    services:
      web:
        build: .
        depends_on:
          - db
          - redis   
      redis:
        image: redis
      db:
        image: mysql
    environment:
          SW_STORAGE: elasticsearch
          SW_STORAGE_ES_CLUSTER_NODES: elasticsearch:9200
        
    environment:
          - SW_STORAGE= elasticsearch
          - SW_STORAGE_ES_CLUSTER_NODES=elasticsearch:9200

    docker-compose 实战

    首先我需要推荐两件事:

    sudo mkdir -p /etc/docker
    sudo tee /etc/docker/daemon.json <<-'EOF'
    {
        "registry-mirrors": [
            "https://hub-mirror.c.163.com",
            "https://mirror.ccs.tencentyun.com",
            "https://reg-mirror.qiniu.co"
        ]
    }
    EOF
    sudo systemctl daemon-reload
    sudo systemctl restart docker

    本次实战我们以docker-compose部署skywalking为例。编写skywalking.yml,内容如下。

    version: '3.3'
    services:
      elasticsearch:
        image: docker.elastic.co/elasticsearch/elasticsearch:6.8.5
        container_name: elasticsearch
        restart: always
        ports:
          - 9200:9200
          - 9300:9300
        environment:
          discovery.type: single-node
        ulimits:
          memlock:
            soft: -1
            hard: -1
      oap:
        image: skywalking/oap
        container_name: oap
        depends_on:
          - elasticsearch
        links:
          - elasticsearch
        restart: always
        ports:
          - 11800:11800
          - 12800:12800
        environment:
          SW_STORAGE: elasticsearch
          SW_STORAGE_ES_CLUSTER_NODES: elasticsearch:9200
      ui:
        image: skywalking/ui
        container_name: ui
        depends_on:
          - oap
        links:
          - oap
        restart: always
        ports:
          - 8080:8080
        environment:
          SW_OAP_ADDRESS: oap:12800

    部署完成后将其上传至服务器,执行 docker-compose -f /app/skywalking.yml up -d即可。Docker-Compose基础与实战,看这一篇就够了-LMLPHP


    收藏 等于白嫖点赞 才是真情!

    Docker-Compose基础与实战,看这一篇就够了-LMLPHP




    本文分享自微信公众号 - JAVA日知录(javadaily)。
    如有侵权,请联系 support@oschina.cn 删除。
    本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

    09-13 07:19
    查看更多