Docker配置与安装合集

提示:docker安装

文章目录

  • Docker配置与安装合集
    • 一.安装jdk1.8
    • 二、安装docker
    • 三、使用docker安装zookeeper
    • 四、安装dubbo Admin
    • 五、使用Docker安装MySQL
    • 六、使用Docker搭建Redis集群
    • 七、docker安装MongoDB
    • 八、Chrome浏览器安装插件(Altair GraphQL Client、Vue.js devtools)
    • 九、RocketMQ安装
    • 十、Elasticsearch安装
    • 十一、持续更新中.....

一.安装jdk1.8

  1. 创建目录:mkdir /usr/local/src/java
  2. 上传jdk tar包
  3. 解压:tar -xvf jdk-8u144-linux-x64.tar.gz
  4. 编辑配置文件:vi /etc/profile

在末尾添加下方内容

JAVA_HOME=/usr/local/src/java/jdk1.8.0_144
CLASSPATH=.:$JAVA_HOME/lib.tools.jar
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME CLASSPATH PATH
  1. 保存退出 :wq

  2. source /etc/profile #使更改的配置立即生效

  3. java -version

二、安装docker

1、安装需要的依赖包

 yum install -y yum-utils device-mapper-persistent-data lvm2

2、配置稳定仓库 (如果有本地仓库先禁用)

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

或者国内阿里源
使用阿里云Docker Yum源

sudo yum install -y yum-utils device-mapper-persistent-data lvm2
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
sudo yum makecache fast
sudo yum -y install docker-ce

3、安装

yum install docker-ce

4、启动docker

systemctl start docker

5、验证docker是否安装正确

docker run hello-world

docker常用命令:

docker启动命令,docker重启命令,docker关闭命令:启动:        systemctl start docker
守护进程重启:   sudo systemctl daemon-reload
重启docker服务:   systemctl restart  docker
重启docker服务:  sudo service docker restart
关闭docker: service docker stop
关闭docker: systemctl stop docker

三、使用docker安装zookeeper

1、拉取zk镜像

docker pull zookeeper:3.5

2.创建容器

docker create --name zk -p 2181:2181 zookeeper:3.5

3.启动容器

docker start zk

4、查看运行

docker ps

四、安装dubbo Admin

Dubbo提供了可视化的界面管理工具,方便我们对服务进行管理,它就是dubbo admin,代码地址:
https://github.com/apache/dubbo-admin

第一步,下载并且解压:

第二步,修改配置文件:
dubbo-admin-backend/src/main/resources/application.properties 中指定注册中心地址

第三步,使用maven进行构建项目:
如未安装maven请先安装maven

linux中安装maven步骤:

  1. 上传解压apache-maven-3.6.0-bin.tar.gz
  2. 配置环境变量:
export M2_HOME=/usr/local/apache-maven-3.6.0
export M2=$M2_HOME/bin
export PATH=$M2:$PATH
  1. 私服阿里云
    在maven settings.xml中添加
<mirror><id>nexus-aliyun</id><mirrorOf>*</mirrorOf><name>Nexus aliyun</name><url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
  1. . source /etc/profile #使更改的配置立即生效
  2. mvn -version

使用maven进行构建项目,在incubator-dubbo-ops目录下构建命令:`

mvn clean package -Dmaven.test.skip=true`

第四步,通过mavn插件启动程序:

mvn --projects dubbo-admin-server spring-boot:run

或者:

cd dubbo-admin-distribution/target
java -jar dubbo-admin-0.4.0.jar

第五步,访问系统
打开浏览器,进行访问:http://192.168.117.141:8080/#/
账户与密码:root

五、使用Docker安装MySQL

1、什么是percona?
Percona 为 MySQL 数据库服务器进行了改进,在功能和性能上较 MySQL 有着很显著的提升。该版本提升了在高
负载情况下的 InnoDB 的性能、为 DBA 提供一些非常有用的性能诊断工具;另外有更多的参数和命令来控制服务
器行为。
Percona Server 只包含 MySQL 的服务器版,并没有提供相应对 MySQL 的 Connector 和 GUI 工具进行改进。
Percona Server 使用了一些 google-mysql-tools, Proven Scaling, Open Query 对 MySQL 进行改造。
官网:https://www.percona.com/software/mysql-database

