docker 安装 elasticsearch redis mysql rabbitmq redis zookeeper jenkins

9 篇文章 0 订阅
2 篇文章 0 订阅


docker 安装内容一系列前置条件

docker 安装 详见我https://blog.csdn.net/learning_IT_boy/article/details/115691701
查看curl版本

curl -V

出现-bash: curl: command not found
先安装一下curl

wget https://curl.haxx.se/download/curl-7.56.1.tar.gz
tar xvf curl-7.56.1.tar.gz
cd curl-7.56.1
./configure –disable-shared 
make
make install
curl -V

把防火墙关了,真正上线的服务器都有安全组

systemctl stop firewalld
看日志
docker logs -t --tail 100 镜像id或者镜像名称

进入容器内部把配置文件copy出来

docker exec -it 容器名 bash
找到要copy文件的路径(我是通过cd .. 一点点找的一般的pull都在 /usr/share/xxx)

docker cp 容器名:文件路径 宿主机路径
如: docker cp ES01:/usr/share/elasticsearch /home/mydata

查看拉取latest

docker image inspect 镜像名:latest | grep -i version

1.docker部署mysql

拉取mysql(docker pull mysql 默认拉取最新 加上:xx拉取指定版本)

docker pull mysql:5.7

docker启动mysql

docker run -di --name=mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root mysql:5.7

-p 是做端口映射,此时将服务器中的8888(冒号前的端口)端口映射到容器中的8888(冒号后的端口)端口
-e 指定环境变量,容器中可以使用该环境变量(root )

进入到mysql容器内部

docker exec -it mysql /bin/bash

启动mysql

mysql -uroot -proot --default-character-set=utf8

查看mysql配置

mysql> show databases;

设置密码

mysql> set password=password('root');

2.docker部署nginx

拉取一下nginx镜像
查看历史版本,下载需要的版本

curl https://registry.hub.docker.com/v1/repositories/nginx/tags| tr -d '[\[\]" ]' | tr '}' '\n'| awk -F: -v image='centos' '{if(NR!=NF && $3 != ""){printf("%s:%s\n",image,$3)}}'

docker pull nginx:1.9.9

把docker下载的nginx配置 copy出来


挂载宿主机nginx 配置目录到docker目录下
这样的话你修改宿主机也就是 /home/mydata/nginx下的conf文件,docker启动的nginx也能用了

docker run -di --name=nginx -p 80:80 -v /home/mydata/nginx/:/etc/nginx nginx

当然如果你下载的是latest,查看last版本

docker image inspect nginx:latest | grep -i version

3.docker部署redis

拉取docker 镜像

curl https://registry.hub.docker.com/v1/repositories/redis/tags| tr -d '[\[\]" ]' | tr '}' '\n'| awk -F: -v image='centos' '{if(NR!=NF && $3 != ""){printf("%s:%s\n",image,$3)}}'

docker pull redis:6.2.3

挂载配置
1…准备redis的一些配置文件
首先在/home/mydata/redis/data 创建好文件夹用于存放redis数据,这个文件夹位置也可以自己选。
然后在/home/mydata/redis/conf/ 创建好redis.conf文件。用户redis的配置。(-p :逐级创建文件,没有就创建)

mkdir -p /home/mydata/redis/data
mkdir -p /home/mydata/redis/conf

docker pull 下来的redis里是没有配置文件的只能自己copy
办法是redis.conf从github上copy过来
https://github.com/redis/redis
或者Tags选准确版本
在这里插入图片描述

cd /home/mydata/redis/conf/
touch redis.conf
vim redis.conf

修改配置

requirepass yourpassword#给redis设置密码
bind 127.0.0.1 #注释掉这部分,这是限制redis只能本地访问
protected-mode no #默认yes,开启保护模式,限制为本地访问
daemonize no#默认no,意为是否以守护进程方式启动,可后台运行,不要改为yes 否则可能redis会启动失败
databases 16 #数据库个数(可选),我修改了这个只是查看是否生效。
dir /home/mydata/redis/data #输入本地redis数据库存放文件夹(可选)
appendonly yes #redis持久化(可选)

2.启动redis

docker run -d --privileged=true -p 6379:6379 -v /home/mydata/redis/conf/redis.conf:/usr/local/etc/redis/redis.conf -v /home/mydata/redis/data:/usr/local/redis/data --name redis redis redis-server /usr/local/etc/redis/redis.conf

-d:设置redis后台运行

–privileged=true:大约在0.6版,privileged被引入docker。使用该参数,container内的root拥有真正的root权限。否则,container内的root只是外部的一个普通用户权限。

