1.下载,安装dockercompose,建议手动下载
国内镜像地址

1)将dockercompose 移到 /usr/local/bin 下

curl -L https://get.daocloud.io/docker/compose/releases/download/v2.4.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

2)验证

docker-compose -v

3)设置国内镜像
sudo vi /etc/docker/daemon.json

daemon.json:
以下配置镜像并非本人的,懒得注册网上找的。

{"registry-mirrors": ["https://m30jn00e.mirror.aliyuncs.com"]
}

然后使用systemctl restart docker命令重启Docker即可

docker info 查看是否修改成功

2.在/opt 目录下新建各个组件的文件夹用于挂载文件

3.正式编排服务
3.1.mysql
1)建立conf,data文件夹

2).docker-compose.yml 文件

version: '3.1'
services:mysql:image: mysql:5.7container_name: mysqlprivileged: true #一定要设置为true,不然数据卷可能挂载不了,启动不起ports: - 3306:3306environment:MYSQL_ROOT_PASSWORD:  密码 # 自己配置数据库密码TZ: Asia/Shanghaicommand:--lower_case_table_names=1--character-set-server=utf8mb4--collation-server=utf8mb4_general_ci--explicit_defaults_for_timestamp=truevolumes:- /opt/mysql/data:/var/lib/mysql-/opt/mysql/conf/my.cnf:/etc/mysql/my.cnfrestart: always

3).在conf 下建立 my.cnf

[mysqld]
user=mysql
log-bin=mysql-bin # 开启Binlog
default-storage-engine=INNODB
default-time_zone = '+8:00'
sql-mode=STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

4)cd到存放docker-compose.yml的文件夹下运行下面命令

docker-compose up -d

3.2 .redis
1)创立如下目录

2)docker-compose.yml

version: '2'
services:redis:image: redis:5.0container_name: redisrestart: alwaysports:- "6379:6379"volumes:- /opt/redis/data:/data- /opt/redis/conf/redis.conf:/etc/redis/redis.confcommand: redis-server /etc/redis/redis.conf

3)redis.conf:

redis.conf 详细配置

# 绑定的IP  注释表示任何ip都能访问
#bind 0.0.0.0
# 保护模式 no:关闭 外网可以直接访问redis yes:开启保护模式,开启的情况下,只能通过绑定的ip[bind 127.0.0.1]或者密码验证访问
protected-mode no
# 启动的端口号
port 6379################################# GENERAL #####################################
# 设置运行方式 默认值:no,需要改为yes,以守护进程的方式运行,docker 运行一定要改为no不然一直会restart
daemonize no
# 配置文件的pid文件,如果以后台方式运行,就需要指定一个pid文件
pidfile /var/run/redis_6379.pid
# 日志级别设置
# 指定日志记录级别
# # Redis总共支持四个级别:debug、verbose、notice、warning,默认为verbose
# # debug 记录很多信息,用于开发和测试
# # varbose 有用的信息,不像debug会记录那么多
# # notice 普通的verbose,常用于生产环境
# # warning 只有非常重要或者严重的信息会记录到日志
loglevel notice
# 日志文件位置名
logfile ''
# redis数据库个数
databases 16
################################ SNAPSHOTTING  ################################# 持久化保存策略配置
# 在900s内,如果至少有1个key进行了修改,就进行持久化操作
save 900 1
# 在300s内,如果至少有10个key进行了修改,就进行持久化操作
save 300 10
# 在60s内,如果至少有10000个key进行了修改,就进行持久化操作
save 60 10000
# 如果持久化出错,主进程是否停止写入
stop-writes-on-bgsave-error yes
# 存储至本地数据库时(持久化到rdb文件)是否压缩数据,默认为yes
rdbcompression yes
# 导入时是否检查
rdbchecksum yes
# 默认持久化保存后的文件名
dbfilename dump.rdb
# rdb文件保存的目录
dir ./#ECURITY #################################### 设置访问、登录的密码,设置requirepass 您的密码
requirepass jxhyroot############################## APPEND ONLY MODE ################################ 是否开启aof持久化模式,默认值:no,不开启。redis的默认持久化策略是edb模式
appendonly yes# 持久化文件名称
appendfilename "appendonly.aof"# 持久化策略设置
# appendfsync always # 每次修改都进行持久化操作
# 每秒执行一次持久化操作
appendfsync everysec
# appendfsync no     # 不执行持久化操作,相当于未开启aof持久化策略# 设置为yes表示rewrite期间对新写操作不fsync,暂时存在内存中,等rewrite完成后再写入,默认为no,建议yes
no-appendfsync-on-rewrite no# AOF自动重写配置,默认值为100
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb# Redis在以AOF方式恢复数据时,对最后一条可能出问题的指令的处理方式,默认值yes
aof-load-truncated yes# 当重写AOF文件时,Redis能够在AOF文件中使用RDB前导码,以便更快地重写和恢复,启用此选项时,重写的AOF文件由两个不同的节组成:#[RDB file][AOF tail],当加载AOF文件时,Redis通过以 “REDIS” 字符串开头的AOF文件识别出此文件是由RDB和AOF组合而成的,Redis
#先加载RDB部分,然后再加载AOF部分,默认值yes
aof-use-rdb-preamble yes

4)运行同mysql

3.3. es

es不能使用root用户运行

#1--创建elasticsearch用户useradd elasticsearch;#2--赋予用户目录权限chown -R elasticsearch:elasticsearch elasticsearch-6.8.6;#3--切换至elasticsearch用户su elasticsearch#4修改最大文件打开数,不然es可能不能运行vim /etc/security/limits.conf
#在limits.conf添加以下两行,elasticsearch  表示用户
elasticsearch  hard nofile 65536
elasticsearch soft nofile 65536
#5验证
ulimit -H -n


#6vim /etc/sysctl.conf 添加

vm.max_map_count=262144

#7立即生效
/sbin/sysctl -p

1)建立如下目录

2)

version: '3'
services:# search engineelasticsearch: image: elasticsearch:7.7.0container_name: elasticsearchenvironment:- "discovery.type=single-node"- http.port=9200- http.cors.enabled=true- http.cors.allow-origin=*- ES_JAVA_OPTS=-Xms512m -Xmx512mvolumes:- /opt/es/data:/usr/share/elasticsearch/data- /opt/es/plugins:/usr/share/elasticsearch/plugins- /opt/es/logs/:/user/share/elasticsearch/logs- /opt/es/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.ymlrestart: alwaysports:- 9200:9200- 9300:9300# elasticsearch browserdejavu:image: appbaseio/dejavu:3.2.3container_name: dejavurestart: alwaysports:- 1358:1358links:- elasticsearch

4)配置文件

elasticsearch.yml

http.host: 0.0.0.0

5)启动同上

3.4.rabbitmq
1)建立如下目录

2)docker-compose.yml

version: '2'
services:rabbitmq:#setup host namehostname: rabbitmq#use docker imagesimage: rabbitmq:managementports:- 15672:15672   #客户端连接端口映射- 5672:5672restart: alwaysvolumes:- /opt/rabbitmq/data:/var/lib/rabbitmq  #数据卷映射

4)下载对应版本的延时队列插件 rabbitmq_delayed_message_exchange
https://github.com/rabbitmq/rabbitmq-delayed-message-exchange/releases
放到 cp /opt/rabbitmq/plugins/ 目录下
5)将其移入docker 容器

# a127c51394e6   rabbitmq的容器id
docker cp /opt/rabbitmq/plugins/rabbitmq_delayed_message_exchange-3.9.0.ez  a127c51394e6:/plugins

6)进入容器

docker exec -it rabbitmq /bin/bash

7)进入插件目录启动插件