2、安装部署
#镜像地址:https://hub.docker.com/_/percona/
#拉取镜像

docker pull percona:5.7.23

#创建容器

docker create --name percona -v /data/mysql-data:/var/lib/mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root percona:5.7.23

#参数解释:
–name: percona 指定是容器的名称
-v: /data/mysql-data:/var/lib/mysql 将主机目录/data/mysql-data挂载到容器 的/var/lib/mysql上
-p: 33306:3306 设置端口映射,主机端口是33306,容器内部端口3306
-e: MYSQL_ROOT_PASSWORD=root 设置容器参数,设置root用户的密码为root percona:5.7.23: 镜像名:版本

#给data文件添加权限

 chmod -R 777 /data

#启动容器

 docker start percona

常用命令:

docker exec -it percona /bin/bash   #进入容器
mysql -u root -p  #进行mysql

测试:

六、使用Docker搭建Redis集群

docker的网络类型有:

  • None:不为容器配置任何网络功能,没有网络 --net=none
  • Container:与另一个运行中的容器共享Network Namespace,–net=container:containerID
  • Host:与主机共享Network Namespace,–net=host
  • Bridge:Docker设计的NAT网络模型(默认类型)

重点关注下Host类型:
host模式创建的容器没有自己独立的网络命名空间,是和物理机共享一个Network Namespace,并且共享物理机的所有端口与IP。但是它将容器直接暴露在公共网络中,是有安全隐患的。

说明:使用默认NAT网络模型搭建集群中节点的ip地址是docker分配的地址,那么在客户端(spring-data-redis)是没有办法访问的,即:使用host网络进行搭建集群,亲测有效。

开始搭建:

#拉取镜像
docker pull redis:5.0.2
#创建容器
docker create --name redis-node01 --net host -v /data/redis-data/node01:/data redis:5.0.2 --cluster-enabled yes --cluster-config-file nodes-node-01.conf --port 6379 docker create --name redis-node02 --net host -v /data/redis-data/node02:/data redis:5.0.2 --cluster-enabled yes --cluster-config-file nodes-node-02.conf --port 6380 docker create --name redis-node03 --net host -v /data/redis-data/node03:/data redis:5.0.2 --cluster-enabled yes --cluster-config-file nodes-node-03.conf --port 6381 #启动容器
docker start redis-node01 redis-node02 redis-node03
#进入redis-node01容器进行操作
docker exec -it redis-node01 /bin/bash #192.168.117.141是主机的ip地址
redis-cli --cluster create 192.168.117.141:6379 192.168.117.141:6380 192.168.117.141:6381 --cluster-replicas 0

搭建成功:

常用命令:

#查看容器的ip地址
docker inspect redis-node01 -> 172.17.0.2
docker inspect redis-node02 -> 172.17.0.3
docker inspect redis-node03 -> 172.17.0.4 #删除容器
docker stop redis-node01 redis-node02 redis-node03 docker
rm redis-node01 redis-node02 redis-node03
rm -rf /data/redis-data进入指定的redis集群 redis-cli -h 192.168.117.141 -p 6380
查看所有key值:keys *
删除指定索引的值:del key
清空整个 Redis 服务器的数据:flushall
清空当前库中的所有 key:flushdb

防火墙常用命令:

sudo firewall-cmd --list-all #查看已经开放的接口
sudo firewall-cmd --add-port=6379/tcp --permanent#新增端口
sudo firewall-cmd --reload#重启防火墙
firewall-cmd --state #查看防火墙状态
firewall-cmd --query-port=8080/tcp # 查询端口是否开放
systemctl unmask firewalld #执行命令,即可实现取消服务的锁定
systemctl mask firewalld # 下次需要锁定该服务时执行
systemctl start firewalld.service #启动防火墙
systemctl stop firewalld.service #停止防火墙
systemctl reloadt firewalld.service #重载配置
systemctl restart firewalld.service #重启服务
systemctl status firewalld.service #显示服务的状态
systemctl enable firewalld.service #在开机时启用服务
systemctl disable firewalld.service #在开机时禁用服务
systemctl is-enabled firewalld.service #查看服务是否开机启动
systemctl list-unit-files|grep enabled #查看已启动的服务列表
systemctl --failed #查看启动失败的服务列