-p 6379:6379 :映射容器服务的 6379 端口到宿主机的 6379 端口。外部可以直接通过宿主机ip:6379 访问到 Redis 的服务。

-v :挂载目录,规则与端口映射相同。Docker目录挂载可以参见关于Docker目录挂载的总结

/home/mydata/redis/conf/redis.conf:就是之前我们创建的外部配置文件目录

/home/mydata/redis/conf/redis.conf:etc/redis/redis.conf:这样在容器启动后,容器内会自动创建/etc/redis/redis.conf的目录。通过这种方式,我们可以明确一点,即-v参数中,冒号":"前面的目录是宿主机目录,后面的目录是容器内目录。

/home/mydata/redis/data:/usr/local/redis/data :映射数据目录

redis-server /etc/redis/redis.conf:以配置文件启动redis,加载容器内的conf文件,最终找到的是挂载的目录/home/mydata/redis/conf/redis.conf
–appendonly yes redis持久化

4.docker部署rabbitmq

拉取docker 镜像

curl https://registry.hub.docker.com/v1/repositories/rabbitmq/tags| tr -d '[\[\]" ]' | tr '}' '\n'| awk -F: -v image='centos' '{if(NR!=NF && $3 != ""){printf("%s:%s\n",image,$3)}}'

docker pull rabbitmq:3.8.9

启动

docker run -di --name=rabbitmq -p 5671:5671 -p 5672:5672 -p 4369:4369 -p 25672:25672 -p 15671:15671 -p 15672:15672 rabbitmq:3.8.9

进入容器内部

docker exec -it rabbitmq /bin/bash
安装管理插件
rabbitmq-plugins enable rabbitmq_management

访问15672即可
在这里插入图片描述

5.docker部署zookeeper

拉取docker 镜像

curl https://registry.hub.docker.com/v1/repositories/zookeeper/tags| tr -d '[\[\]" ]' | tr '}' '\n'| awk -F: -v image='centos' '{if(NR!=NF && $3 != ""){printf("%s:%s\n",image,$3)}}'

docker pull zookeeper:3.7.0

启动

docker run -di --name=zookeeper -p 2181:2181 zookeeper:3.7.0

6.docker部署elasticsearch

拉取docker 镜像

curl https://registry.hub.docker.com/v1/repositories/elasticsearch/tags| tr -d '[\[\]" ]' | tr '}' '\n'| awk -F: -v image='centos' '{if(NR!=NF && $3 != ""){printf("%s:%s\n",image,$3)}}'

docker pull elasticsearch:7.5.0

修改内存
sysctl -w vm.max_map_count=262144

1.启动单机版

docker run -di --name=elasticsearch -p 9200:9200 -p 9300:9300 -e "ES_JAVA_OPTS=-Xms128m -Xmx128m" -e "discovery.type=single-node" -e "cluster.name=elasticsearch" -e "publish_address=0.0.0.0:9200" -e "http.cors.enabled=true" -e "http.cors.allow-origin="*""  -v /home/mydata/elasticsearch/plugins:/usr/share/elasticsearch/plugins elasticsearch:7.5.0

-e "ES_JAVA_OPTS=-Xms128m -Xmx128m"是jvm内存,一般是你可用内存的一半,free -m查看内存
-e “discovery.type=single-node” 单节点模式
-e “cluster.name=elasticsearch” 集群名称
-e "publish_address=0.0.0.0:9200"对外访问接口
-e “http.cors.enabled=true” -e “http.cors.allow-origin= “*”” 跨域访问开启
注意:-e"" 设置变量=号中间不能有空格,否则即使启动也可能会不好使

安装zk分词器

docker exec -it elasticsearch /bin/bash
elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.5.0/elasticsearch-analysis-ik-7.5.0.zip

重启
docker restart elasticsearch

2.启动集群版

我们只需要在一台虚拟机上面搭建多个docker容器即可

1.调高JVM线程数限制数量

1、修改sysctl.conf文件

vim /etc/sysctl.conf
修改
net.ipv4.ip_forward=1

2、在最下面加入内容

vm.max_map_count=262144 

3、启用配置

sysctl -p

2.建立一个挂载目录

先启动一下单机版的es,之后再删了

cd /usr/local
## 配置文件,用于挂载
mkdir -p es/config
cd es
mkdir data1
mkdir data2
mkdir data3
mkdir logs1
mkdir logs2
mkdir logs3
mkdir  plugins1
mkdir  plugins2
mkdir  plugins3
#增加es文件夹下个文件写的权利
chmod 777 -R /usr/local/es
#从docker容器中copy出yml文件
docker cp 单机容器名:/usr/share/elasticsearch/config/elasticsearch.yml /usr/local/es/config

