mall在Linux環境下的部署(基於Docker容器)
本文主要以圖文的形式講解mall在Linux環境下的部署,涉及在Docker容器中安裝Mysql、Redis、Nginx、RabbitMQ、Elasticsearch、Mongodb,以及SpringBoot應用部署,基於CenterOS7.6。
Docker環境安裝
-
安裝yum-utils:
-
yum install-y yum-utils device-mapper-persistent-data lvm2
-
為yum源新增docker倉庫位置:
-
yum-config-manager--add-repo https://download.docker.com/linux/centos/docker-ce.repo
-
安裝docker:
-
yum install docker-ce
-
啟動docker:
-
systemctl start docker
Mysql安裝
-
下載mysql5.7的docker映象:
-
docker pull mysql:5.7
-
使用docker命令啟動:
-
docker run-p3306: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 MYSQLROOTPASSWORD=root:初始化root使用者的密碼
-
進入執行mysql的docker容器:
-
dockerexec-it mysql/bin/bash
-
使用mysql命令開啟客戶端:
-
mysql-uroot-proot--default-character-set=utf8
-
建立mall資料庫:
-
create database mall charactersetutf8
-
安裝上傳下載外掛,並將docment/sql/mall.sql上傳到Linux伺服器上:
-
yum-y install lrzsz
-
將mall.sql檔案複製到mysql容器的/目錄下:
-
docker cp/mydata/mall.sql mysql:/
-
將sql檔案匯入到資料庫:
-
usemall;
-
source/mall.sql;
-
建立一個reader帳號並修改許可權,使得任何ip都能訪問:
-
grant all privileges on*.*to'reader'@'%'identifiedby'123456';
Redis安裝
-
下載redis3.2的docker映象:
-
docker pull redis:3.2
-
使用docker命令啟動:
-
docker run-p6379:6379--name redis
-
-v/mydata/redis/data:/data
-
-d redis:3.2redis-server--appendonly yes
-
進入redis容器使用redis-cli命令進行連線:
-
dockerexec-it redis redis-cli

Nginx安裝
下載nginx1.10的docker映象:
-
docker pull nginx:1.10
從容器中複製nginx配置
-
先執行一次容器(為了複製配置檔案):
-
docker run-p80:80--name nginx
-
-v/mydata/nginx/html:/usr/share/nginx/html
-
-v/mydata/nginx/logs:/var/log/nginx
-
-d nginx:1.10
-
將容器內的配置檔案複製到指定目錄:
-
docker container cp nginx:/etc/nginx/mydata/nginx/
-
修改檔名稱:
-
mv nginx conf
-
終止並刪除容器:
-
docker stop nginx
-
docker rm nginx
使用docker命令啟動:
-
docker run-p80: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
RabbitMQ安裝
-
下載rabbitmq3.7.15的docker映象:
-
docker pull rabbitmq:3.7.15
-
使用docker命令啟動:
-
docker run-d--name rabbitmq
-
--publish5671:5671--publish5672:5672--publish4369:4369
-
--publish25672:25672--publish15671:15671--publish15672:15672
-
rabbitmq:3.7.15
-
進入容器並開啟管理功能:
-
dockerexec-it rabbitmq/bin/bash
-
rabbitmq-plugins enable rabbitmq_management