七、docker安装MongoDB

#拉取镜像
docker pull mongo:4.0.3
#创建容器
docker create --name mongodb -p 27017:27017 -v /data/mongodb:/data/db mongo:4.0.3
#启动容器
docker start mongodb
#进入容器
docker exec -it mongodb /bin/bash
#使用MongoDB客户端进行操作
mongo > show dbs #查询所有的数据库
admin 0.000GB
config 0.000GB
local 0.000GB

基本操作:https://blog.csdn.net/weixin_44584110/article/details/122591036

八、Chrome浏览器安装插件(Altair GraphQL Client、Vue.js devtools)

可以使用网站“扩展迷”:https://www.extfans.com/,站内有如何下载,以及安装教程。
可以下载并安装Altair GraphQL Client、Vue.js devtools等实用工具。

除此之外推荐几个比较好用的插件:

  • 1、AdBlock,网页中最让人无法忍受的自然是广告,因此AdBlock总是第一个出现在我的安装列表里面
  • 2、tampermonkey,不知道诸位有没有产生过对网站进行定制的需求,如果有的话或许你可以了解一下油猴
  • 3、Image Downloader,如果你有图片下载的需求,可以考虑下载Image Downloader,分分钟将图片打包搞定
  • 4、listen1:网易云、qq、酷狗在音乐这一领域的版权上可谓三分天下,而listen1这个开源插件解决了这个问题,以后听歌不用一个一个播放器跳了

九、RocketMQ安装

1.非Docker安装

#上传压缩包
unzip rocketmq-all-4.3.2-bin-release.zip
cd rocketmq-all-4.3.2-bin-release #调整默认的内存大小参数
cd bin/
vim runserver.sh
JAVA_OPT="${JAVA_OPT} -server -Xms128m -Xmx128m -Xmn128m -XX:MetaspaceSize=128m - XX:MaxMetaspaceSize=128m" cd bin/
vim runbroker.sh
JAVA_OPT="${JAVA_OPT} -server -Xms128m -Xmx128m -Xmn128m"#启动nameserver
bin/mqnamesrv # The Name Server boot success. serializeType=JSON 看到这个表示已经提供成功
启动broker
bin/mqbroker -n 192.168.117.141:9876

下面进行发送消息测试:

export NAMESRV_ADDR=127.0.0.1:9876
cd bin
sh tools.sh org.apache.rocketmq.example.quickstart.Producer
#测试结果
ConsumeMessageThread_7 Receive New Messages: [MessageExt [queueId=2, storeSize=180, queueOffset=1322, sysFlag=0, bornTimestamp=1544456244818, bornHost=/172.16.55.185:33702, storeTimestamp=1544456244819, storeHost=/172.17.0.1:10911, msgId=AC11000100002A9F00000000000E84CC, commitLogOffset=951500, bodyCRC=684865321, reconsumeTimes=0, preparedTransactionOffset=0, toString()=Message{topic='TopicTest', flag=0, properties={MIN_OFFSET=0, MAX_OFFSET=1325, CONSUME_START_TIME=1544456445397, UNIQ_KEY=AC110001473C7D4991AD336AEA5203DF, WAIT=true, TAGS=TagA}, body=[72, 101, 108, 108, 111, 32, 82, 111, 99, 107, 101, 116, 77, 81, 32, 57, 57, 49], transactionId='null'}]] ConsumeMessageThread_6 Receive New Messages: [MessageExt [queueId=2, storeSize=180, queueOffset=1323, sysFlag=0, bornTimestamp=1544456244833, bornHost=/172.16.55.185:33702, storeTimestamp=1544456244835, storeHost=/172.17.0.1:10911, msgId=AC11000100002A9F00000000000E879C, commitLogOffset=952220, bodyCRC=801108784, reconsumeTimes=0, preparedTransactionOffset=0, toString()=Message{topic='TopicTest', flag=0, properties={MIN_OFFSET=0, MAX_OFFSET=1325, CONSUME_START_TIME=1544456445397, UNIQ_KEY=AC110001473C7D4991AD336AEA6103E3, WAIT=true, TAGS=TagA}, body=[72, 101, 108, 108, 111, 32, 82, 111, 99, 107, 101, 116, 77, 81, 32, 57, 57, 53], transactionId='null'}]]
#从结果中,可以看出,接收消息正常

说明:默认情况broker的ip地址是172.17.0.1 ,那么在开发机上是不可能访问到的。所以,需要指定broker的ip地址

#创建broker配置文件
vim /docker/rmq/rmqbroker/conf/broker.conf
brokerIP1=192.168.117.141
namesrvAddr=192.168.117.141:9876
brokerName=broker_haoke_im
#启动broker,通过 -c 指定配置文件
bin/mqbroker -c /haoke/rmq/rmqbroker/conf/broker.conf 

The broker[itcast, 192.168.117.141:10911] boot success.serializeType=JSON and name server is 192.168.117.141:9876
#这样就可以进行访问了。

2.通过docker安装

#拉取镜像
docker pull foxiswho/rocketmq:server-4.3.2
docker pull foxiswho/rocketmq:broker-4.3.2
#创建broker配置文件
vim /docker/rmq/rmqbroker/conf/broker.conf
brokerIP1=192.168.117.141
namesrvAddr=192.168.117.141:9876
brokerName=broker_haoke_im #创建nameserver容器
docker create -p 9876:9876 --name rmqserver
-e "JAVA_OPT_EXT=-server -Xms128m -Xmx128m -Xmn128m"
-e "JAVA_OPTS=-Duser.home=/opt"
-v /haoke/rmq/rmqserver/logs:/opt/logs
-v /haoke/rmq/rmqserver/store:/opt/store foxiswho/rocketmq:server-4.3.2
#创建broker容器
docker create -p 10911:10911 -p 10909:10909 --name rmqbroker
-e "JAVA_OPTS=-Duser.home=/opt"
-e "JAVA_OPT_EXT=-server -Xms128m -Xmx128m -Xmn128m"
-v /haoke/rmq/rmqbroker/conf/broker.conf:/etc/rocketmq/broker.conf
-v /haoke/rmq/rmqbroker/logs:/opt/logs
-v /haoke/rmq/rmqbroker/store:/opt/store foxiswho/rocketmq:broker-4.3.2
#启动容器
docker start rmqserver rmqbroker #停止删除容器
docker stop rmqbroker rmqserver
docker rm rmqbroker rmqserver

测试,可用。

常用命令:

#查看日志文件
docker logs rmqserver
docker logs rmqbroker
#从容器复制内容到主机
docker cp da3ffb8e127d:/etc/rocketmq/broker.conf /docker/rmq/rmqbroker/conf

3.部署RocketMQ的管理工具
RocketMQ提供了UI管理工具,名为rocketmq-console,项目地址:https://github.com/apache/rocketmq-exter
nals/tree/master/rocketmq-console
该工具支持docker以及非docker安装。

#拉取镜像
docker pull styletang/rocketmq-console-ng:1.0.0
#创建并启动容器
docker run -e "JAVA_OPTS=-Drocketmq.namesrv.addr=192.168.117.141:9876 - Dcom.rocketmq.sendMessageWithVIPChannel=false" -p 8082:8080 -t styletang/rocketmq- console-ng:1.0.0

通过浏览器进行访问:http://192.168.117.141:8082/#/

十、Elasticsearch安装

1、Elasticsearch安装

#拉取镜像
docker pull elasticsearch:6.5.4
#创建容器
docker create --name elasticsearch --net host -e "discovery.type=single-node" -e "network.host=172.16.55.185" elasticsearch:6.5.4
#启动
docker start elasticsearch
#查看日志
docker logs elasticsearch

测试安装结果

2、elasticsearch-head的安装
elasticsearch-head是一个为ES开发的一个页面客户端工具,其源码托管于GitHub,地址为:https://github.com/mobz/elasticsearch-head

