美文网首页
docker-compose使用方法

docker-compose使用方法

作者: Goun | 来源:发表于2021-04-10 20:32 被阅读0次

Docker-compose使用方法

一:简介

Dockerfile 可以让用户管理一个单独的应用容器;而 Compose 则允许用户在一个模板(YAML 格式)中定义一组相关联的应用容器(被称为一个 project,即项目),例如一个 Web 服务容器再加上后端的数据库服务容器等,就拿官网的 Python 例子来说,功能很简单,利用 redis 的 incr 的功能对页面的访问量进行统计。

二:全量全货环境介绍

常用命令

docker-compose:
--help 查看帮助
up  前台启动
down 关闭所有
-f  file    指定启动或关闭时的控制文件,如果不指定,默认为当前目录下docker-compose.yml 
up -d  后台启动
ps    查看容器状态
logs    查看日志

docker-compose.yml文件讲解

network_mode: host 对应了docker中的--network,默认使用bridge

服务

# 使用v2版本
version: '2'
services:
    # 服务名
    manageserver:
        # 使用的镜像
        image: openjdk:7-jdk
        # 容器重启策略  no:默认策略,一直不重启   on-failure   失败才重启,on-failure:3 重启三次    always   一直重启
        restart: always
        # 使用GPU   version得指定'2.3'版本,需要安装nvidia-docker2
        runtime: nvidia
        # 资源限制   
        ulimits:
            # 创建的进程限制(线程是轻量级的进程)
            nproc: 65535
            # 打开文件数限制
            nofile:
                soft: 20000
                hard: 40000
            # 内存限制
            mem_limit: 512m
        # 端口映射
        ports:
            - "18001:18001"
            - "5009:5009"
        # 保证几个server启动后,才启动
        depends_on:
            - zoo1
            - activemq
            - redis
        # 镜像变量
        environment:
            - _JAVA_OPTIONS=-Duser.timezone=Asia/Shanghai
            - JAVA_OPTS=-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5009
            - DB_URL=${DB_URL}
            - DB_USER=${DB_USER}
            - DB_PWD=${DB_PWD}
        # 文件映射
        volumes:
             - /srv/docker/app:/app
        # 指定接入点(镜像生成后,会执行的启动脚本)
        entrypoint:
             - /app/entrypoint.sh   # 会覆盖dockerfile中
             - manageserver     # 往上面的脚本传参

Tomcat

version: '2'
services:   
    rweb01:
        image: tomcat:7.0.75
        # 保证后端服务先启动(但是无法保证后端服务无法完整启动)
        depends_on:
            - zoo1
            - activemq
            - redis
        environment:
            - _JAVA_OPTIONS=-Duser.timezone=Asia/Shanghai
        volumes:
            - /srv/docker/tomcat/webapps/adminweb:/usr/local/tomcat/webapps/adminweb
            - /srv/docker/tomcat/webapps/accountweb:/usr/local/tomcat/webapps/accountweb
        ports:
            - "7071:8080"

Oracle

docker run --network=host -v /srv/docker/oracle/u01:/u01  -p 1521:1521 -p 1158:1158 --name oracle  -d ufoscout/oracle-11g
--network=host          网络模拟,和宿主机共用网卡(默认为bridge)
--name      容器名
-d     后台启动
ufoscout/oracle-11g         镜像名

查看镜像启动
# docker ps
CONTAINER ID        IMAGE                 COMMAND                  CREATED             STATUS              PORTS                NAMES
0b51c82037ac        ufoscout/oracle-11g   "/bin/sh -c oracle.sh"   6 months ago        Up 4 months                              oracle

"/bin/sh -c oracle.sh"       为接入文件,当容器启动后,会自动执行

三:日常维护使用命令

  1. 启动前置容器

    # cd /root/docker && docker-compose up  -d  
    
  2. 关闭前置容器

    # cd /root/docker && docker-compose down
    
  3. 查看容器运行日志

    # cd /root/docker && docker-compose logs      查看所有
    # docker-compose logs redis          查看指定服务
    
  4. 查看服务运行状态

    # docker-compose ps
           Name                     Command               State           Ports          
    ------------------------------------------------------------------------------------
    dockerfile_redis_1   docker-entrypoint.sh redis ...   Up      6379/tcp               
    dockerfile_web_1     /bin/sh -c python app.py         Up      0.0.0.0:5000->5000/tcp
    
    # State    up或exit     ,当我们使用发现一个容器为exit状态,可以直接使用docker-compose up  -d [server]启动
    
  5. 进入容器

    docker exec -ti [id | name ] /bin/bash
    
  6. 数据库容器启动关闭

    # docker start oracle      启动
    # docker stop oracle 关闭
    

相关文章

网友评论

      本文标题:docker-compose使用方法

      本文链接:https://www.haomeiwen.com/subject/nconkltx.html