docker安装各开发环境

docker安装

安装Docker

# 环境安装:
yum -y install gcc-c++

# 第一步:安装必要的一些系统工具
yum install -y yum-utils device-mapper-persistent-data lvm2

# 第二步:添加软件源信息
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

# 第三步:更新并安装Docker-CE
yum makecache fast
yum -y install docker-ce

# 第四步:开启Docker服务
service docker start
systemctl enable docker

# 第五步:测试是否安装成功
docker -v

# 第六步:配置镜像加速器
# 您可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器
mkdir -p /etc/docker
vim /etc/docker/daemon.json

{
 "registry-mirrors": ["https://registry.docker-cn.com"]
}

# 重启Docker生效
systemctl restart docker

安装MySQL

# 第一步:拉取镜像
docker pull mysql:5.7
docker pull mysql:8.0.28

# 第二步:启动
docker run --name mysql5.7 --restart=always -v /home/mysql/mysql5.7:/var/lib/mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
docker run --name mysql8 --restart=always -v /home/mysql/mysql8:/var/lib/mysql -p 33306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:8.0.28

# 第三步:测试mysql
# 进入容器:
docker exec -it sun_mysql /bin/bash

# 登录mysql:

mysql -u root -p 
root

# 如果顺利进入,安装成功

安装RabbitMQ

# 第一步:拉取镜像
docker pull rabbitmq:management

# 第二步:启动
docker run -d -p 5672:5672 -p 15672:15672 --restart=always --name rabbitmq rabbitmq:management

安装redis

# 第一步:拉取镜像
docker pull redis:latest

# 第二步:启动
docker run -d -p 6379:6379  --restart=always redis:latest redis-server

安装nacos

# 第一步:拉取镜像
docker pull nacos/nacos-server

# 第二步:启动
docker run --env MODE=standalone --name nacos --restart=always -d -p 8848:8848 -e JVM_XMS=128m -e JVM_XMX=128m nacos/nacos-server

安装elasticsearch + kibana + ik分词器

# 拉取镜像
docker pull elasticsearch:7.8.0
docker pull kibana:7.8.0

运行es(两种方式启动~)

1.如果你的linux系统运行内存比较小,那就自己指定jvm内存大小,因为es默认启动大小为1G左右
docker run -it  --name elasticsearch -d -p 9200:9200 -p 9300:9300 -p 5601:5601 -e ES_JAVA_OPTS="-Xms512m -Xmx512m" -e "discovery.type=single-node" elasticsearch:7.8.0

2.如果你的linux系统运行内存比较大,那就不用指定jvm内存了(我的内存是6个G 2核 我就不指定了)
docker run -it  --name elasticsearch -d -p 9200:9200 -p 9300:9300 -p 5601:5601  -e "discovery.type=single-node" elasticsearch:7.8.0

解决1:如果发现es启动到一半自动停止,请通过日志查看问题

docker logs 容器id或容器名称都行

解决2:分配给ES的内存太小了(无法复现错误信息,具体报错可以自行百度)

1.进入etc目录,编辑sysctl.conf文件:
vi /etc/sysctl.conf

2.添加配置:
vm.max_map_count=262144

3.执行:
sysctl -p

4.启动es如果还是失败,修改limits.conf:
vi /etc/security/limits.conf
* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096

5.最后重启虚拟机

启动kibana

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

启动后发现报如下错误:

Kibana server is not ready yet

查看kibana日志

docker logs kibana

如果错误信息是无法连接es,进入kibana的容器中,找到它的配置改一下的他的默认连接地址试一试

docker exec -it 1db61b90388b /bin/bash    (中间是容器id)
 
vi /usr/share/kibana/config/kibana.yml
 
将elasticsearch.hosts ["http://elasticsearch:9200"]改为elasticsearch.hosts ["http://127.0.0.1:9200"]
 
添加中文配置(选择)
i18n.locale: zh-CN 注意冒号后边有个空格

保存,退出容器,重启容器
重新看日志,发现运行成功

安装ik分词器

注意:ik分词器的版本与es的版本一定要一致

分词器下载地址:https://github.com/medcl/elasticsearch-analysis-ik/releases

下载源码包,并解压

wget https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.8.0/elasticsearch-analysis-ik-7.8.0.zip

创建目录
mkdir elasticsearch-analysis-ik-7.8.0

解压到指定目录
unzip elasticsearch-analysis-ik-7.8.0.zip -d elasticsearch-analysis-ik-7.8.0

查看ik官方分词库所有词,我们也可以在里面自定义词
cat elasticsearch-analysis-ik-7.8.0/config/extra_main.dic

接下来我们将ik分词器上传到es容器中

docker exec -it 370228c5af65  bash

进入我们es的插件目录中,查看是否有ik分词器,有的话看版本是否对应,不对应删掉重新上传即可

1.cd /usr/share/elasticsearch/plugins/
2.ll

复制文件到es容器

意思: 复制 服务器的ik文件(要绝对地址,通过pwd显示) 到 指定容器下 某个目录下
docker cp /usr/local/software/elasticsearch-analysis-ik-7.8.0 d23b5657b54a:/usr/share/elasticsearch/plugins/elasticsearch-analysis-ik-7.8.0

退出容器,重启es容器

安装mongodb

1、拉取镜像
docker pull mongo:latest

2、创建mongo数据持久化目录
mkdir -p /home/mongodb/data

3、运行容器
docker run -itd --name mongo -v /home/mongodb/data:/data/db -p 27017:27017 mongo --auth

4、创建用户
docker exec -it mongo mongosh admin(5.0版本以上连接mongo使用命令mongosh)
db.createUser({ user:'root',pwd:'123456',roles:[ { role:'userAdminAnyDatabase', db: 'admin'},'readWriteAnyDatabase']});

5、测试连接
db.auth('root', '123456');

你可能感兴趣的:(Server,docker,容器,运维)