#拉取镜像
docker pull mobz/elasticsearch-head:5
#创建容器
docker create --name elasticsearch-head -p 9100:9100 mobz/elasticsearch-head:5
#启动容器
docker start elasticsearch-head

通过浏览器访问
http://172.16.55.185:9100
ElasticSearch-Head创建索引无响应,F12查看发现406错误,修改head的 Content-Type 设置.

docker exex -it elasticsearch-head /bin/bash
root@b93fa4e29ba2:/usr/src/app# vim _site/vendor.js
1. 6886行 /contentType: "application/x-www-form-urlencoded 改成 contentType: "application/json;charset=UTF-8"
2. 7574行 var inspectData = s.contentType ==`= "application/x-www-form-urlencoded" &&` 改成 var inspectData = s.contentType === "application/json;charset=UTF-8" &&
root@b93fa4e29ba2:/usr/src/app/_site# exit
exit
[root@localhost ~]docker restart elasticsearch-head

提示:
1、docker容器内无法使用vim ,分别执行这两条命令 就可以使用vim编辑文件
apt-get update
apt-get install -y vim
2、vim设置行号 :set nu 跳转行号 :6886

3、使用docker搭建集群

mkdir /hh/es-cluster
cd /hh/es-cluster
mkdir node01
mkdir node02
#复制安装目录下的elasticsearch.yml、jvm.options文件,做如下修改 #node01的配置:
cluster.name: es-itcast-cluster
node.name: node01
node.master: true
node.data: true
network.host: 172.16.55.185
http.port: 9200
discovery.zen.ping.unicast.hosts: ["172.16.55.185"]
discovery.zen.minimum_master_nodes: 1
http.cors.enabled: true
http.cors.allow-origin: "*"
#node02的配置:
cluster.name: es-itcast-cluster
node.name: node02
node.master: false
node.data: true
network.host: 172.16.55.185
http.port: 9201
discovery.zen.ping.unicast.hosts: ["172.16.55.185"]
discovery.zen.minimum_master_nodes: 1
http.cors.enabled: true
http.cors.allow-origin: "*"
#创建容器
docker create --name es-node01 --net host -v /hh/es- cluster/node01/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /hh/es-cluster/node01/jvm.options:/usr/share/elasticsearch/config/jvm.options -v /hh/es-cluster/node01/data:/usr/share/elasticsearch/data elasticsearch:6.5.4
docker create --name es-node02 --net host -v /hh/es- cluster/node02/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /hh/es-cluster/node02/jvm.options:/usr/share/elasticsearch/config/jvm.options -v /hh/es-cluster/node02/data:/usr/share/elasticsearch/data elasticsearch:6.5.4
#启动容器
docker start es-node01 && docker logs -f es-node01
docker start es-node02 && docker logs -f es-node02#提示:启动时会报文件无权限操作的错误,需要对node01和node02进行chmod 777 的操作
chmod 777 data/ -R#修改单个进程中的最大线程数
vim /etc/sysctl.conf
vm.max_map_count=655360
sysctl -p  #保存生效

查看集群:

十一、持续更新中…

