前提

我的所有软件都放在 ~/wrok/docker 目录下,且一个软件一个文件夹,结构如下:

  1. $ ll ~/work/docker
  2. ... grafana
  3. ... jenkins
  4. ... mysql8
  5. ... mysqld-exporter
  6. ... prometheus
  7. ... rabbitmq
  8. ... redis

以 grafana 为例,里面的文件结构如下:

  1. $ ll ~/work/docker/grafana
  2. ... data
  3. ... docker-compose.yml

启动脚本

app.sh

  1. #!/bin/bash
  2. version=1.0.0
  3. appName=$2
  4. basePath=/Users/huangxy/work/docker
  5. function start()
  6. {
  7. cd $basePath/$appName
  8. docker-compose up -d
  9. }
  10. function stop()
  11. {
  12. cd $basePath/$appName
  13. docker-compose stop
  14. }
  15. function usage()
  16. {
  17. echo "Usage: ./app.sh {start|stop} {appName}"
  18. echo "Example: ./app.sh start mysql8"
  19. exit 1
  20. }
  21. case $1 in
  22. start)
  23. start;;
  24. stop)
  25. stop;;
  26. *)
  27. usage;;
  28. esac

可以使用 ./app.sh {start|stop} {appName} 启动/关闭软件。比如我在 mysql8docker-compose.yml 下,不止启动了 mysql8 服务,也启动了 mysqld-exporter 服务,如果没有脚本的话,我需要 cdmysql8 文件夹下,然后再使用 docker-compose up -d 启动服务。使用脚本的话,就不必做那么多重复的步骤