添加docker容器化部署,配置区分dev和prod环境
This commit is contained in:
130
document/docker/docker-deploy.md
Normal file
130
document/docker/docker-deploy.md
Normal file
@@ -0,0 +1,130 @@
|
||||
#docker环境部署
|
||||
|
||||
##docker环境安装
|
||||
###docker安装
|
||||
1. 安装yum-utils:
|
||||
yum install -y yum-utils \
|
||||
device-mapper-persistent-data \
|
||||
lvm2
|
||||
2. 为yum源添加docker仓库位置:
|
||||
yum-config-manager \
|
||||
--add-repo \
|
||||
https://download.docker.com/linux/centos/docker-ce.repo
|
||||
3. 安装docker:
|
||||
yum install docker-ce
|
||||
4. 启动docker:
|
||||
systemctl start docker
|
||||
注:常见命令见macro/spring-cloud-demo中的docker.md
|
||||
###docker compose安装
|
||||
1. 下载地址:https://github.com/docker/compose/releases
|
||||
2. 安装地址:/usr/local/bin/docker-compose
|
||||
3. 设置为可执行:sudo chmod +x /usr/local/bin/docker-compose
|
||||
4. 测试是否安装成功:docker-compose --version
|
||||
|
||||
##mysql安装
|
||||
###下载镜像文件
|
||||
docker pull mysql:5.7
|
||||
###创建实例并启动
|
||||
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=123456 \
|
||||
-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=123456:初始化root用户的密码
|
||||
###通过容器的mysql命令行工具连接
|
||||
docker exec -it mysql mysql -uroot -p123456
|
||||
###设置远程访问
|
||||
grant all privileges on *.* to 'root' @'%' identified by 'root';
|
||||
flush privileges;
|
||||
###进入容器文件系统
|
||||
docker exec -it mysql /bin/bash
|
||||
|
||||
##redis安装
|
||||
###下载镜像文件
|
||||
docker pull redis:3.2
|
||||
###创建实例并启动
|
||||
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
|
||||
|
||||
##nginx安装
|
||||
###下载镜像文件
|
||||
docker pull nginx:1.10
|
||||
###创建实例并启动
|
||||
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
|
||||
###修改nginx配置
|
||||
1. 将容器内的配置文件拷贝到当前目录:docker container cp nginx:/etc/nginx .
|
||||
2. 修改文件名称:mv nginx conf
|
||||
3. 终止容器:docker stop nginx
|
||||
4. 执行以下命令:
|
||||
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安装
|
||||
###下载镜像文件
|
||||
docker pull rabbitmq:management
|
||||
###创建实例并启动
|
||||
docker run -d --name rabbitmq --publish 5671:5671 \
|
||||
--publish 5672:5672 --publish 4369:4369 --publish 25672:25672 --publish 15671:15671 --publish 15672:15672 \
|
||||
rabbitmq:management
|
||||
|
||||
##elasticsearch安装
|
||||
###下载镜像文件
|
||||
docker pull elasticsearch:2.4
|
||||
###创建实例并运行
|
||||
docker run -p 9200:9200 -p 9300:9300 --name elasticsearch -d elasticsearch:2.4
|
||||
###测试
|
||||
访问会返回版本信息:http://192.168.1.66:9200/
|
||||
###安装目录位置
|
||||
/usr/share/elasticsearch
|
||||
###安装head插件
|
||||
1. 进入docker内部bash:docker exec -it elasticsearch /bin/bash
|
||||
2. 安装插件:plugin install mobz/elasticsearch-head
|
||||
3. 测试:http://192.168.1.66:9200/_plugin/head/
|
||||
###安装中文分词器IKAnalyzer
|
||||
1. 下载中文分词器:https://github.com/medcl/elasticsearch-analysis-ik/releases?after=v5.6.4
|
||||
2. 上传后拷贝到容器中:docker container cp elasticsearch-analysis-ik-1.10.6.tar.gz elasticsearch:/usr/share/elasticsearch/plugins
|
||||
3. 进行解压操作:tar -xvf elasticsearch-analysis-ik-1.10.6.tar.gz
|
||||
4. 重新启动容器:docker restart elasticsearch
|
||||
5. 测试:
|
||||
POST:http://192.168.1.66:9200/_analyze
|
||||
JSON:{"analyzer":"ik","text":"联想是全球最大的笔记本厂商"}
|
||||
|
||||
##mongodb安装
|
||||
###下载镜像文件
|
||||
docker pull mongo:3.2
|
||||
###创建实例并运行
|
||||
docker run -p 27017:27017 --name mongo -v $PWD/db:/data/db -d mongo:3.2
|
||||
###使用mongo命令进入容器
|
||||
docker exec -it mongo mongo
|
||||
|
||||
##SpringBoot应用部署
|
||||
**docker容器间进行连接才能互相访问**
|
||||
###部署mall-admin
|
||||
docker run -p 8080:8080 --name mall-admin \
|
||||
--link mysql:db \
|
||||
-d mall/mall-admin:0.0.1-SNAPSHOT
|
||||
###部署mall-search
|
||||
docker run -p 8081:8081 --name mall-search \
|
||||
--link elasticsearch:es \
|
||||
--link mysql:db \
|
||||
-d mall/mall-search:0.0.1-SNAPSHOT
|
||||
###部署mall-port
|
||||
docker run -p 8085:8085 --name mall-portal \
|
||||
--link mysql:db \
|
||||
--link redis:redis \
|
||||
--link mongo:mongo \
|
||||
-d mall/mall-portal:0.0.1-SNAPSHOT
|
||||
87
document/docker/docker.md
Normal file
87
document/docker/docker.md
Normal file
@@ -0,0 +1,87 @@
|
||||
#Docker笔记
|
||||
|
||||
##Docker 镜像常用命令
|
||||
###搜索镜像
|
||||
docker search java
|
||||
###下载镜像
|
||||
docker pull java:8
|
||||
docker pull macro/eureka-server:0.0.1
|
||||
###列出镜像
|
||||
docker images
|
||||
###删除镜像
|
||||
docker rmi java
|
||||
docker rmi -f java
|
||||
docker rmi -f $(docker images)
|
||||
|
||||
##Docker 容器常用命令
|
||||
###新建并启动容器
|
||||
docker run -d -p 91:80 nginx
|
||||
###列出容器
|
||||
docker ps
|
||||
###停止容器
|
||||
docker stop $ContainerId
|
||||
###强制停止容器
|
||||
docker kill $ContainerId
|
||||
###启动已停止的容器
|
||||
docker start $ContainerId
|
||||
###进入容器
|
||||
docker inspect --format "{{.State.Pid}}" $ContainerId
|
||||
nsenter --target "$pid" --mount --uts --ipc --net --pid
|
||||
###删除容器
|
||||
docker rm $ContainerId
|
||||
docker rm -f $(docker ps -a -q)
|
||||
|
||||
##Docker Registry
|
||||
###Docker Registry 2.0搭建
|
||||
docker run -d -p 5000:5000 --restart=always --name registry2 registry:2
|
||||
###推送到私有仓库
|
||||
docker push localhost:5000/macro/eureka-server:0.0.1
|
||||
###修改镜像标签
|
||||
docker tag macro/eureka-server:0.0.1 localhost:5000/macro/eureka-server:0.0.1
|
||||
|
||||
##使用maven构建Docker镜像
|
||||
###构建镜像
|
||||
- command:mvn clean package docker:build
|
||||
- tip:
|
||||
Linux服务器需要开启远程api:vi /usr/lib/systemd/system/docker.service
|
||||
修改为:ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock
|
||||
###推送镜像到私有仓库
|
||||
- command:mvn clean package docker:build -DpushImage
|
||||
- tip:
|
||||
pom.xml修改<imageName>192.168.1.71:5000/macro/${project.artifactId}:${project.version}</imageName>
|
||||
- tip:
|
||||
docker要支持http:echo '{ "insecure-registries":["192.168.1.71:5000"] }' > /etc/docker/daemon.json
|
||||
###修改Docker镜像存放位置
|
||||
1. 查看Docker的存放位置:docker info | grep "Docker Root Dir"(默认为/var/lib/docker)
|
||||
2. 关闭Docker服务:systemctl stop docker
|
||||
3. 移动目录到目标路径:mv /var/lib/docker /root/data/docker
|
||||
4. 建立软连接:ln -s /root/data/docker /var/lib/docker
|
||||
|
||||
##Docker compose
|
||||
###安装
|
||||
1. 下载地址:https://github.com/docker/compose/releases
|
||||
2. 安装地址:/usr/local/bin/docker-compose
|
||||
3. 设置为可执行:sudo chmod +x /usr/local/bin/docker-compose
|
||||
4. 测试是否安装成功:docker-compose --version
|
||||
|
||||
###安装命令补全工具
|
||||
sudo curl -L https://raw.githubusercontent.com/docker/compose/1.22.0/contrib/completion/bash/docker-compose -o /etc/bash_completion.d/docker-compose
|
||||
|
||||
###常用命令
|
||||
- 构建、创建、启动相关容器:docker-compose up
|
||||
- 列出所有容器:docker-compose ps
|
||||
- 删除指定服务的容器:docker-compose rm eureka
|
||||
- 对容器进行动态扩容:docker-compose scale eureka=3
|
||||
- 停止相关容器:docker-compose stop eureka
|
||||
- 启动相关容器:docker-compose start eureka
|
||||
|
||||
###编排SpringCloud微服务
|
||||
####所使用到的工程
|
||||
- eureka-server
|
||||
- hello-service
|
||||
- feign-consumer
|
||||
- api-gateway
|
||||
####编排模式
|
||||
1. 编排SpringCloud微服务:见eureka-server/docker-res/docker-compose.yml
|
||||
2. 简化SpringCloud微服务编排:见eureka-server/docker-res/docker-compose-simple.yml
|
||||
3. 编排高可用的注册中心:见eureka-server/docker-res/docker-compose-eureka.yml
|
||||
4
document/docker/host.txt
Normal file
4
document/docker/host.txt
Normal file
@@ -0,0 +1,4 @@
|
||||
192.168.1.71 db
|
||||
192.168.1.71 es
|
||||
192.168.1.71 redis
|
||||
192.168.1.71 mongo
|
||||
@@ -10,7 +10,7 @@ Target Server Type : MYSQL
|
||||
Target Server Version : 50719
|
||||
File Encoding : 65001
|
||||
|
||||
Date: 2018-06-21 10:11:27
|
||||
Date: 2018-08-20 13:53:09
|
||||
*/
|
||||
|
||||
SET FOREIGN_KEY_CHECKS=0;
|
||||
@@ -138,7 +138,7 @@ CREATE TABLE `cms_subject` (
|
||||
`content` text,
|
||||
`forward_count` int(11) DEFAULT NULL COMMENT '转发数',
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8 COMMENT='专题表';
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8 COMMENT='专题表';
|
||||
|
||||
-- ----------------------------
|
||||
-- Records of cms_subject
|
||||
@@ -278,6 +278,41 @@ CREATE TABLE `cms_topic_comment` (
|
||||
-- Records of cms_topic_comment
|
||||
-- ----------------------------
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for oms_cart_item
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS `oms_cart_item`;
|
||||
CREATE TABLE `oms_cart_item` (
|
||||
`id` bigint(20) NOT NULL AUTO_INCREMENT,
|
||||
`product_id` bigint(20) DEFAULT NULL,
|
||||
`product_sku_id` bigint(20) DEFAULT NULL,
|
||||
`member_id` bigint(20) DEFAULT NULL,
|
||||
`quantity` int(11) DEFAULT NULL COMMENT '购买数量',
|
||||
`price` decimal(10,2) DEFAULT NULL COMMENT '添加到购物车的价格',
|
||||
`sp1` varchar(200) DEFAULT NULL COMMENT '销售属性1',
|
||||
`sp2` varchar(200) DEFAULT NULL COMMENT '销售属性2',
|
||||
`sp3` varchar(200) DEFAULT NULL COMMENT '销售属性3',
|
||||
`product_pic` varchar(1000) DEFAULT NULL COMMENT '商品主图',
|
||||
`product_name` varchar(500) DEFAULT NULL COMMENT '商品名称',
|
||||
`product_sub_title` varchar(500) DEFAULT NULL COMMENT '商品副标题(卖点)',
|
||||
`product_sku_code` varchar(200) DEFAULT NULL COMMENT '商品sku条码',
|
||||
`member_nickname` varchar(500) DEFAULT NULL COMMENT '会员昵称',
|
||||
`create_date` datetime DEFAULT NULL COMMENT '创建时间',
|
||||
`modify_date` datetime DEFAULT NULL COMMENT '修改时间',
|
||||
`delete_status` int(1) DEFAULT '0' COMMENT '是否删除',
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8 COMMENT='购物车表';
|
||||
|
||||
-- ----------------------------
|
||||
-- Records of oms_cart_item
|
||||
-- ----------------------------
|
||||
INSERT INTO `oms_cart_item` VALUES ('3', '26', null, '1', '4', '3788.00', null, null, null, null, '华为 HUAWEI P20', 'AI智慧全面屏 6GB +64GB 亮黑色 全网通版 移动联通电信4G手机 双卡双待手机 双卡双待', null, 'windir', '2018-08-02 10:23:09', '2018-08-02 10:23:09', '1');
|
||||
INSERT INTO `oms_cart_item` VALUES ('4', '26', null, '1', '2', '3788.00', '金色', '16G', null, null, '华为 HUAWEI P20', 'AI智慧全面屏 6GB +64GB 亮黑色 全网通版 移动联通电信4G手机 双卡双待手机 双卡双待', null, 'windir', '2018-08-02 10:23:09', '2018-08-02 10:23:09', '1');
|
||||
INSERT INTO `oms_cart_item` VALUES ('5', '27', null, '1', '4', '2699.00', null, null, null, null, '小米8 全面屏游戏智能手机 6GB+64GB 黑色 全网通4G 双卡双待', '骁龙845处理器,红外人脸解锁,AI变焦双摄,AI语音助手小米6X低至1299,点击抢购', null, 'windir', '2018-08-02 10:23:09', '2018-08-02 10:23:09', '0');
|
||||
INSERT INTO `oms_cart_item` VALUES ('6', '26', '86', '1', '2', '3788.00', '金色', '16G', null, null, '华为 HUAWEI P20', 'AI智慧全面屏 6GB +64GB 亮黑色 全网通版 移动联通电信4G手机 双卡双待手机 双卡双待', '201806070026001', 'windir', '2018-08-02 10:23:09', '2018-08-02 10:23:09', '1');
|
||||
INSERT INTO `oms_cart_item` VALUES ('7', '26', '89', '1', '3', '3788.00', '银色', '32G', null, null, '华为 HUAWEI P20', 'AI智慧全面屏 6GB +64GB 亮黑色 全网通版 移动联通电信4G手机 双卡双待手机 双卡双待', '201806070026004', 'windir', '2018-08-02 10:23:09', '2018-08-02 10:23:09', '1');
|
||||
INSERT INTO `oms_cart_item` VALUES ('8', '26', '88', '1', '4', '3788.00', '银色', '16G', null, null, '华为 HUAWEI P20', 'AI智慧全面屏 6GB +64GB 亮黑色 全网通版 移动联通电信4G手机 双卡双待手机 双卡双待', '201806070026003', 'windir', '2018-08-02 10:23:09', '2018-08-02 10:23:09', '0');
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for oms_company_address
|
||||
-- ----------------------------
|
||||
@@ -608,7 +643,7 @@ CREATE TABLE `pms_member_price` (
|
||||
`member_price` decimal(10,2) DEFAULT NULL COMMENT '会员价格',
|
||||
`member_level_name` varchar(100) DEFAULT NULL,
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=181 DEFAULT CHARSET=utf8 COMMENT='商品会员价格表';
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=186 DEFAULT CHARSET=utf8 COMMENT='商品会员价格表';
|
||||
|
||||
-- ----------------------------
|
||||
-- Records of pms_member_price
|
||||
@@ -816,7 +851,7 @@ CREATE TABLE `pms_product_attribute_category` (
|
||||
`attribute_count` int(11) DEFAULT '0' COMMENT '属性数量',
|
||||
`param_count` int(11) DEFAULT '0' COMMENT '参数数量',
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=utf8 COMMENT='产品属性分类表';
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8 COMMENT='产品属性分类表';
|
||||
|
||||
-- ----------------------------
|
||||
-- Records of pms_product_attribute_category
|
||||
@@ -837,7 +872,7 @@ CREATE TABLE `pms_product_attribute_value` (
|
||||
`id` bigint(20) NOT NULL AUTO_INCREMENT,
|
||||
`product_id` bigint(20) DEFAULT NULL,
|
||||
`product_attribute_id` bigint(20) DEFAULT NULL,
|
||||
`value` varchar(64) DEFAULT NULL COMMENT '存储的值',
|
||||
`value` varchar(64) DEFAULT NULL COMMENT '手动添加规格或参数的值,参数单值,规格有多个时以逗号隔开',
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=203 DEFAULT CHARSET=utf8 COMMENT='存储产品参数信息的表';
|
||||
|
||||
@@ -1489,12 +1524,16 @@ CREATE TABLE `ums_member` (
|
||||
`growth` int(11) DEFAULT NULL COMMENT '成长值',
|
||||
`luckey_count` int(11) DEFAULT NULL COMMENT '剩余抽奖次数',
|
||||
`history_integration` int(11) DEFAULT NULL COMMENT '历史积分数量',
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='会员表';
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `idx_username` (`username`),
|
||||
UNIQUE KEY `idx_phone` (`phone`)
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 COMMENT='会员表';
|
||||
|
||||
-- ----------------------------
|
||||
-- Records of ums_member
|
||||
-- ----------------------------
|
||||
INSERT INTO `ums_member` VALUES ('1', '4', 'test', '202cb962ac59075b964b07152d234b70', 'windir', '18061581849', '1', '2018-08-02 10:35:44', null, '1', '2009-06-01', '上海', '学生', 'test', null, null, null, null, null);
|
||||
INSERT INTO `ums_member` VALUES ('3', '4', 'test1', '698d51a19d8a121ce581499d7b701668', null, '18061581848', '1', '2018-08-03 16:46:38', null, null, null, null, null, null, null, null, null, null, null);
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for ums_member_level
|
||||
|
||||
Reference in New Issue
Block a user