服务器配置与软件安装合集相关推荐

  1. ubuntu常用软件安装合集

    这里都是笔者自己配置环境留下的笔记.在这里总结. 大家可以点击链接跳跃到具体详细的步骤进行参考. 文章目录 搜狗输入法 谷歌浏览器 ubuntu给pip换下载源 pyton- opencv 将默认的p ...

  2. 【传送门】 Linux软件安装合集

    https://blog.csdn.net/yuanlaijike/article/details/79658860

  3. 软件批量安装,软件自动安装,一键安装合集

    使用一键安装合集,省去单个安装包的下载及安装过程.一键安装合集不仅可以自定义安装路径 .记住技术员的选择,让装机更快捷,而且提供合集自动安装程序,真正实现一键安装. 下载后不要更改名字 下载地址:ht ...

  4. stotybord如何添加子视图_Revit软件技巧合集(建筑构件、视图处理、建筑表现、高级技巧)...

    Revit软件技巧合集164套(建筑构件.视图处理.建筑表现.高级技巧) BIM技术在我国建筑行业受到了越来越多的关注,也得到了快速地发展.BIM应用软件也如雨后春笋般的涌现,随着时间的推移,revi ...

  5. 安卓应用测试指南 pdf_YPlay月刊2020年10月软件应用合集

    Youth Play本月期刊精选2020年10月更新的各类软件应用合集: 说明:左侧序号为资源对应的关键字,右侧为内容的标题 161 2020驾考宝典APP,学车找教练不用愁 162 Microsof ...

  6. 323个精品小工具软件打包合集

    323个精品小工具软件打包合集 (电驴下载:ed2k://|file|323%E4%B8%AA%E7%B2%BE%E5%93%81%E5%B0%8F%E5%B7%A5%E5%85%B7.rar|613 ...

  7. 办公软件excel表格_190个施工方案+40个电力计算Excel表格、软件大合集

    190个施工方案+40个电力计算Excel表格.软件大合集! 现在的工程人真的是变身超人,施工方案不能出错,计算要快,BIM技术.CAD软件也要会,如果没有这些可直接套用的施工方案和自动计算表格,我想 ...

  8. 电焊库卡机器人_库卡焊接机器人七大软件大合集

    原标题:库卡焊接机器人七大软件大合集 焊接机器人是工业生产中常用的一类机器人,应用行业广泛.而库卡焊接机器人则是焊接机器人领域的佼佼者,无论是技术还是品牌知名度,都是业内的佼佼者. 在这样的背景之下, ...

  9. 【软件开发合集】各种类型软件开发合集(包括JS,Python和Android)

    [软件开发合集]各种类型软件开发笔记合集,包括JS,Python和Android 1.[基于JS的软件开发笔记] 1.1 基于JavaScript开发的校园综合类微信小程序 2.[基于Python的软 ...

最新文章

  1. 2022-2028年中国液体燃料行业市场研究及前瞻分析报告
  2. 去除MyEclipse频繁弹出的Update Progress窗口
  3. 孙鑫MFC笔记之十四--多线程同步与异步套接字编程
  4. Android之解决NestedScrollView嵌套RecyclerView部分手机返回到这个页面Recyclerview顶部,而不是页面NestedScrollView顶部
  5. 5G精华问答 | 5G是否会“逼退”4G?
  6. p2p终结者局域网控制软件的介绍和用法
  7. 使用harviewer显示har文件
  8. py的征途2之简例分享
  9. 点击链接时直接在网页中打开word文档
  10. Hive3第五章:函数
  11. Excel 合并居中后无法自动换行
  12. 基于51单片机十字路口交通灯_只显示绿灯时间+黄灯5s
  13. FlutterWeb性能优化探索与实践
  14. 人工智能技术的应用越来越广,极大促进了无人机产业的发展
  15. matlab ssd检测,基于SSD神经网络的违章停车车辆实时检测方法与流程
  16. 广工计算机组成原理考试,广工计算机组成原理期末考试B卷(杨卫平)
  17. 2019计算机小高考成绩,小高考没过怎么办 2021小高考难度如何
  18. 华为云服务器的系统,云服务器的系统
  19. 微软鼠标测试软件,微软Precision鼠标评测:Surface生产力工具最佳搭配
  20. YOLOv5冷门小知识汇总

热门文章

  1. C++性能优化(十一) —— 内存管理器性能分析
  2. ORA-00937:不是单组分组函数 ORA-22818:这里不允许出现子查询表达式
  3. js进栈出栈_JavaScript js调用堆栈(一)
  4. oracle和mysql查询条件排序_Oracle数据库中ORDERBY排序和查询按IN条件的顺序输出
  5. JavaWeb聊天(Redis+环信) 一、发送接收消息、聊天记录拉取
  6. Win10系统程序图标上的盾牌怎么去除?
  7. Python SyntaxError: Missing parentheses in call to 'print'
  8. 【Renesas RA6M4开发板之UART与Serial studio串口交互】
  9. golang中定时器ticker
  10. Windows装机方案