項目環境docker及docker-compose文檔 1、Linux環境介紹 centos7.6 16G以上記憶體空間(至少8G) 2、靜態IP設置 1、找到配置文件 cd /etc/sysconfig/network-scripts/ vi ifcfg-ens33 TYPE=EthernetPRO ...
1、Linux環境介紹
-
centos7.6
-
16G以上記憶體空間(至少8G)
1、找到配置文件
cd /etc/sysconfig/network-scripts/
vi ifcfg-ens33
----------------------------
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPADDR=192.168.200.188
NETMASK=255.255.255.0
GATEWAY=192.168.200.2
DNS1=114.114.114.114
DNS2=8.8.8.8
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=b8fd5718-51f5-48f8-979b-b9f1f7a5ebf2
DEVICE=ens33
ONBOOT=yes
-----------------------------------
重啟網卡
service network restart
測試網卡
ping www.baidu.com 如果有位元組輸出,則表示網路正常
3、JDK安裝
# jdk鏡像倉庫:https://repo.huaweicloud.com/java/jdk/8u171-b11/
#下載wget命令
yum install wget
# 下載、解壓jdk
wget https://repo.huaweicloud.com/java/jdk/8u171-b11/jdk-8u171-linux-x64.tar.gz
#解壓
tar -zxf jdk-8u171-linux-x64.tar.gz
#移動文件夾中
mv jdk1.8.0_171 /usr/local
# 配置環境
vi /etc/profile
# 添加內容:
export JAVA_HOME=/usr/local/jdk1.8.0_171
export PATH=$JAVA_HOME/bin:$PATH
# 配置生效命令
source /etc/profile
#查看j版本命令
java -version
4、Docker安裝
安裝docker
# 1、yum 包更新到最新,需要幾分鐘時間
sudo yum update
# 2、作用:安裝需要的軟體包, yum-util 提供yum-config-manager功能,另外兩個是devicemapper驅動依賴的
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
# 3、 設置yum源
# 3.1、方案一:使用ustc的(預設的)
sudo yum-config-manager --add-repo http://mirrors.ustc.edu.cn/docker-ce/linux/centos/docker-ce.repo
# 3.2、方案二:使用阿裡雲(推薦)
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 4、 安裝docker;出現輸入的界面都按 y
sudo yum install -y docker-ce
# 5、 查看docker版本
docker -v
#開機自啟動
systemctl enable docker
設置鏡像加速器
# 執行如下命令:
mkdir /etc/docker 表示創建一個文件夾
#如果有該文件則進入編輯狀態,如果沒有,則創建該文件然後進入編輯狀態
vi /etc/docker/daemon.json
#編寫以下內容
{
"registry-mirrors": ["https://7oc12mqc.mirror.aliyuncs.com"]
}
註意:[“自己的鏡像加速器地址”]
5、Docker-compose安裝
#國內資源(建議)
curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.4/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
# 設置文件可執行許可權
chmod +x /usr/local/bin/docker-compose
# 查看版本信息
docker-compose -version
6、Nacos安裝
-
創建一個文件夾
mkdir nacos
-
進入該文件夾中
cd nacos
vi docker-compose.yml
-
編寫docker-compose.yml文件
version
-
創建文件夾及文件
cd nacos mkdir init.d cd init.d touch custom.properties
-
執行腳本
docker-compose up -d
7、MySQL安裝
創建docker-compose.yml
-
創建一個文件夾
mkdir mysql
-
進入mysql文件夾中創建一個docker-compose.yml文件
cd mysql vi docker-compose.yml
-
在docker-compose.yml中加入以下內容
version: '3' services: mysql: container_name: mysql environment: TZ: Asia/Shanghai MYSQL_ROOT_PASSWORD: "root" image: "mysql:5.7" restart: always volumes: - "./conf/my.cnf:/etc/my.cnf" - "./data:/var/lib/mysql" ports: - "3306:3306"
-
創建文件(在mysql文件夾下)
mkdir conf cd conf touch my.cnf
-
在mysql文件夾下執行腳本
docker-compose up -d
8、ElasticSearch安裝
-
創建一個文件夾
mkdir es
-
進入es文件夾中創建一個docker-compose.yml文件
vi docker-compose.yml
-
在docker-compose.yml中加入以下內容
version: '3' services: elasticsearch: image: elasticsearch:7.4.0 container_name: elasticsearch restart: always environment: - bootstrap.memory_lock=true - http.cors.enabled=true - http.cors.allow-origin=* - "discovery.type=single-node" - "ES_JAVA_OPTS=-Xms512m -Xmx512m" ulimits: memlock: soft: -1 hard: -1 volumes: - /root/es/plugins:/usr/share/elasticsearch/plugins ports: - 9200:9200 - 9300:9300 kibana: image: kibana:7.4.0 container_name: kibana environment: - SERVER_NAME=kibana - ELASTICSEARCH_URL=http://192.168.200.137:9200 - XPACK_MONITORING_ENABLED=true ports: - 5601:5601 depends_on: - elasticsearch external_links: - elasticsearch
-
es文件夾下執行腳本
docker-compose up -d
-
設置中文IK分詞器
因為在創建elasticsearch容器的時候,映射了目錄,所以可以在宿主機上進行配置ik中文分詞器
在去選擇ik分詞器的時候,需要與elasticsearch的版本好對應上
把資料中的ik-7.4.0.tar
上傳到伺服器上,放到對應目錄(plugins)解壓
#上傳壓縮包到Linux中 #切換目錄 cd es/plugins #新建目錄 mkdir analysis-ik #root根目錄解壓 tar -xf ik-7.4.0.tar -C /root/es/plugins/analysis-ik
-
在重新啟動es,進行測試
docker restart elasticsearch
-
連接kibana,測試iK分詞器
# ik_max_word中文分詞器 GET _analyze { "analyzer": "ik_max_word", "text":"中國人民真好看" } # ik_smart中文分詞器 GET _analyze { "analyzer": "ik_smart", "text":"中國人民真好看" } # 預設分詞器 GET _analyze { "analyzer": "standard", "text":"中國人民真好看" }
9、MinIo安裝
-
創建文件夾
mkdir minio
-
進入文件夾
cd minio
-
創建docker-compose.yml
vi docker-compose.yml
-
編寫以下內容
version: '3' services: minio: image: minio/minio:RELEASE.2021-04-18T19-26-29Z container_name: myminio ports: - 9000:9000 volumes: - /var/minio/data:/data - /var/minio/config:/root/.minio environment: MINIO_ACCESS_KEY: "minio" MINIO_SECRET_KEY: "minio123" command: server /data restart: always
-
執行命令
docker-compose up -d
10、Redis安裝
-
創建一個文件夾
mkdir redis
-
進入redis文件夾中創建一個docker-compose.yml文件
cd redis vi docker-compose.yml
-
在docker-compose.yml中加入以下內容
version: '3' services: redis: container_name: redis image: redis:5.0.7 restart: always ports: - 6379:6379 volumes: - ./conf/redis.conf:/etc/redis/redis.conf:rw - ./data:/data:rw command: redis-server /etc/redis/redis.conf --appendonly yes environment: - TZ=Asia/Shanghai
-
redis文件夾下執行腳本
docker-compose up -d
11、Kafka安裝
-
創建一個文件夾
mkdir kafka
-
進入kafka文件夾中創建一個docker-compose.yml文件
cd kafka vi docker-compose.yml
-
在docker-compose.yml中加入以下內容
version: '3' services: zookeeper-kafka: image: wurstmeister/zookeeper restart: unless-stopped hostname: zookeeper-kafka container_name: zookeeper-kafka ports: - 2777:2181 volumes: - ./data:/data - ./datalog:/datalog kafka: image: wurstmeister/kafka:2.12-2.4.1 depends_on: - zookeeper-kafka container_name: kafka ports: - 9092:9092 environment: KAFKA_ADVERTISED_HOST_NAME: kafka KAFKA_BROKER_ID: 0 KAFKA_ZOOKEEPER_CONNECT: 192.168.200.135:2777 KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://192.168.200.135:9092 KAFKA_LISTENERS: PLAINTEXT://0.0.0.0:9092 restart: unless-stopped volumes: - ./docker.sock:/var/run/docker.sock
KAFKA_ZOOKEEPER_CONNET:IP:zookeeper的埠號
IP要改成自己伺服器的ip地址
-
在kafka文件夾下執行以下命令
docker-compose up -d
12、Kafka-manager安裝(選裝)
#拉取鏡像 docker pull sheepkiller/kafka-manager #創建容器 docker run -di --name=kafka-manager -p 9001:9000 --restart=always -e ZK_HOSTS=192.168.200.137:2777 sheepkiller/kafka-manager
ZK_HOSTS=192.168.200.129:2777
表示關聯zookeeper的地址及埠號, 2777是zookeeper的對外埠號
13、MongoDB安裝
-
創建一個文件夾
mkdir mongo
-
進入mongo文件夾中創建一個docker-compose.yml文件
cd mongo vi docker-compose.yml
-
在docker-compose.yml中加入以下內容
version: '3.1' services: mongo: image: mongo:5.0.2 restart: always container_name: mongo hostname: mongo environment: #用戶名密碼 MONGO_INITDB_ROOT_USERNAME: root MONGO_INITDB_ROOT_PASSWORD: root ports: - 27017:27017 volumes: - ./data:/data/db networks: mongo: aliases: - mongo1 networks: mongo: driver: bridge
-
mongo文件夾下執行腳本
docker-compose up -d
安裝完後,要對mongo進行認證操作cls
進入mongo內部 [root@localhost ~]# docker exec -it mongo /bin/bash root@mongo:/# mongo MongoDB shell version v4.4.5 connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb Implicit session: session { "id" : UUID("f7c7c594-d5dd-473a-9ded-43609ac16a28") } MongoDB server version: 4.4.5 > use admin switched to db admin > db.auth("root","root") 1 > show dbs admin 0.000GB config 0.000GB local 0.000GB
14、Xxl-job安裝
-
創建一個文件夾
mkdir xxljob
-
進入xxljob文件夾中創建一個docker-compose.yml文件
cd xxljob vi docker-compose.yml
-
在docker-compose.yml中加入以下內容
version: '3' services: xxl-job: image: xuxueli/xxl-job-admin:2.3.0 container_name: xxl-job environment: PARAMS: "--spring.datasource.url=jdbc:mysql://192.168.200.137:3306/xxl_job?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=Asia/Shanghai --spring.datasource.username=root --spring.datasource.password=root" ports: - 8888:8080 volumes: - /data/docker/xxl-job/logs/:/data/applogs/xxl-job/
-
xxljob文件夾下執行腳本
docker-compose up -d
15、seata安裝
1、安裝
創建文件夾
mkdir seata
進入文件夾,然後創建docker-compose.yml
cd seata vi docker-compose.yml
寫入以下內容
version: "3" services: seata-server: image: seataio/seata-server:1.4.2 hostname: seata-server container_name: seata restart: always ports: - "8091:8091" environment: - SEATA_PORT=8091 - SEATA_IP=192.168.200.104 volumes: - /root/seata/config:/root/seata-config
生成容器
docker-compose up -d
查看容器是否啟動
docker ps
2、修改參數
1、進入容器內部
docker exec -it seata sh
2、進入resources文件夾下
cd resources
3、修改registry.conf配置
vi registry.conf
註冊中心配置:
配置中心:
具體詳情:(也可參考windwos環境中的registry.conf文件)
registry { # file ...nacos ...eureka...redis...zk...consul...etcd3...sofa type = "nacos" nacos { application = "seata-tc-server" serverAddr = "192.168.200.104:8848" group = "SEATA_GROUP" namespace = "" cluster = "SH" username = "nacos" password = "nacos" } } config { # file...nacos ...apollo...zk...consul...etcd3 type = "nacos" nacos { serverAddr = "192.168.200.104:8848" namespace = "" group = "SEATA_GROUP" username = "nacos" password = "nacos" dataId = "seataServer.properties" } }
3、退出容器
exit
4、重啟容器
docker restart seata
5、查看日誌
docker logs -f seata
docker cp mysql:/etc/mysql/mysql.conf.d/mysqld.cnf /root/mysqld.cnf wait_timeout=86400 docker cp mysqld.cnf mysql:/etc/mysql/mysql.conf.d/mysqld.cnf