第五章 常用软件容器 v1.0
第一部分 数据库
一、MySQL
bash
docker run -d \
--name mysql \
-p 3306:3306 \
-e MYSQL_ROOT_PASSWORD=<密码> \
-v mysql_data:/var/lib/mysql \
mysql:8配置说明:
-p 3306:3306:映射 MySQL 默认端口-e MYSQL_ROOT_PASSWORD:设置 root 用户密码-v mysql_data:/var/lib/mysql:数据持久化
二、Redis
bash
docker run -d \
--name redis \
-p 6379:6379 \
-v redis_data:/data \
redis redis-server --requirepass <密码>配置说明:
-p 6379:6379:映射 Redis 默认端口--requirepass:设置访问密码-v redis_data:/data:数据持久化
三、MongoDB
bash
docker run -d \
--name mongo \
-p 27017:27017 \
-e MONGO_INITDB_ROOT_USERNAME=mongoadmin \
-e MONGO_INITDB_ROOT_PASSWORD=<密码> \
-v mongo_data:/data/db \
mongo配置说明:
-p 27017:27017:映射 MongoDB 默认端口-e MONGO_INITDB_ROOT_USERNAME:设置 root 用户名-e MONGO_INITDB_ROOT_PASSWORD:设置 root 密码-v mongo_data:/data/db:数据持久化
四、Neo4j
bash
docker run -d \
--name neo4j \
-p 7474:7474 -p 7687:7687 \
-e NEO4J_AUTH=neo4j/<密码> \
-v neo4j_data:/data \
neo4j配置说明:
-p 7474:7474:Web 管理界面端口-p 7687:7687:Bolt 协议端口-e NEO4J_AUTH:设置认证信息
五、Elasticsearch
bash
docker run -d \
--name elasticsearch \
-p 9200:9200 -p 9300:9300 \
-e "discovery.type=single-node" \
-e "xpack.security.enabled=false" \
-e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \
-v es_data:/usr/share/elasticsearch/data \
elasticsearch:8.11.0配置说明:
-p 9200:9200:HTTP API 端口-p 9300:9300:节点间通信端口-e discovery.type=single-node:单节点模式-e xpack.security.enabled=false:关闭安全认证(开发环境)-e ES_JAVA_OPTS:设置 JVM 内存
第二部分 消息队列
一、RabbitMQ
bash
docker run -d \
--name rabbitmq \
-p 5672:5672 -p 15672:15672 \
-e RABBITMQ_DEFAULT_USER=admin \
-e RABBITMQ_DEFAULT_PASS=<密码> \
rabbitmq:3-management配置说明:
-p 5672:5672:AMQP 协议端口-p 15672:15672:Web 管理界面端口-e RABBITMQ_DEFAULT_USER:设置管理员用户名-e RABBITMQ_DEFAULT_PASS:设置管理员密码
访问管理界面:http://localhost:15672
二、RocketMQ
bash
# 启动 NameServer
docker run -d \
--name rmqnamesrv \
-p 9876:9876 \
rocketmqinc/rocketmq sh mqnamesrv
# 启动 Broker
docker run -d \
--name rmqbroker \
-p 10911:10911 -p 10909:10909 \
-e "NAMESRV_ADDR=rmqnamesrv:9876" \
rocketmqinc/rocketmq sh mqbroker配置说明:
-p 9876:9876:NameServer 端口-p 10911:10911:Broker 端口-p 10909:10909:Broker VIP 端口
三、Kafka
yaml
version: '3'
services:
zookeeper:
image: wurstmeister/zookeeper
ports:
- "2181:2181"
environment:
ZOO_MY_ID: 1
kafka:
image: wurstmeister/kafka
ports:
- "9092:9092"
environment:
KAFKA_BROKER_ID: 1
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
KAFKA_ADVERTISED_HOST_NAME: localhost
KAFKA_ADVERTISED_PORT: 9092
depends_on:
- zookeeper配置说明:
-p 9092:9092:Kafka Broker 端口KAFKA_ZOOKEEPER_CONNECT:Zookeeper 连接地址KAFKA_ADVERTISED_HOST_NAME:对外暴露的主机名
第三部分 Web服务器
一、Nginx
bash
docker run -d \
--name nginx \
-p 80:80 -p 443:443 \
-v nginx_conf:/etc/nginx/conf.d \
-v nginx_html:/usr/share/nginx/html \
-v nginx_logs:/var/log/nginx \
nginx配置说明:
-p 80:80:HTTP 端口-p 443:443:HTTPS 端口-v nginx_conf:配置文件目录-v nginx_html:网站文件目录-v nginx_logs:日志目录
二、Tomcat
bash
docker run -d \
--name tomcat \
-p 8080:8080 \
-v tomcat_webapps:/usr/local/tomcat/webapps \
-v tomcat_logs:/usr/local/tomcat/logs \
tomcat:9配置说明:
-p 8080:8080:Tomcat 默认端口-v tomcat_webapps:Web 应用目录-v tomcat_logs:日志目录
第四部分 可视化工具
一、Portainer(Docker管理UI)
bash
docker run -d \
--name portainer \
-p 9000:9000 \
-v /var/run/docker.sock:/var/run/docker.sock \
-v portainer_data:/data \
portainer/portainer-ce访问地址:http://localhost:9000
二、Adminer(数据库管理)
bash
docker run -d \
--name adminer \
-p 8080:8080 \
adminer访问地址:http://localhost:8080
三、RedisInsight(Redis管理)
bash
docker run -d \
--name redisinsight \
-p 8001:8001 \
-v redisinsight:/data \
redis/redisinsight:latest访问地址:http://localhost:8001