学习-使用docker-compose部署项目


记录docker-compse部署项目

 一、安装docker-compse

curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
curl -L https://github.com/docker/compose/releases/download/1.24.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose 

  

修改目录权限:

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

  

二、准备docker-compose.yml文件

文件实例(包含了docker容器中tomcat、mysql及redis的说明):

version: "2.0"
services:
##redis
  app_redis:
    image: redis:latest
    ##容器名称
    container_name: "app_redis"
    ## 相当于run命令中的-p参数
    #总是重启后启动
    restart: always
    ports:
      - "6699:6379"
    environment:
      TZ: Asia/Shanghai
    command: redis-server --requirepass myredispwd123
    volumes:
      - ./redis/data:/data
    networks:
      backend:
        aliases:
        - net_redis
##mysql
  app_mysql:
    image: mysql:5.5
    ##容器名称
    container_name: "app_mysql"
    ## 相当于run命令中的-p参数
    ports:
      - "3388:3306"
    environment:
      TZ: Asia/Shanghai
      MYSQL_ROOT_PASSWORD: ql123456
    command: 
      --lower_case_table_names=1
    volumes:
      - ./mysql/conf:/etc/mysql/conf.d
      - ./mysql/data:/var/lib/mysql
    networks:
      backend:
        aliases:
        - net_mysql
 #tomcat服务名称
  app_tomcat:
    #容器名称
    container_name: app_tomcat
    #镜像名称
    image: tomcat:7.0.63-jre8
    #总是重启后启动
    restart: always
    #端口映射
    ports:
      - "7070:8080"
    environment:
      TZ: Asia/Shanghai
    logging:
      driver: "json-file"
      options:
        max-size: "500M"
        max-file: "3"
    #挂载
    volumes:
      - ./tomcat/logs:/usr/local/tomcat/logs
      - ./tomcat/webapps:/usr/local/tomcat/webapps
      - ./tomcat/conf:/usr/local/tomcat/conf
    networks:
      backend:
        aliases:
        - net_tomcat
networks:
  backend:

重要属性说明(文档采用yml文件格式,需严格遵循yml语法):

文档结构:

//版本号
version:2.0
//应用名 
services:
    app1:
    app2:
    ...
//网络
networks:
    xxxx

image:镜像名称

container_name:容器别名(等同于docker run 中的 --name)

ports:端口映射(等同于docker run 中的 -p)

environment:环境变量(可在环境变量中定义时区、mysql密码等)

command:覆盖容器启动后默认执行的命令,自定义命令

volumes:目录挂载(类似于-v)

  

 

三、网络配置(将容器配置到同一个网段)

在network中配置backend,然后为每一个容器定义别名aliases,然后在实际应用中就可以通过别名直接访问。示例:

redis:

 

redis_addr=net_redis
redis_port=6379
redis_auth_need=yes
redis_auth=myredispwd123

 

mysql:

dataSource.driver=com.mysql.jdbc.Driver
dataSource.url=jdbc:mysql://net_mysql:3306/ql?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&autoReconnect=true&autoReconnectForPools=true
dataSource.user=root
dataSource.password=ql123456在

 

在容器中能够互相ping:

 

 

 

 

四、常用命令(将yml文件丢到任意一个目录,然后进入该目录执行命令)

1.启动命令

docker-compose up -d

2.停止命令(停止会删除容器)

docker-compose down

五、demo下载(包含mysql、redis、tomcat)

链接: https://pan.baidu.com/s/1kHJI2LUgwuj4Aq4MP8ZuOw 提取码: 7c2z


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM