赞
踩
docker安装教程
快捷安装脚本:
curl -fsSL get.docker.com -o get-docker.sh
sh get-docker.sh --mirror Aliyun
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 目录下新建各个组件的文件夹用于挂载文件
1)建立conf,data文件夹
2).docker-compose.yml 文件
version: '3.1' services: mysql: image: mysql:5.7 container_name: mysql privileged: true #一定要设置为true,不然数据卷可能挂载不了,启动不起 ports: - 3306:3306 environment: MYSQL_ROOT_PASSWORD: 密码 # 自己配置数据库密码 TZ: Asia/Shanghai command: --lower_case_table_names=1 --character-set-server=utf8mb4 --collation-server=utf8mb4_general_ci --explicit_defaults_for_timestamp=true volumes: - /opt/mysql/data:/var/lib/mysql -/opt/mysql/conf/my.cnf:/etc/mysql/my.cnf restart: 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
1)创立如下目录
2)docker-compose.yml
version: '2'
services:
redis:
image: redis:5.0
container_name: redis
restart: always
ports:
- "6379:6379"
volumes:
- /opt/redis/data:/data
- /opt/redis/conf/redis.conf:/etc/redis/redis.conf
command: 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
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 engine elasticsearch: image: elasticsearch:7.7.0 container_name: elasticsearch environment: - "discovery.type=single-node" - http.port=9200 - http.cors.enabled=true - http.cors.allow-origin=* - ES_JAVA_OPTS=-Xms512m -Xmx512m volumes: - /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.yml restart: always ports: - 9200:9200 - 9300:9300 # elasticsearch browser dejavu: image: appbaseio/dejavu:3.2.3 container_name: dejavu restart: always ports: - 1358:1358 links: - elasticsearch
4)配置文件
elasticsearch.yml
http.host: 0.0.0.0
5)启动同上
1)建立如下目录
rabbitmq 宿主机上的log目录需要 chmod 777 - R log
赋权,data目录不要额外赋权容易出现问题。
2)docker-compose.yml
myplugins 用于延迟队列插件在容器重新构建后不丢失。
rabbitmq: container_name: rabbitmq image: rabbitmq:3.9-management ports: - 15672:15672 #客户端连接端口映射 - 5672:5672 restart: always privileged: true volumes: - ./rabbitmq/log/:/var/log/rabbitmq/ - ./rabbitmq/data/:/var/lib/rabbitmq #数据卷映射 - ./rabbitmq/plugins:/myplugins environment: # 指定自定义插件目录 RABBITMQ_PLUGINS_DIR: '/plugins:/myplugins' RABBITMQ_DEFAULT_USER: root RABBITMQ_DEFAULT_PASS: root
docker-compose up 运行起来即可在网页 ip:15672 中访问rabbitmq后台了。
账号 RABBITMQ_DEFAULT_USER 配置的值
密码 RABBITMQ_DEFAULT_PASS 配置的值
4)下载对应版本的延时队列插件 rabbitmq_delayed_message_exchange
https://github.com/rabbitmq/rabbitmq-delayed-message-exchange/releases
放入**./rabbitmq/plugins**目录下
5)进入容器
docker exec -it rabbitmq /bin/bash
6)启动插件
#启动插件
rabbitmq-plugins enable rabbitmq_delayed_message_exchange
3)启动同上
1)docker-compose.yml
version: '2.0'
services:
consul:
image: consul:1.6.1
container_name: 'consul'
ports:
- 8500:8500 #换成其他端口外网无法访问,具体原因未知
restart: always
volumes:
- /opt/consul/data:/consul/data
command: agent -server -ui -datacenter=dc -domain=ci -bootstrap -client=0.0.0.0
2)启动同上
docker-compose:
version: '2' services: nginx: container_name: nginx image: nginx restart: always ports: - 80:80 - 90:90 volumes: - /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/nginx environment: - 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/; } } }
我们在安装nginx时经常会遇到配置不对或者修改doocker-compose文件的情况,这时需要更新镜像。
1.停止容器 docker-compose stop nginx
2.编译镜像启动容器 docker-compose up --build -d nginx
minio: image: minio/minio container_name: minio restart: always ports: #暴露API接口 - 9000:9000 #暴露Web接口控制台端口 - 9001:9001 command: 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/ #映射配置目录
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。