一、安裝MySQL
#1、下載mysql 5.7鏡像
docker pull mysql:5.7
#2、查看docker鏡像
docker images
#3蛮艰、創(chuàng)建實(shí)例并啟動(dòng)
docker run -p 3306:3306 --name mysql \
-v /data/mysql/log:/var/log/mysql \
-v /data/mysql/data:/var/lib/mysql \
-v /data/mysql/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
-d mysql:5.7
#參數(shù)說明:
docker run :docker 啟動(dòng)一個(gè)容器
-p 3306:3306 : 將容器 3306 端口映射到主機(jī)到3306端口
--name mysql :為當(dāng)前容器命名為 mysql
\ : 換行標(biāo)志
`:` : 與容器內(nèi)部的文件夾進(jìn)行 掛載
-v /data/mysql/log:/var/log/mysql : 將日志文件夾掛載到主機(jī)
-v /data/mysql/data:/var/lib/mysql : 將mysql運(yùn)行期間的數(shù)據(jù)文件掛載到主機(jī)
-v /data/mysql/conf:/etc/mysql : 將配置文件夾掛載到主機(jī)
-e MYSQL_ROOT_PASSWORD=123456 :初始化 root 用戶密碼
#4、創(chuàng)建mysql配置文件
vi /data/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'
default-time-zone='+08:00'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
skip-name-resolve
#5雀彼、重啟mysql容器
docker restart mysql
#6壤蚜、設(shè)置容器在docker啟動(dòng)的時(shí)候啟動(dòng)
docker update mysql --restart=always
二、安裝redis
#1徊哑、下載鏡像(最新)
docker pull redis
#2袜刷、創(chuàng)建目錄 / 配置文件
mkdir -p /data/redis/conf
#創(chuàng)建配置文件
touch /data/redis/conf/redis.conf
#3、安裝redis / 掛載配置文件
docker run -p 6379:6379 --name redis \
-v /data/redis/data:/data \
-v /data/redis/conf/redis.conf:/etc/redis/redis.conf \
-d redis redis-server /etc/redis/redis.conf
#4莺丑、連接redis容器
docker exec -it redis redis-cli
# 測(cè)試
127.0.0.1:6379> set h hello
OK
127.0.0.1:6379> get h
"hello"
127.0.0.1:6379> exit
#5著蟹、重啟redis
docker restart redis
#6、修改redis配置文件(設(shè)置持久化)
cd /data/redis/conf
vi redis.conf
#拷貝
appendonly yes
#7梢莽、設(shè)置容器在docker啟動(dòng)的時(shí)候啟動(dòng)
docker update redis --restart=always
三萧豆、安裝nginx
#1、下載nginx鏡像(最新)
docker pull nginx
#2昏名、創(chuàng)建目錄 / 配置文件
mkdir -p /data/nginx/log
mkdir -p /data/nginx/conf
#3涮雷、啟動(dòng)容器
docker run --name nginx -p 80:80 -d nginx
#4、從nginx容器中的目錄文件拷貝到宿主機(jī)(逐條依次執(zhí)行)
docker cp nginx:/usr/share/nginx/html /data/nginx
docker cp nginx:/etc/nginx/nginx.conf /data/nginx/conf
docker cp nginx:/etc/nginx/conf.d /data/nginx/conf
#5轻局、刪除容器
docker stop nginx
docker rm nginx
#6洪鸭、安裝nginx / 掛載配置文件
docker run -p 80:80 --name nginx \
-v /data/nginx/html:/usr/share/nginx/html \
-v /data/nginx/log:/var/log/nginx \
-v /data/nginx/conf/nginx.conf:/etc/nginx/nginx.conf:ro \
-v /data/nginx/conf/conf.d:/etc/nginx/conf.d \
-d nginx
#7膜钓、設(shè)置容器在docker啟動(dòng)的時(shí)候啟動(dòng)
docker update nginx --restart=always
image.png
Q&A
- Q: no "events" section in configuration
- A: 在nginx.conf文件中添加
events {
worker_connections 1024;
}
四、安裝nacos
#1卿嘲、下載nacos鏡像(最新)
docker pull nacos/nacos-server:1.1.4
#2、創(chuàng)建目錄 / 配置文件
mkdir -p /data/nacos/log
# mkdir -p /data/nacos/conf
#3夫壁、啟動(dòng)容器
docker run --env MODE=standalone --name nacos -p 8848:8848 -d nacos/nacos-server:1.1.4
#4拾枣、從nacos容器中的目錄文件拷貝到宿主機(jī)(逐條依次執(zhí)行)
docker cp nacos:/home/nacos/conf /data/nacos
#5、刪除容器
docker stop nacos
docker rm nacos
#6盒让、安裝nacos/ 掛載配置文件(nacos默認(rèn)工作目錄為/home目錄梅肤,可查看docker官網(wǎng))
docker run --env MODE=standalone -p 8848:8848 --name nacos \
-v /data/nacos/conf:/home/nacos/conf \
-v /data/nacos/log:/home/nacos/logs \
-d nacos/nacos-server:1.1.4
訪問地址:http://IP:8848/nacos
用戶名/密碼: nacos / nacos
image.png
五、安裝seata
seata官方文檔:https://seata.io/zh-cn/docs/ops/deploy-by-docker.html
# 查看seata鏡像:docker search seata
#1邑茄、下載seata鏡像(1.0.0)
docker pull seataio/seata-server:1.0.0
##2姨蝴、創(chuàng)建目錄 / 配置文件
mkdir -p /data/seata/log
mkdir -p /data/seata/conf
#3、啟動(dòng)seata-server實(shí)例 / 掛載鏡像文件
docker run --name seata-server -p 8091:8091 -d seataio/seata-server:1.0.0
#4肺缕、進(jìn)入seata容器
docker exec -it seata-server sh
#5左医、修改配置 / 指定注冊(cè)中心
cd /seata-server/resources
vi registry.conf
# 配置注冊(cè)中心
registry {
# file ...nacos ...eureka...redis...zk...consul...etcd3...sofa
type = "nacos"
nacos {
application = "seata-server"
serverAddr = "127.0.0.1:8848"
namespace = ""
cluster = "default"
username = "nacos"
password = "nacos"
}
……
:wq
#5、重啟seata
docker restart seata-server
#6同木、設(shè)置容器在docker啟動(dòng)的時(shí)候啟動(dòng)
docker update seata-server --restart=always
六浮梢、安裝sentinel
sentinel官方文檔:https://github.com/alibaba/Sentinel/wiki/%E6%8E%A7%E5%88%B6%E5%8F%B0#2-%E5%90%AF%E5%8A%A8%E6%8E%A7%E5%88%B6%E5%8F%B0
dockerHub: https://hub.docker.com/r/bladex/sentinel-dashboard/tags?page=1&ordering=last_updated
#1、拉取sentinel鏡像(1.7.1)
docker pull bladex/sentinel-dashboard:1.7.1
#2彤路、啟動(dòng)容器
docker run --name sentinel -p 8858:8858 -d bladex/sentinel-dashboard:1.7.1
訪問地址:http://IP:8858
用戶名/密碼: sentinel / sentinel
image.png
七秕硝、安裝zipkin 服務(wù)鏈路追蹤
官方文檔:https://zipkin.io/
# docker 安裝 zipkin 服務(wù)器
docker run --name zipkin -p 9411:9411 -d openzipkin/zipkin
# 設(shè)置容器在docker啟動(dòng)的時(shí)候啟動(dòng)
docker update zipkin --restart=always
image.png
八、安裝RabbitMQ
官方文檔:https://www.rabbitmq.com/networking.html
消息隊(duì)列模型:https://www.rabbitmq.com/getstarted.html
#1洲尊、docker 安裝 rabbitmq
docker run --name rabbitmq \
-p 5671:5671 \
-p 5672:5672 \
-p 4369:4369 \
-p 25672:25672 \
-p 15671:15671 \
-p 15672:15672 \
-d rabbitmq:management:3.8.2
#端口說明:--參考官網(wǎng)文檔
4369, 25672 (Erlang發(fā)現(xiàn)&集群端口)
5672, 5671 (AMQP端口)
15672 (web管理后臺(tái)端口)
61613, 61614 (STOMP協(xié)議端口)
1883, 8883 (MQTT協(xié)議端口)
# 2远豺、設(shè)置容器在docker啟動(dòng)的時(shí)候啟動(dòng)
docker update rabbitmq --restart=always
訪問地址:http://IP:15672
用戶名/密碼: guest/ guest
image.png
image.png
九、安裝Elasticsearch
#1坞嘀、下載鏡像(版本7.4.2 es與kibana版本要一致)
docker pull elasticsearch:7.4.2
#2躯护、創(chuàng)建掛載目錄
mkdir -p /data/elasticsearch/config
# es存儲(chǔ)的數(shù)據(jù),掛載到外部 data文件夾
mkdir -p /data/elasticsearch/data
#3姆吭、配置訪問權(quán)限
echo "http.host: 0.0.0.0" >> /data/elasticsearch/config/elasticsearch.yml
命令解析:
echo :linux字符串的輸出命令
"http.host: 0.0.0.0" : 配置"http.host: 0.0.0.0"代表es可以被遠(yuǎn)程的任何機(jī)器進(jìn)行訪問
>> : 雙尖括號(hào)代表寫入榛做,把配置寫入 elasticsearch.yml文件中
# 配置用戶權(quán)限(讀、寫内狸、執(zhí)行)
chmod -R 777 /data/elasticsearch/
#4检眯、運(yùn)行容器 / 掛載目錄
docker run --name elasticsearch \
-p 9200:9200 \
-p 9300:9300 \
-e "discovery.type=single-node" \
-e ES_JAVA_OPTS="-Xms64m -Xmx512m" \
-v /data/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /data/elasticsearch/data:/usr/share/elasticsearch/data \
-v /data/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
-d elasticsearch:7.4.2
命令解析:
-p 9200:9200 :暴露端口9200,用于后臺(tái)發(fā)起http請(qǐng)求的端口
-p 9300:9300 :暴露端口9300昆淡,用于es在分布式集群狀態(tài)下 節(jié)點(diǎn)之間通信端口
-e "discovery.type=single-node" :指定參數(shù)锰瘸,es以單節(jié)點(diǎn)模式運(yùn)行
-e ES_JAVA_OPTS="-Xms64m -Xmx512m" :設(shè)置es的初始內(nèi)存和最大內(nèi)存,否則一啟動(dòng)es會(huì)默認(rèn)占用全部?jī)?nèi)存(非常重要)
-v 其余配置 : 掛載 容器中的文件與宿主機(jī)文件關(guān)聯(lián)昂灵,若修改宿主機(jī)的配置就等于修改容器中的配置
訪問地址:http://IP:9200/
es_login.png
- 擴(kuò)展:安裝 elasticsearch-head
1避凝、下載鏡像
docker pull mobz/elasticsearch-head:5
#2舞萄、運(yùn)行容器
docker run --name elasticsearch-head -p 9100:9100 -d docker.io/mobz/elasticsearch-head:5
訪問地址:http://ip:9100/
head.png
十、安裝Kibana
安裝文檔:https://www.elastic.co/guide/en/kibana/current/docker.html
#1管削、下載鏡像(版本7.4.2)
docker pull kibana:7.4.2
#2倒脓、運(yùn)行容器
docker run --name kibana \
-p 5601:5601 \
-e ELASTICSEARCH_HOSTS=http://IP(es安裝地址):9200 \
-d kibana:7.4.2
命令解析:
-e ELASTICSEARCH_HOSTS : 修改參數(shù),指定es連接地址
訪問地址:http://IP:5601
kibana.png
十一含思、安裝MinIO
mkdir -p /data/minio/{data,config}
docker run -p 9000:9000 --name minio \
-e "MINIO_ACCESS_KEY=***" \
-e "MINIO_SECRET_KEY=***" \
-v /data/minio/data:/data \
-v /data/minio/config:/root/.minio \
-d minio/minio server /data
十二崎弃、安裝Mongodb
# 下載最新版本
docker pull mongo
# 創(chuàng)建數(shù)據(jù)持久化目錄
mkdir -p /data/mongo/data
# 運(yùn)行容器
docker run -p 27017:27017 --name mongo \
-e MONGO_INITDB_ROOT_USERNAME=root \
-e MONGO_INITDB_ROOT_PASSWORD=db@password \
-v /data/mongo/data:/data/db \
-d mongo