您好,登錄后才能下訂單哦!
摘要
本文主要以圖文的形式講解mall在Linux環境下的部署,涉及在Docker容器中安裝Mysql、Redis、Nginx、RabbitMQ、Elasticsearch、Mongodb,以及SpringBoot應用部署,基于CenterOS7.6。
安裝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 -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用戶的密碼
進入運行mysql的docker容器:
docker exec -it mysql /bin/bash
復制代碼
使用mysql命令打開客戶端:
mysql -uroot -proot --default-character-set=utf8
復制代碼
創建mall數據庫:
create database mall character set utf8
復制代碼
安裝上傳下載插件,并將docment/sql/mall.sql上傳到Linux服務器上:
yum -y install lrzsz
復制代碼
將mall.sql文件拷貝到mysql容器的/目錄下:
docker cp /mydata/mall.sql mysql:/
復制代碼
將sql文件導入到數據庫:
use mall;
source /mall.sql;
復制代碼
創建一個reader帳號并修改權限,使得任何ip都能訪問:
grant all privileges on . to 'reader' @'%' identified by '123456';
復制代碼Redis安裝
下載redis3.2的docker鏡像:
docker pull redis:3.2
復制代碼
使用docker命令啟動:
docker run -p 6379:6379 --name redis \
-v /mydata/redis/data:/data \
-d redis:3.2 redis-server --appendonly yes
復制代碼
進入redis容器使用redis-cli命令進行連接:
docker exec -it redis redis-cli
復制代碼
下載nginx1.10的docker鏡像:
docker pull nginx:1.10
復制代碼從容器中拷貝nginx配置
先運行一次容器(為了拷貝配置文件):
docker run -p 80: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 -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
復制代碼RabbitMQ安裝
下載rabbitmq3.7.15的docker鏡像:
docker pull rabbitmq:3.7.15
復制代碼
使用docker命令啟動:
docker run -d --name rabbitmq \
--publish 5671:5671 --publish 5672:5672 --publish 4369:4369 \
--publish 25672:25672 --publish 15671:15671 --publish 15672:15672 \
rabbitmq:3.7.15
復制代碼
進入容器并開啟管理功能:
docker exec -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的權限
下載elasticsearch7.4.0的docker鏡像:
docker pull elasticsearch:6.4.0
復制代碼
修改虛擬內存區域大小,否則會因為過小而無法啟動:
sysctl -w vm.max_map_count=262144
復制代碼
使用docker命令啟動:
docker run -p 9200:9200 -p 9300: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目錄的權限,再重新啟動。
chmod 777 /mydata/elasticsearch/data/
復制代碼
安裝中文分詞器IKAnalyzer,并重新啟動:
docker exec -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 -p 5601: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 -p 27017: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 -p 8080: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 -p 8081: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 -p 8085: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
歡迎工作一到五年的Java工程師朋友們加入JavaQQ群:219571750,群內提供免費的Java架構學習資料(里面有高可用、高并發、高性能及分布式、Jvm性能調優、Spring源碼,MyBatis,Netty,Redis,Kafka,Mysql,Zookeeper,Tomcat,Docker,Dubbo,Nginx等多個知識點的架構資料)合理利用自己每一分每一秒的時間來學習提升自己,不要再用"沒有時間“來掩飾自己思想上的懶惰!趁年輕,使勁拼,給未來的自己一個交代!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。