然后在/es/config目录下分别放入es1.yml、es2.yml

3.修改es.yml配置

vim es1.yml

# 设置绑定的ip地址,可以使ipv4或者ipv6
network.bind_host: 0.0.0.0
# 设置其他节点和该节点交互的ip地址
network.publish_host: 172.21.0.13
http.port: 9200
node.master: true 
node.data: true 
node.name: node-1  # 端口 
cluster.name: es  # 集群名称,同一集群要一致
transport.tcp.port: 9300 #对外访问端口
discovery.seed_hosts: ["172.21.0.13:9300", "172.21.0.13:9301", "172.21.0.13:9302"]
cluster.initial_master_nodes: ["172.21.0.13:9300", "172.21.0.13:9301", "172.21.0.13:9302"]
# 跨域请求配置(为了让类似head的第三方插件可以请求es) 
http.cors.enabled: true
http.cors.allow-origin: "*"
# 防止脑裂最好是n/2+1
discovery.zen.minimum_master_nodes: 2
discovery.zen.ping_timeout: 60s

vim es2.yml

# 设置绑定的ip地址,可以使ipv4或者ipv6
network.bind_host: 0.0.0.0
# 设置其他节点和该节点交互的ip地址
network.publish_host: 172.21.0.13
http.port: 9201
node.master: true 
node.data: true 
node.name: node-2  # 端口 
cluster.name: es  # 集群名称,同一集群要一致
transport.tcp.port: 9301 #对外访问端口
discovery.seed_hosts: ["172.21.0.13:9300", "172.21.0.13:9301", "172.21.0.13:9302"]
cluster.initial_master_nodes: ["172.21.0.13:9300", "172.21.0.13:9301", "172.21.0.13:9302"]
# 跨域请求配置(为了让类似head的第三方插件可以请求es) 
http.cors.enabled: true
http.cors.allow-origin: "*"
# 防止脑裂最好是n/2+1
discovery.zen.minimum_master_nodes: 2
discovery.zen.ping_timeout: 60s

vi es3.yml

4.启动es

启动容器:
es1

docker run -e ES_JAVA_OPTS="-Xms128m -Xmx128m" -d  -p 9200:9200 -p 9300:9300 -p 5601:5601 -v /usr/local/es/config/es1.yml:/usr/share/elasticsearch/config/elasticsearch.yml  -v /usr/local/es/plugins1:/usr/share/elasticsearch/plugins -v /usr/local/es/logs1:/usr/share/elasticsearch/logs   -v /usr/local/es/data1:/usr/share/elasticsearch/data --name=ES01 elasticsearch:7.5.0

es2

docker run -e ES_JAVA_OPTS="-Xms128m-Xmx128m" -d -p 9201:9201 -p 9301:9301 -v /usr/local/es/config/es2.yml:/usr/share/elasticsearch/config/elasticsearch.yml  -v /usr/local/es/logs2:/usr/share/elasticsearch/logs -v /usr/local/es/plugins2:/usr/share/elasticsearch/plugins    -v /usr/local/es/data2:/usr/share/elasticsearch/data --name=ES02 elasticsearch:7.5.0

测试一下

http://192.168.112.150:9200/_cat/nodes?pretty
或者linux
curl 127.0.0.1:9200/_cluster/health?pretty
{
  "cluster_name" : "es",
  "status" : "green",
  "timed_out" : false,
  "number_of_nodes" : 2,
  "number_of_data_nodes" : 2,
  "active_primary_shards" : 0,
  "active_shards" : 0,
  "relocating_shards" : 0,
  "initializing_shards" : 0,
  "unassigned_shards" : 0,
  "delayed_unassigned_shards" : 0,
  "number_of_pending_tasks" : 0,
  "number_of_in_flight_fetch" : 0,
  "task_max_waiting_in_queue_millis" : 0,
  "active_shards_percent_as_number" : 100.0
}

3.安装head监控

 docker pull mobz/elasticsearch-head:5
 docker run -d -p 9100:9100 --name=head mobz/elasticsearch-head:5 

网址
http://81.70.170.21:9100/
在这里插入图片描述

创建索引F12 报错406
一.进入容器(head为容器ID,请改成自己的)

 [root@localhost ~]# docker exec -it head /bin/bash
 root@b93fa4e29ba2:/usr/src/app# apt-get update
 root@b93fa4e29ba2:/usr/src/app# apt-get install vim
 root@b93fa4e29ba2:/usr/src/app# vim _site/vendor.js

