docker环境部署mysql,redis,rabbitMq及发布项目

docker环境部署mysql,redis,rabbitMq及发布项目

docker环境安装

  1. 安装yum-utils:

  2. sudo yum install -y yum-utils device-mapper-persistent-data lvm2
    添加阿里yum源
    sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    生成缓存
    sudo yum makecache fast
    
    sudo yum -y install docker-ce
    
  3. 安装docker:

  4. 启动docker: 见TXT

  5. 启动docker并设置为开机启动
    systemctl start docker
    systemctl enable docker

  6. 安装上传下载插件:

    yum -y install lrzsz
    

docker compose安装

安装方式1

curl -L https://get.daocloud.io/docker/compose/releases/download/1.24.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
  1. 下载地址:https://github.com/docker/compose/releases
  2. 安装地址:/usr/local/bin/docker-compose
  3. 然后将文件上传到 /usr/local/bin/ 文件夹下,然后将其重命名为docker-compose
  4. 设置为可执行:sudo chmod +x /usr/local/bin/docker-compose
  5. 测试是否安装成功: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=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 exec -it mysql mysql -uroot -proot

设置远程访问(外部Navicat测试可以连接上就不需要执行下面)

grant all privileges on . to 'root' @'%' identified by 'root';
flush privileges;

刷新

FLUSH PRIVILEGES;

退出mysql

exit;

进入容器文件系统

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自行测试

tomcat安装

docker pull tomcat


docker run -d -p 8080:8080 --name tomcat  \
-e JAVA_OPTS="-Duser.timezone=Asia/Shanghai -Djava.security.egd=file:/dev/./urandom" \
-v /etc/localtime:/etc/localtime:ro \
-v /mydata//tomcat/logs:/usr/local/tomcat/logs \
-v /mydata//tomcat/webapps:/usr/local/tomcat/webapps \
tomcat:latest

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 \
-d nginx:1.10

修改nginx配置()

  1. cd mydata
    将容器内的配置文件拷贝到当前目录:docker container cp nginx:/etc/nginx .
    修改文件名称:mv nginx conf
    终止容器:docker stop nginx
    执行命令删除原容器:docker rm $ContainerId
    执行以下命令: 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
    

下载镜像文件

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 \
-v /mydata/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
-v /mydata/elasticsearch/data:/usr/share/elasticsearch/data \
-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

安装中文分词器IKAnalyzer
1.下载中文分词器:https://github.com/medcl/elasticsearch-analysis-ik/releases?after=v5.6.4 的zip包,上传到/mydata/elasticsearch/plugins
2.
cd /mydata/elasticsearch/plugins
unzip elasticsearch-analysis-ik-1.10.6
创建一个文件夹 mkdir ik
解压完了之后把解压之后的所有文件移动到ik文件里面
重新启动容器:docker restart elasticsearch
测试:
访问header插件:打开地址http://192.168.186.131:9200/_plugin/head/
选择复合查询,输入地址: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容器间进行连接才能互相访问

时间检查

GPS 系统中有两种时间区分,一为UTC,另一为LT(地方时)两者的区别为时区不同,UTC就是0时区的时间,地方时为本地时间,如北京为早上八点(东八区),UTC时间就为零点,时间比北京时晚八小时

CTS: 
China Standard Time,UTC+8:00 中国沿海时间(北京时间) 
UTC: 
Universal Time Coordinated 世界协调时间

检查宿主机时区及时间

timedatectl

检查容器时区及时间

进入容器里面

docker exec -it da6e93702308 /bin/bash
#查看时区和时间
date

部署项目前准备

docker 开启2375端口,提供外部访问docker

编辑docker文件:/usr/lib/systemd/system/docker.service

vim /usr/lib/systemd/system/docker.service

修改ExecStart行为下面内容

ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock 

重新加载docker配置

systemctl daemon-reload // 1,加载docker守护线程
systemctl restart docker // 2,重启docker

部署mall-admin

docker run -p 8080:8080 --name mall-admin --link mysql:db  -v /usr/share/zoneinfo/Asia/Shanghai:/etc/localtime -v /mydata/app/admin/logs:/var/logs -d mall/mall-admin:0.0.1-SNAPSHOT

部署mall-search

docker run -p 8081:8081 --name mall-search \
--link elasticsearch:es \
--link mysql:db \
-v /usr/share/zoneinfo/Asia/Shanghai:/etc/localtime \
-v /mydata/app/search/logs:/var/logs \
-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 \
-v /etc/timezone:/etc/timezone \
-v /etc/localtime:/etc/localtime \
-v /mydata/app/portal/logs:/var/logs \
-d mall/mall-portal:0.0.1-SNAPSHOT

SpringBoot应用自动化部署

部署文件

document/docker/docker-compose.yml

部署命令

docker-compose up -d

你可能感兴趣的:(Linux,docker)