-
開啟防火牆:
-
firewall-cmd--zone=public--add-port=15672/tcp--permanent
-
firewall-cmd--reload
-
訪問地址檢視是否安裝成功:http://192.168.3.101:15672/
-
輸入賬號密碼並登入:guest guest
-
建立帳號並設定其角色為管理員:mall mall
-
建立一個新的虛擬host為:/mall
-
點選mall使用者進入使用者配置頁面
-
給mall使用者配置該虛擬host的許可權
Elasticsearch安裝
-
下載elasticsearch6.4.0的docker映象:
-
docker pull elasticsearch:6.4.0
-
修改虛擬記憶體區域大小,否則會因為過小而無法啟動:
-
sysctl-w vm.max_map_count=262144
-
使用docker命令啟動:
-
docker run-p9200:9200-p9300:9300--name elasticsearch
-
-e"discovery.type=single-node"
-
-e"cluster.name=elasticsearch"
-
-v/mydata/elasticsearch/plugins:/usr/share/elasticsearch/plugins
-
-v/mydata/elasticsearch/data:/usr/share/elasticsearch/data
-
-d elasticsearch:6.4.0
-
啟動時會發現/usr/share/elasticsearch/data目錄沒有訪問許可權,只需要修改/mydata/elasticsearch/data目錄的許可權,再重新啟動。
-
chmod777/mydata/elasticsearch/data/
-
安裝中文分詞器IKAnalyzer,並重新啟動:
-
dockerexec-it elasticsearch/bin/bash
-
#此命令需要在容器中執行
-
elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.4.0/elasticsearch-analysis-ik-6.4.0.zip
-
docker restart elasticsearch
-
開啟防火牆:
-
firewall-cmd--zone=public--add-port=9200/tcp--permanent
-
firewall-cmd--reload
-
訪問會返回版本資訊:http://192.168.3.101:9200/
kibana安裝
-
下載kibana6.4.0的docker映象:
-
docker pull kibana:6.4.0
-
使用docker命令啟動:
-
docker run--name kibana-p5601:5601
-
--link elasticsearch:es
-
-e"elasticsearch.hosts=http://es:9200"
-
-d kibana:6.4.0
-
開啟防火牆:
-
firewall-cmd--zone=public--add-port=5601/tcp--permanent
-
firewall-cmd--reload
-
訪問地址進行測試:http://192.168.3.101:5601
Mongodb安裝
-
下載mongo3.2的docker映象:
-
docker pull mongo:3.2
-
使用docker命令啟動:
-
docker run-p27017:27017--name mongo
-
-v/mydata/mongo/db:/data/db
-
-d mongo:3.2
Docker全部環境安裝完成
-
所有下載映象檔案:
-
所有執行在容器裡面的應用:
SpringBoot應用部署
構建所有Docker映象並上傳
-
開啟pom.xml中使用docker外掛的註釋:
-
修改dockerHost為你自己的docker伺服器地址:
-
構建映象並上傳:
部署mall-admin
-
docker run-p8080:8080--name mall-admin
-
--link mysql:db
-
-v/etc/localtime:/etc/localtime
-
-v/mydata/app/admin/logs:/var/logs
-
-d mall/mall-admin:1.0-SNAPSHOT
注意
:CenterOS7.2版本需要加入此行,否則容器時區和宿主機無法同步-
-v/etc/timezone:/etc/timezone
部署mall-search
-
docker run-p8081:8081--name mall-search
-
--link elasticsearch:es
-
--link mysql:db
-
-v/etc/localtime:/etc/localtime
-
-v/mydata/app/search/logs:/var/logs
-
-d mall/mall-search:1.0-SNAPSHOT
部署mall-port
-
docker run-p8085:8085--name mall-portal
-
--link mysql:db
-
--link redis:redis
-
--link mongo:mongo
-
--link rabbitmq:rabbit
-
-v/etc/localtime:/etc/localtime
-
-v/mydata/app/portal/logs:/var/logs
-
-d mall/mall-portal:1.0-SNAPSHOT
開啟防火牆
-
firewall-cmd--zone=public--add-port=8080/tcp--permanent
-
firewall-cmd--zone=public--add-port=8081/tcp--permanent
-
firewall-cmd--zone=public--add-port=8085/tcp--permanent
-
firewall-cmd--reload
訪問介面進行測試
-
mall-admin的api介面文件地址:http://192.168.3.101:8080/swagger-ui.html
-
mall-search的api介面文件地址:http://192.168.3.101:8081/swagger-ui.html
-
mall-portal的api介面文件地址:http://192.168.3.101:8085/swagger-ui.html
推薦閱讀

歡迎關注,點個在看