修改

:6886
1. 6886行 /contentType: "application/x-www-form-urlencoded 
    改成 contentType: "application/json;charset=UTF-8" 
2. 7573行 var inspectData = s.contentType ==`= "application/x-www-form-urlencoded" &&` 
    改成 var inspectData = s.contentType === "application/json;charset=UTF-8" &&
 
 按键盘Esc 
:wq

退出重启

root@b93fa4e29ba2:/usr/src/app/_site# exit
exit
[root@localhost ~]# docker restart head

在这里插入图片描述

4.kibana连接

Kibana连接ES集群:

curl https://registry.hub.docker.com/v1/repositories/kibana/tags| tr -d '[\[\]" ]' | tr '}' '\n'| awk -F: -v image='centos' '{if(NR!=NF && $3 != ""){printf("%s:%s\n",image,$3)}}'

docker pull kibana:7.5.0

docker run -it -d -e ELASTICSEARCH_URL=http://127.0.0.1:9200 --name=kibana --network=container:ES01 kibana:7.5.0

修改挂载配置

docker exec -it kibana  bash
docker cp kibana:/usr/share/kibana/config/kibana.yml /usr/local/es/config
vi config/kibana.yml
# 服务端口,默认5601 
server.port: 5601 
server.host: "0.0.0.0"
# 允许访问IP server.host: "0.0.0.0" 
# 设置 elasticsearch 节点及端口有几个写几个,别多写
elasticsearch.hosts: ["http://81.70.170.21:9200", "http://81.70.170.21:9201", "http://81.70.170.21:9202"]
#自己设置登录密码
elasticsearch.username: "wqy"
elasticsearch.password: "wqy"
#汉化
i18n.locale: "zh-CN"

再次启动

docker stop kibana
docker rm kibana

docker run -it -d --name=kibana -p 5601:5601 -v /usr/local/es/config/kibana.yml:/usr/share/kibana/config/kibana.yml kibana:7.5.0

查看
http://81.70.170.21/:5601/
在这里插入图片描述
在这里插入图片描述

7.docker配置集成dockerMaven插件

1.创建私有仓库

docker pull registry
docker run -di --name=registry -p 5000:5000 registry
vim /etc/docker/daemon.json 
"insecure-registries":["81.70.170.21:5000"]
systemctl restart docker

java的pom文件

<plugin>
				<groupId>com.spotify</groupId>
				<artifactId>docker-maven-plugin</artifactId>
				<version>1.1.0</version>
				<executions>
					<execution>
						<id>build-images</id>
						<phase>package</phase>
						<goals>
							<goal>build</goal>
						</goals>
					</execution>
				</executions>
				<configuration>
					<imageName>test/${project.artifactId}:${project.version}</imageName>
					<dockerHost>http://81.70.170.21:2375/</dockerHost>
					<baseImage>java:8</baseImage>
					<entryPoint>["java", "-jar","/${project.build.finalName}.jar"]</entryPoint>
					<!--"-Dspring.profiles.active=dev"-->
					<!-- copy the service's jar file from target into the root directory of the image -->
					<resources>
						<resource>
							<targetPath>/</targetPath>
							<directory>${project.build.directory}</directory>
							<include>${project.build.finalName}.jar</include>
						</resource>
					</resources>
				</configuration>
			</plugin>

8.docker部署jenkins

拉取镜像安装最新稳定版

docker pull jenkins/jenkins:lts

目录映射

mkdir -p  /mydata/jenkins_home
sudo chown -R 1000 /home/mydata/jenkins_home
docker run -di --name=jenkins -p 8080:8080 -v /home/mydata/jenkins_home:/var/jenkins_home jenkins/jenkins:lts

访问启动的jenkins
http://81.70.170.21:8080/
第一次启动会有密码

jenkins 开始密码
docker logs jenkins
或者
tail -f /home/mydata/jenkins_home/secrets/initialAdminPassword

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

1.安装jdk和maven插件

在这里插入图片描述
在这里插入图片描述
安装jdk(全部配置)

在这里插入图片描述
在这里插入图片描述
配置maven
在这里插入图片描述
在这里插入图片描述

2.配置ssh

ssh是用来连接服务器的
1.先配置凭证
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.配置ssh

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
保存就行

3.部署应用

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
保存

cd /home/mydata/jenkins_home/tools/hudson.tasks.Maven_MavenInstallation/maven3.6.2/conf/
vim setting.xml
<mirror>
	<id>nexus-aliyun</id>
	<mirrorOf>central</mirrorOf>
	<name>Nexus aliyun</name>
	<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
docker restart jenkins

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值