1. jdk與maven安裝
項目需要自動打包部署,因此需要配置jdk與maven
安裝jdk
yum install java-1.8.0-openjdk.x86_64
安裝maven
sudo yum install -y yum-utils
[code]yum-config-manager --add-repo http://repos.fedorapeople.org/repos/dchen/apache-maven/epel-apache-maven.repo
yum install -y apache-maven
配置maven倉庫爲阿里雲
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>central</mirrorOf>
<name>Nexus aliyun</name>
<url><a href="http://maven.aliyun.com/nexus/content/groups/public</url>" target="_blank">http://maven.aliyun.com/nexus/content/groups/public</url></a>
</mirror>
2. docker安裝
1. sudo yum install -y yum-utils device-mapper-persistent-data lvm2
2. sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
3. sudo yum install docker-ce
配置docker加速器(註冊阿里雲加速更快)、容器網段、鏡像倉庫
vi /etc/docker/daemon.json
{
"bip":"172.18.6.1/24",
"registry-mirrors":[" <a href="https://kzorq22x.mirror.aliyuncs.com" target="_blank">https://kzorq22x.mirror.aliyuncs.com</a>"],
"insecure-registries":["192.168.244.10:5000"]
}
配置後重啓docker服務:
systemctl daemon-reload
systemctl restart docker
3. docker-compose安裝
sudo curl -L https://github.com/docker/compose/releases/download/1.17.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
4. docker倉庫服務
docker pull registry
docker run -d --name reg -p 5000:5000 registry
測試倉庫服務:http://192.168.244.10:5000/v2/_catalog
5. docker掛載目錄約定。
數據目錄:/docker-data
日誌目錄:/docker-log
一、 項目環境搭建
1. zk搭建
docker run -d --name zk -p 2181:2181 zookeeper
2. dubbo-admin控制檯(非必須)
docker run -d -p 8280:8080 --name dubbo -e dubbo.registry.address=zookeeper://192.168.244.10:2181 -e dubbo.admin.root.password=root chenchuxin/dubbo-admin
3. redis搭建
docker run -d --name redis -p 6379:6379 redis --requirepass "123456"
4. mysql主從搭建
A. 創建mysql主從庫配置目錄
mkdir -p /docker-data/mysql/master/conf
mkdir -p /docker-data/mysql/slave/conf
B. 在/docker-data/mysql/master/conf下,創建my.cnf配置文件
[client]
port=3306
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
character_set_server=utf8
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
# 配置大小寫不敏感
lower_case_table_names=1
## 同一局域網內注意要唯一
server-id=100
## 開啓二進制日誌功能(關鍵)
log-bin=mysql-bin
C. 在/docker-data/mysql/slave/conf下,創建my.cnf配置文件
[client]
port=3306
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
character_set_server=utf8
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
# 配置大小寫不敏感
lower_case_table_names=1
## 同一局域網內注意要唯一
server-id=101
D. 使用docker-compose來管理mysql主從庫,
在/docker-data/mysql下創建docker-compose.yaml:
vi docker-compose.yaml
version: '3'
services:
mysql-slave:
image: mysql:5.7
depends_on:
- mysql-master
links:
- mysql-master
volumes:
- /docker-data/mysql/slave/data:/var/lib/mysql
- /docker-data/mysql/slave/conf:/etc/mysql
- /docker-data/mysql/slave/log:/var/log/mysql
ports:
- "3308:3306"
restart: always
environment:
MYSQL_ROOT_PASSWORD: root
container_name: mysql-slave
mysql-master:
image: mysql:5.7
volumes:
- /docker-data/mysql/master/data:/var/lib/mysql
- /docker-data/mysql/master/conf:/etc/mysql
- /docker-data/mysql/master/log:/var/log/mysql
ports:
- "3307:3306"
restart: always
environment:
MYSQL_ROOT_PASSWORD: root
container_name: mysql-master
E. 啓動compose來啓動mysql
docker-compose up -d
F. 主數據庫配置,連接主庫並創建數據同步用戶
CREATE USER 'slave'@'%' IDENTIFIED BY '123456';
GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'slave'@'%';
SHOW MASTER STATUS ;
G. 從數據庫配置,連接從庫配置從庫同步連接(指定連接的ip/port/user/passwd以及上圖中show master status命令得到的file和position值)
CHANGE MASTER TO MASTER_HOST='192.168.244.10',MASTER_PORT=3307,MASTER_USER='slave',MASTER_PASSWORD='123456',MASTER_LOG_FILE='mysql-bin.000003',MASTER_LOG_POS=609;
#啓動同步進程
START SLAVE;
H. 測試結果狀態
主庫查詢進程:SHOW PROCESSLIST
從庫查詢進程:SHOW PROCESSLIST
5. mongodb搭建
docker run -d --name mongo -p 27017:27017 -v /docker-data/mongo:/data/db mongo
6. fastdfs圖片服務
創建fastdfs容器服務,並進入容器內部
docker run --add-host fastdfs.net:192.168.244.10 --name fastdfs --net=host -e TRACKER_ENABLE=1 -e NGINX_PORT=8181 -v /docker-data/fastdfs:/storage/fastdfs -it mypjb/fastdfs
修改mod_fastdfs配置,vi /usr/local/nginx/modules/fastdfs/src/mod_fastdfs.conf
修改nginx配置,vi /usr/local/nginx/conf/nginx.conf
重啓nginx服務,
nginx -s reload
退出容器(ctrl + Q)
7. rabbitMQ服務
docker run -d --name mq -p 5672:5672 -p 15672:15672 -v /docker-data/rabbitmq:/var/lib/rabbitmq -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=admin rabbitmq:3.7.14-management
8. nginx服務
可先放置了配置文件目錄到宿主機,方便後續nginx編輯配置
進入/docker-data/nginx/conf.d目錄下,添加以下配置文件
vi sso.conf
server {
listen 80;
server_name self.sso.com;
location /mall-account {
proxy_pass <a href="http://192.168.244.10:8180;" target="_blank">http://192.168.244.10:8180;</a>
}
location ~ /picture/M00{
proxy_pass <a href="http://192.168.244.10:8181;" target="_blank">http://192.168.244.10:8181;</a>
}
}
vi www.conf
server {
listen 80;
server_name <a href="http://www.mall.com" target="_blank">www.mall.com</a> mng.mall.com mall.com;
if ($http_host ~ "^mall.com[ DISCUZ_CODE_25 ]quot;) {
rewrite ^(.*) <a href="http://www.mall.com" target="_blank">http://www.mall.com</a>$1 permanent;
}
location /mall {
proxy_pass <a href="http://192.168.244.10:8186;" target="_blank">http://192.168.244.10:8186;</a>
}
location /mall-mng {
proxy_pass <a href="http://192.168.244.10:8185;" target="_blank">http://192.168.244.10:8185;</a>
}
location /picture/M00 {
proxy_pass <a href="http://192.168.244.10:8181;" target="_blank">http://192.168.244.10:8181;</a>
}
location / {
if ($http_host ~ "^mng.mall.com[ DISCUZ_CODE_25 ]quot;) {
rewrite ^(.*) /mall-mng permanent;
}
rewrite ^(.*) /mall permanent;
} }
創建nginx命令:
docker run --name nginx -d -p 80:80 \
-v /docker-data/nginx/html:/usr/share/nginx/html \
-v /docker-data/nginx/log:/var/log/nginx/ \
-v /docker-data/nginx/conf.d:/etc/nginx/conf.d \
nginx
|