學習-使用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