14.docker-compose的模板內命令之單個服務啟動


1.docker是通過鏡像去創建容器用的

2.Dockerfile是通過別的鏡像,增加些操作去自己制作鏡像

3.docker-compose可以理解成docker的升級版,docker能做的事情它也能做,同時它還具有編排多個docker的作用。

假如:我們有兩個容器,一個是springboot應用,一個是mysql。那么我們會通過docker去創建兩個容器,但是我們要求得先啟動mysql再啟動應用,這時候docker就顯得有些無能了,但是docker-compose卻有編排的能力。

 

前提:

1.服務器要先安裝好docker-compose

2.尋找一處文件夾作為docker-compose的上下文,在里面創建一個文件叫 docker-compose.yml 大小寫一個字都不差,就是spring的application.yml類似,作為默認文件。

3.通過命令 docker-compose up (-d)的方式來啟動

 

我們通過單個容器對比以及多個編排在一起的方式來學習docker-compose

-----------------------------------------------------------------------------------------------------------------

1.mysql

 

1)docker方式啟動

 

docker run 
        -v /data/mariadb/conf.d:/etc/mysql/conf.d 
        -v /data/mariadb/logs:/logs 
        -v /data/mariadb/data:/var/lib/mysql 
        -e MYSQL_ROOT_PASSWORD='compass#123456' 
    -p 6603:3306 
    --restart=always 
    --privileged=true 
    --name compass-mariadb 
    -d mariadb:10.4.15

 

2)docker-compose方式啟動

 

version: "3"
services:
  mysql:
    image: mariadb:10.4.15
    container_name: compass-mariadb
    environment:
      - MYSQL_ROOT_PASSWORD=compass#123456
    privileged: true
    restart: always
    ports:
      - "6603:3306"
    volumes:
      - mysqlconfig:/etc/mysql/conf.d
      - mysqllog:/logs
      - /data/mariadb/data:/var/lib/mysql

volumes:
  mysqlconfig:
    external:
      false
  mysqllog:

 

 說明一下:我這邊通過默認數據卷的方式,用了兩個默認數據卷

 

mysqlconfig   mysqllog  可以通過命令 docker volume ls來查看系統所有的數據卷  通過命令docker inspect mysqllog來查詢某個數據卷的具體信息,包括路徑

 

2.rabbitmq

1)docker 方式啟動
docker run 
       -e RABBITMQ_DEFAULT_USER=compass 
       -e RABBITMQ_DEFAULT_PASS=compass123456 
       -p 16672:15672 
       -p 6672:5672 
       --restart=always 
       --privileged=true 
       --name compass-rabbitmq 
       -d registry.kpmg.com/rabbitmq:3.8.3-management

  2)docker-compose啟動

version: "3"
services:
    rabbit-mq:
      image: registry.kpmg.com/rabbitmq:3.8.3-management
      container_name: compass-rabbitmq
      environment:
        - RABBITMQ_DEFAULT_USER=compass
        - RABBITMQ_DEFAULT_PASS=compass123456
      privileged: true
      restart: always
      ports:
        - "16673:15672"
        - "6673:5672"

 3.redis

1)docker方式啟動

version: "3"
services:
  redis:
    image: harbor.cn.kworld.kpmg.com/library/redis:6.0.9
    container_name: shared-redis
    command: redis-server --appendonly yes --requirepass 123456
    restart: always
    ports:
      - "16379:6379"
    volumes:
      - /apps/redis/data:/data

2)docker-compose方式啟動

version: "3"
services:
  redis:
    image: harbor.cn.kworld.kpmg.com/library/redis:6.0.9
    container_name: my-redis
    command: redis-server --appendonly yes --requirepass 123456
    restart: always
    ports:
      - "26379:6379"
    volumes:
      - redisdata:/data
volumes:
  redisdata:

  

總結:其實docker-compose就是另一種docker方式的寫法

 

真實運行效果:

1 文件位置

 

 

2.分別到不同的文件夾下去執行命令  docker-compose up -d

3.指定文件去啟動  docker-compose -f docker-compose.yml up -d

4.最后查詢

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM