下载/上传docker-compose

访问https://github.com/docker/compose/releases,选择docker-compose-linux-x86_64下载
image.png


设置为可执行

方式1:
移动到user/bin下,设置为可执行权限

  1. # 移动到可执行目录下
  2. mv docker-compose-Linux-x86_64 /usr/bin/docker-compose
  3. # 赋予执行权限
  4. chmod +x /usr/bin/docker-compose

方式2:
设置为执行权限,设置软连接

  1. # 赋予执行权限
  2. chmod +x docker-compose-Linux-x86_64
  3. # 创建软连接 例如执行文件绝对路径为:/home/docker/docker-compose-Linux-x86_64
  4. ln -s /home/docker/docker-compose-Linux-x86_64 /usr/bin/docker-compose

验证

docker-compose -v,输出版本号
image.png

使用说明

docker-compose需要和配置文件配合使用,在有docker-compose.yml的文件夹下,执行docker-compose命令,配置文件在另一章节说明。

  1. # 根据配置文件参数创建容器 后可跟-d
  2. docker-compose up
  3. # 指定创建某一个
  4. docker-compose up efm-mysql
  5. # 等等

配置文件说明

docker-compose可以启动/管理多个容器,如下是配置文件参数解释说明
在使用docker-compose时,需要注意,如果是不联网环境,镜像版本不能使用latest,必须指定版本号,否则会自动拉取版本。

  1. # 版本
  2. version: '2'
  3. # 服务列表
  4. services:
  5. # 服务名
  6. efm-oracle:
  7. # 镜像名
  8. image: oracle19c:1.0
  9. # 指定容器名称
  10. container_name: efm-oracle1
  11. # 端口 可以多行 格式: - 宿主机端口:容器端口 例: - 1521:1521
  12. ports:
  13. - 1521:1521
  14. # 自动重启
  15. restart: always
  16. # 是否root 权限
  17. privileged: true
  18. # 指定主机名
  19. hostname: oracle01
  20. # 启动命令参数 覆盖容器启动的默认命令 例如["-i","p","1521:1521"]
  21. command: ["/usr/sbin/init"]
  22. volumes:
  23. - /home/user/oracle:/opt/oracle
  24. # 容器环境变量 environment:
  25. # 构建 build:
  26. # 路径 context: ./
  27. # 通过dockerfile构建 dockerfile:
  1. # 版本
  2. version: '2'
  3. # 服务列表
  4. services:
  5. # 服务名
  6. efm-oracle:
  7. # 镜像名
  8. image: oracle19c:1.0
  9. # 指定容器名称
  10. container_name: efm-oracle1
  11. # 端口 可以多行 格式: - 宿主机端口:容器端口 例: - 1521:1521
  12. ports:
  13. - 1521:1521
  14. # 自动重启
  15. restart: always
  16. # 是否root 权限
  17. privileged: true
  18. # 指定主机名
  19. hostname: oracle01
  20. # 启动命令参数 覆盖容器启动的默认命令 例如["-i","p","1521:1521"]
  21. command: ["/usr/sbin/init"]
  22. volumes:
  23. - /home/user/oracle:/opt/oracle
  24. # 容器环境变量 environment:
  25. # 构建 build:
  26. # 路径 context: ./
  27. # 通过dockerfile构建 dockerfile:
  28. efm-mysql:
  29. image: mysql:8.0.16
  30. container_name: efm-mysql1
  31. ports:
  32. - 3306:3306
  33. restart: always
  34. environment:
  35. MYSQL_ROOT_PASSWORD: 123456
  36. volumes:
  37. - /home/user/mysql/data/mysql:/var/lib/mysql
  38. efm-redis:
  39. image: redis:6.2.6
  40. container_name: efm-redis1
  41. ports:
  42. - 6379:6379
  43. restart: always
  44. # 如果要使用配置文件启动,就添加配置文件参数 例如"/etc/redis/redis.conf"
  45. command: ["--appendonly","yes"]
  46. # 如果要使用redis配置文件,可以在宿主机提供配置文件挂载到容器某个路径下,例如"/etc/redis/redis.conf"
  47. volumes:
  48. - /home/user/redis/data:/data
  49. # - /home/user/redis/conf/redis.conf:/etc/redis/redis.conf
  50. nginx:
  51. image: nginx:1.21.6
  52. container_name: efm-nginx1
  53. ports:
  54. - 9020:9020
  55. restart: always
  56. # command:
  57. volumes:
  58. - /home/user/nginx/nginx.conf:/etc/nginx/nginx.conf
  59. - /home/user/nginx/conf.d:/etc/nginx/conf.d
  60. - /home/user/efm-ui:/usr/local/efm-ui
  61. # 容器环境变量 environment:
  62. minio:
  63. image: minio:8.5
  64. container_name: efm-minio1
  65. ports:
  66. - 9000:9000
  67. - 9090:9090
  68. restart: always
  69. command: ["server","/data","--console-address",":9000","--address",":9090"]
  70. environment:
  71. MINIO_ROOT_USER: admin
  72. MINIO_ROOT_PASSWORD: minioadmin
  73. volumes:
  74. - /home/user/minio/data:/data
  75. - /home/user/minio/config:/root/.minio