Docker命令 常用中间件运维部署,方便构建自己服务

Tips:记录了如何安装不同中间件的Docker命令,帮助大家更方便的搭建自己服务,会不定期更新。

MySQL

# Mysql 5版本:
docker run -d -p 3306:3306 --privileged=true \
-v /itholmes/mysql/log:/var/log/mysql \
-v /itholmes/mysql/data:/var/lib/mysql \
-v /itholmes/mysql/conf:/etc/mysql/conf.d \
-e MYSQL_ROOT_PASSWORD=0818 --name mysql8 mysql:8.0.34

# Mysql 8版本:
docker run -p 3306:3306 --name mysql \
-v /mydata/mysql/log:/var/log/mysql \
-v /mydata/mysql/data:/var/lib/mysql \
-v /mydata/mysql/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:5.7

# 参数说明
# -p 3306:3306:将容器的 3306 端口映射到主机的 3306 端口
# -v /mydata/mysql/conf:/etc/mysql:将配置文件夹挂载到主机
# -v /mydata/mysql/log:/var/log/mysql:将日志文件夹挂载到主机
# -v /mydata/mysql/data:/var/lib/mysql/:将配置文件夹挂载到主机
# -e MYSQL_ROOT_PASSWORD=root:初始化 root 用户的密码
# vi /mydata/mysql/conf/my.cnf
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
init_connect='SET collation_connection = utf8_unicode_ci' init_connect='SET NAMES utf8' character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
skip-name-resolve

Redis

# Redis 容器卷配置
docker run -p 6379:6379 --name redis -v /mydata/redis/data:/data \
-v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf \
-d redis redis-server /etc/redis/redis.conf

ES

# 安装es docker
docker pull elasticsearch:7.4.2
# 提供可视化 可视化检索数据
docker pull kibana:7.4.2 

# 查看安装还有多少内存
free -m

# 挂载的 配置和数据存储 目录
mkdir -p /mydata/elasticsearch/config
mkdir -p /mydata/elasticsearch/data
# 配置elasticsearch的配置文件,
# 作用:http.host参数用于指定Elasticsearch HTTP服务的绑定地址。当设置为0.0.0.0时,表示Elasticsearch将监听所有可用的网络接口,包括本地回环地址(localhost)和外部网络接口。
echo "http.host: 0.0.0.0" >> /mydata/elasticsearch/config/elasticsearch.yml

# 9200端口:接受Rest API请求端口。
# 9300端口:分布式集群状态下的通信接口
# -e "discovery.type=single-node":指定单节点模式
# -e ES_JAVA_OPTS="-Xms64m -Xmx128m":指定初始占用内存 和 最大占用内存,必须指定,不然占死内存。
docker run --name elasticsearch -p 9200:9200 -p 9300:9300 \
-e "discovery.type=single-node" \
-e ES_JAVA_OPTS="-Xms64m -Xmx128m" \
-v /mydata/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /mydata/elasticsearch/data:/usr/share/elasticsearch/data \
-v /mydata/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
-d elasticsearch:7.4.2

# docker启动失败,查看日志
docker logs 应用名

# 安装过程可能遇到 elasticsearch accessdenied问题,那是文件目录权限问题
chmod -R 777 /mydata/elasticsearch

# 重新启动elasticsearch
docker start elasticsearch 

# -e ELASTICSEARCH_HOSTS:指定elasticsearch的ip地址和api端口号
docker run --name kibana \
-e ELASTICSEARCH_HOSTS=http://192.168.154.132:9200 \
-p 5601:5601 \
-d kibana:7.4.2

# 注意:这里启动后是一个小linux容器,所以,此处没办法去应用在hosts文件配置的域名解析,需要用真实的IP或公共域名

# 同样通过logs命令,排除安装失败问题
docker logs kibana

Nginx

# 1. 先下载一个nginx,方便获取/etc/nginx目录下的配置文件。
docker run -p 80:80 --name nginx -d nginx:1.10
# 将容器中的/etc/nginx 复制当前目录。
docker container cp nginx:/etc/nginx .
# 将其改为conf文件,用来映射conf文件。
mv nginx/ conf/

# 2. 创建nginx容器
docker run -p 80:80 --name nginx \
-v /mydata/nginx/html:/usr/share/nginx/html \
-v /mydata/nginx/logs:/var/log/nginx \
-v /mydata/nginx/conf:/etc/nginx \
-d nginx:1.10

# 3. 访问对应ip:80 ,测试是否安装成功。

# 4. 进入nginx/html目录下,创建es目录,放置es词典器。
mkdir es
cd es
# 在es目录下面,创建一个fenci.txt文件:可以输入一些测试词语、张三等等。
vi fenci.txt

RabbitMQ

# 1. 启动 rabbitmq:management 容器
docker run -d --name rabbitmq -p 5671:5671 -p 5672:5672 \
-p 4369:4369 -p 25672:25672 -p 15671:15671 -p 15672:15672 rabbitmq:management
# 2. 自动重启
docker update rabbitmq --restart=always

Nacos

# nacos安装
docker run --env MODE=standalone --name nacos \
--restart=always \
-d -p 8848:8848 nacos/nacos-server

Tomcat

# tomcat安装
docker run -id --name=c_tomcat \
-p 8080:8080 \
-v $PWD:/usr/local/tomcat/webapps \
tomcat 

# -p 8080:8080:将容器的8080端口映射到主机的8080端口
# -v $PWD:/usr/local/tomcat/webapps:将主机中当前目录挂载到容器的webapps

你可能感兴趣的:(Linux,运维,docker,中间件)