Docker安装环境部署
记录一次使用 Docker 进行环境安装和部署的过程。
一. 安装配置 JAVA 环境
1. 从 JDK 官方下载相应的版本:JDK下载
2. 在/usr/lib 目录下创建一个 java-1.8.0 的目录,然后将下载好的 JDK 压缩包复制到这个目录。
1 2
| cd /usr/lib mkdir java-1.8.0
|
复制命令: cp [-adfilprsu] 源文件(source) 目标文件夹(destination)
例如: cp /home/AISMALL/公共/jdk-8u291-linux-x64.tar.gz /usr/lib/java-1.8.0/
3. 然后解压该压缩包,输入如下指令:
1 2
| cd /usr/lib/java-1.8.0 tar zxvf jdk-8u281-linux-x64.tar.gz
|
4. 配置环境变量,输入以下指令进行配置:
注意:按 i 开始编辑,编辑好先按 Esc 退出编辑,再按冒号,然后输入 wq 回车保存退出
5. 在文件尾部添加如下信息:
1 2 3 4 5 6
| JAVA_HOME=/usr/lib/java-1.8.0/jdk1.8.0_281 PATH=$JAVA_HOME/bin:$PATH CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export JAVA_HOME export PATH export CLASSPATH
|
注意:JAVA_HOME=/usr/lib/java-1.8.0/jdk 1.8.0_291 此处等号右边的是自己的 jdk 实际解压目录。如果不是该目录则需要改成自己的实际目录,其他不变。
6. 保存完之后,我们还需要让这个环境变量配置信息立即生效
7. 安装完成之后可以通过以下命令查看是否安装成功
- 使用
yun updata 更新依赖包
1 2
| yum update //升级所有包同时也升级软件和系统内核 yum upgade //只升级所有包,不升级软件和系统内核
|
二. 安装 Dcoker
1 2 3 4
| yum install -y yum-utils device-mapper-persistent-data lvm2 //安装必要工具 yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo //设置yum源 yum install -y docker-ce //下载docker systemctl start docker //启动docker
|
三. 安装 MySQL
1 2
| docker pull mysql //拉起MySQL镜像 docker run --name mysql --restart=always --net=host -p 3306:3306 -e MYSQL_ROOT_PASSWORD=YourPassword -d mysql //启动MySQL
|
四. 安装 Redis
1 2
| docker pull redis //下载安装redis docker run --name redis --restart=always -p 6379:6379 -d redis --requirepass "YourPassword"
|
五. 安装 nginx
1 2 3
| docker pull nginx //download nginx image docker run --name nginx --restart=always --privileged=true -p 80:80 -p 443:443 -d -v /usr/local/nginx/nginx.conf:/etc/nginx/nginx.conf -v /usr/local/vue:/usr/local/vue -v /usr/local/nginx/cert:/usr/local/nginx/cert nginx //启动nginx,映射本地配置文件 docker run --name nginx --restart=always --privileged=true --net=host -p 80:80 -p 443:443 -d -v /usr/local/nginx/nginx.conf:/etc/nginx/nginx.conf -v /usr/local/vue:/usr/local/vue -v /usr/local/nginx/cert:/usr/local/nginx/cert nginx
|
六. 安装 elasticsearch
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| docker pull elasticsearch:7.9.2 //下载elasticsearch镜像
docker network create esnet//创建一个网络 使得es可以和Kibana通信
docker run -d --restart=always -p 9200:9200 -p 9300:9300 --name elasticsearch elasticsearch:7.9.2 //启动elasticsearch
docker run -e ES_JAVA_OPTS="-Xms64m -Xmx576m" --name elasticsearch -p 9200:9200 -p 9300:9300 --network esnet -e "discovery.type=single-node" elasticsearch:7.9.2//限制内存启动用这个
docker exec -it elasticsearch /bin/bash //进入elasticsearch容器 ./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.9.2/elasticsearch-analysis-ik-7.9.2.zip// 安装il分词器 exit //退出容器
docker pull mobz/elasticsearch-head:5//安装head5 docker run -d --name elasticsearch-head --net esnet -p 9100:9100 mobz/elasticsearch-head:5
|
七. 跨域配置
为了实现通信首先进入 elasticsearch 容器中
1
| docker exec -it elasticsearch /bin/bash //进入elasticsearch容器
|
直接在修改/config/elasticsearch. Yml 文件
首先安装 vim,有点耗存储(60 MB)
安装完添加跨域配置,方便各服务之间的调用
在 vim config/elasticsearch.yml 文件中添加如下内容
1 2
| http.cors.enabled: true http.cors.allow-origin: "*"
|
然后重启容器
1 2
| exit docker restart elasticsearch
|
八. 安装 Rabbit
1 2
| docker pull rabbitmq:management //下载RabbitMQ镜像 docker run --name rabbit --restart=always -p 15672:15672 -p 5672:5672 -d rabbitmq:management //启动RabbitMQ,默认guest用户,密码也是guest。
|
九. 安装 MaxWell
1 2
| docker pull zendesk/maxwell //下载MaxWell镜像 docker run --name maxwell --restart=always -d zendesk/maxwell bin/maxwell --user='root' --password='YourPassword' --host='Your IP' --producer=rabbitmq --rabbitmq_user='guest' --rabbitmq_pass='guest' --rabbitmq_host='Your IP' --rabbitmq_port='5672' --rabbitmq_exchange='maxwell' --rabbitmq_exchange_type='fanout' --rabbitmq_exchange_durable='true' --filter='exclude: *.*, include: blog.tb_article.article_title = *, include: blog.tb_article.article_content = *, include: blog.tb_article.is_delete = *' //运行MaxWell
|
Docker 常用命令
1 2 3 4 5 6 7 8 9
| docker images //列出镜像 docker ps //列出所有容器 docker restart //重新启动一个或多个容器 docker rm //删除一个或多个容器 docker rmi //删除一个或多个镜像 docker logs //取得容器的日志 docker stop //停止一个或多个正在运行的容器 docker restart //重新启动一个或多个容器 docker build -t blog.//根据 Dockerfile 构建一个blog镜像
|