cd plugins
#启动插件
rabbitmq-plugins enable rabbitmq_delayed_message_exchange

3)启动同上

3.5.consul

1)docker-compose.yml

version: '2.0'
services:consul:image: consul:1.6.1container_name: 'consul'ports:- 8500:8500   #换成其他端口外网无法访问,具体原因未知restart: alwaysvolumes:- /opt/consul/data:/consul/datacommand: agent -server -ui -datacenter=dc -domain=ci -bootstrap -client=0.0.0.0

2)启动同上

3.6:nginx
docker-compose:

version: '2'
services:nginx:container_name: nginximage: nginxrestart: alwaysports:- 80:80volumes:-  /data/nginx/conf/nginx.conf:/etc/nginx/nginx.conf- /data/nginx/conf.d:/etc/nginx/conf.d-  /data/nginx/html/dist:/usr/share/nginx/html-  /data/nginx/logs:/data/logs/nginxenvironment:- TZ=Asia/Shanghai

conf文件夹下的nginx.conf

user  nginx;
worker_processes  2;error_log  /data/logs/nginx/error/error.log warn;
pid        /var/run/nginx.pid;events {worker_connections  1024;
}http {include      /etc/nginx/mime.types;default_type  application/octet-stream;log_format logstash_json  '{''"@timestamp":"$time_iso8601",''"remote_addr":"$remote_addr",''"ip":"$http_x_forwarded_for",''"remote_user":"$remote_user",''"request_method":"$request_method",''"http_referer":"$http_referer",''"request":"$request_uri",''"body_bytes_sent":"$body_bytes_sent",''"status":"$status",''"request_time":"$request_time",''"http_user_agent":"$http_user_agent"''}';access_log /data/logs/nginx/access.log  logstash_json;client_max_body_size 60M;sendfile        on;keepalive_timeout  65;gzip on;gzip_buffers 4 16k;gzip_min_length 2k;gzip_comp_level 5;gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;gzip_vary on;server {listen 80;server_name  ip;keepalive_timeout 600;root /usr/share/nginx/html/draw;location / {index  index.html;try_files $uri $uri/ /index.html;}location /drawBatchInfo/ {proxy_pass http://ip:8080/drawBatchInfo/;}location /drawDetails/ {proxy_pass http://ip:8080/drawDetails/;}location /enterpriseWechatOperate/ {proxy_pass http://ip:8080/enterpriseWechatOperate/;}}//server  内容如果很多可以分模块放在单独的conf中用 include /etc/nginx/conf.d/*.conf 引入server {listen 90;server_name  ip;keepalive_timeout 600;rootusr/share/nginx/html/draw-backend;location / {auth_basic "please input manager name and password";auth_basic_user_file /home/nginxpasswd.db;index  index.html;try_files $uri $uri/ /index.html;}location /drawBatchInfo/ {proxy_pass http://ip2:8080/drawBatchInfo/;}location /drawDetails/ {proxy_pass http://ip2:8080/drawDetails/;}}}

3.7 安装minio

minio:image: minio/miniocontainer_name: miniorestart: alwaysports:#暴露API接口- 9000:9000#暴露Web接口控制台端口- 9001:9001command: minio server /data --console-address ":9001"environment:MINIO_ACCESS_KEY: wikiminio    #管理后台用户名MINIO_SECRET_KEY: jxhyroot #管理后台密码,最小8个字符volumes:- /data/wiki/minio:/data           #映射当前目录下的data目录至容器内/data目录- ./minio/config:/root/.minio/     #映射配置目录

docker-compose 安装常用服务相关推荐

  1. Docker笔记:常用服务安装——Nginx、MySql、Redis(转载)

    转载地址:https://www.cnblogs.com/spec-dog/p/11320513.html 开发中经常需要安装一些常用的服务软件,如Nginx.MySql.Redis等,如果按照普通的 ...

  2. Docker Compose安装以及入门

    Docker 安装 脚本安装 自定义脚本 wget https://mirrors.aliyun.com/docker-ce/linux/centos/7/x86_64/stable/Packages ...

  3. 如何使用Docker Compose安装Drupal

    The author selected United Nations Foundation to receive a donation as part of the Write for DOnatio ...

  4. 使用Docker Compose安装mysql

    使用Docker Compose安装mysql 1运行 安装 Docker Compose 运行以下命令以下载 Docker Compose 的当前稳定版本:$ sudo curl -L " ...

  5. Docker快速安装RabbitMQ服务

    Docker快速安装RabbitMQ服务 快速开始 #!/bin/bash # 建议保存为start.sh脚本执行 docker run -d --hostname my-rabbit --name ...

  6. docker compose 安装es和kibana

    docker compose 安装es和kibana 准备工作 创建es数据存放目录 mkdir /root/app/elk/es/data 增加目录权限 不增加权限,es有可能启动不起来 chmod ...

  7. docker compose安装elasticsearch

    docker compose安装 elasticsearch 安装 创建目录 es: mkdir es cd es 创建挂载目录 data mkdir data 创建 docker-compose.y ...

  8. Docker 及 Docker Compose 安装及使用教程 (2020版)

    文章目录 图文详细教程 1 Docker原理 2 Docker安装 3 镜像(Image) 3.1 获取镜像 3.2 查找拖取镜像 3.3 列出镜像 3.4 删除镜像 3.5 创建的镜像 4 容器(C ...

  9. 04@Docker Compose安装Compose模板文件的使用

    文章目录 Docker Compose 一.Docker Compose的介绍 1.Compose概述 2.Docker与Docker Compose区别 二.Docker Compose的安装 1. ...

  10. Docker Compose安装

    一 .  Docker Compose概述 Docker Compose是一个用于定义和运行多个容器Docker应用程序的工具.使用Compose,您可以使用YAML文件来配置应用程序的服务.然后 , ...

最新文章

  1. Ubuntu 14.04系统托盘图标问题,skype托盘图标显示
  2. Bitbucket Pipelines在Atlassian的Bitbucket云上提供持续交付功能
  3. lvm快照的创建恢复
  4. NoSQL(三):主从复制
  5. Android --- 怎么把其他类型的数据转换成 Json 字符串
  6. 3-18函数——作用域的查找空间
  7. poj 1679: The Unique MST【次小生成树】
  8. oracle aq_通过Java 8流使用Oracle AQ
  9. P1272 重建道路
  10. jquery监听向上向下滑动,滑动执行操作
  11. iOS开发篇——OC之NSNumber数字对象讲解
  12. Nowcoder farm ( 树状数组、二维前缀和、二维偏序 )
  13. 使用阿里云镜像仓库构建国外 Docker 镜像
  14. DynamipsGUI支持的全系列Cisco IOS下载
  15. 8位数控分频器的设计_数控分频器的设计实验报告
  16. mac mini 储存文件的服务器,另一种“NAS”的玩法---mac系统的远程管理和文件共享...
  17. 您的美团账户,美团互助未经客户同意自动扣费0.01元是什么情况
  18. 经典排序算法学习笔记二——快速排序
  19. HashCat配GPU
  20. 2021.02.17 GDKOI2021 好题记 第一记

热门文章

  1. 安装及使用RSSHub
  2. [oeasy]python0020换行字符_feed_line_lf_反斜杠n_B语言_安徒生童话
  3. 基于C语言设计的无边框背景透明窗体
  4. 在 Google 工作十年后的感悟
  5. 创建maven项目时添加自定义property属性
  6. Unity(一)Scene和GameObject
  7. 清明节 java_清明节习俗
  8. 写在今年(2022)清明节前
  9. word把选择答案弄到题目里_将Word解答中的答案项批量填入题干
  10. android猴子测试,听话的“猴子”安卓app压力测试