Java项目之Docker常用容器安装

使用Docker安装FastDFS容器
1、拉取镜像:docker pull xxx
2、创建容器:docker run -itd --name=xxx 镜像  /bin/bash
3、进入到容器:docker exec 容器名称  /bin/bash
4、退出容器:exit
5、重启容器:docker restart

#拉取镜像
docker pull morunchang/fastdfs

#运行tracker       docker网络:host   bridge  none
docker run -d --name tracker --net=host morunchang/fastdfs sh tracker.sh


#运行storage
docker run -d --name storage --net=host -e TRACKER_IP=192.168.2.241:22122 -e GROUP_NAME=group1 morunchang/fastdfs sh storage.sh


- 使用的网络模式是–net=host, 192.168.2.241是宿主机的IP
- group1是组名,即storage的组  
- 如果想要增加新的storage服务器,再次运行该命令,注意更换 新组名
配置Nginx
- docker创建容器:集成了
- 传统的vm去搭建FastDFS:安装存储、跟踪、安装nginx、配置nginx

#Nginx在这里主要提供对FastDFS图片访问的支持,Docker容器中已经集成了Nginx,我们需要修改nginx的配置,进入storage的容器内部,修改nginx.conf
docker exec -it storage  /bin/bash

#进入后
vi /etc/nginx/conf/nginx.conf

#添加以下内容
location ~ /M00 {
     root /data/fast_data/data;
     ngx_fastdfs_module;
}

#禁止缓存:
add_header Cache-Control no-store;

#退出容器
exit

#重启storage容器
docker restart storage

#查看启动容器           
docker ps     
9f2391f73d97 morunchang/fastdfs "sh storage.sh" 12 minutes ago Up 12 seconds storage
e22a3c7f95ea morunchang/fastdfs "sh tracker.sh" 13 minutes ago Up 13 minutes tracker

#开启启动设置
docker update --restart=always tracker
docker update --restart=always storage
使用Docker安装mysql容器
#拉取mysql镜像
docker pull centos/mysql-57-centos7

#创建容器
#如果宿主机系统里有mysql,端口需要与docker容器的映射端口不同
#-p  代表端口映射,格式为  宿主机映射端口:容器运行端口
#-e  代表添加环境变量  MYSQL_ROOT_PASSWORD 是root用户的登陆密码
> docker run -di --name=mysql -p 3307:3306 -e MYSQL_ROOT_PASSWORD=123456  centos/mysql-57-centos7 

#启动成功日志
d81df2492094        centos/mysql-57-centos7   "container-entrypoin…"   6 seconds ago Up 5 seconds                  0.0.0.0:33306->3306/tcp   mymysql

 # 查看日志
docker logs -f mymysql

#远程登录mysql
#连接宿主机的IP ,指定端口为3307;记得防火墙开放该端口
#永久的向公共区域添加3307的端口号
  firewall-cmd  --zone=public  --add-port=3307/tcp  --permanent

#重新加载新的规则:
  firewall-cmd  --reload

#显示所有添加到端口号
  firewall-cmd  --list-all
  
#建议,直接执行关闭开机自启防火墙即关闭防火墙


#使用客户端工具连接即可
使用Docker安装Tomcat容器
#拉取镜像
docker pull tomcat:8.5.50-jdk8-adoptopenjdk-openj9
#或者:
docker pull tomcat:8.5.47-jdk8-adoptopenjdk-openj9

#创建容器  -p表示地址映射
#第一个是对外暴露的tomcat端口(供api访问的)后面的是war包,需要传到/usr/local/文件夹下
docker run -di --name=tomcat -p 9080:8080 -v/usr/local/webapps:/usr/local/tomcat/webapps tomcat:8.5.50-jdk8-adoptopenjdk-openj9 

#如果需要同时启动多个tomcat。那么需要去修改server.xml文件
# 创建tomcat容器实例
docker run -di --name=mytomcat -p 9100:8081 tomcat:7-jre7
# 进入容器目录
docker exec -it 容器ID /bin/bash
# 切换到conf目录,修改server.xml
> cd /conf
> vim server.xml
> 
# 查看日志
docker logs -f mytomcat2   :查询所有日志
docker logs -f --tail=30 mytomcat   : 查询最后三十行日志

#远程登录tomcat
#连接宿主机的IP ,指定端口为9080;记得防火墙开放该端口
#永久的向公共区域添加9080的端口号
  firewall-cmd  --zone=public  --add-port=9080/tcp  --permanent

#重新加载新的规则:
  firewall-cmd  --reload

#显示所有添加到端口号
  firewall-cmd  --list-all
使用Docker安装安装Nginx容器
#拉取镜像
docker pull nginx

#创建Nginx容器
docker run -di --name=nginx -p 90:80 nginx   
# 查看日志
docker logs -f mynginx

#进入容器内部: 
docker exec -it  nginx /bin/bash


#远程登录nginx

#连接宿主机的IP ,指定端口为90;记得防火墙开放该端口

#永久的向公共区域添加90的端口号
  firewall-cmd  --zone=public  --add-port=90/tcp  --permanent

#重新加载新的规则:
  firewall-cmd  --reload

#显示所有添加到端口号
  firewall-cmd  --list-all
使用Docker安装安装Redis容器
#拉取镜像
docker  pull redis

#创建容器
docker run -di --name=redis -p 7379:6379 redis


#远程登录redis
#连接宿主机的IP ,指定端口为7379;记得防火墙开放该端口
#永久的向公共区域添加7379的端口号
  firewall-cmd  --zone=public  --add-port=7379/tcp  --permanent

#重新加载新的规则:
  firewall-cmd  --reload

#显示所有添加到端口号
  firewall-cmd  --list-all



#在window操作系统中,找一个redis客户端进行测试。执行如下命令
redis-cli.exe -h 192.168.13.111 -p 6379

# 查看日志
docker logs -f myredis
使用Docker安装Rabbitmq容器
#获取rabbit镜像:
docker pull rabbitmq:management

#创建RabbitMQ容器	#--name:指定容器名称	#-p:将mq端口号映射到本地
docker run -di --name=rabbitmq -p 35671:15671 -p 35672:15672 -p 6369:4369 -p 7671:5671 -p 7672:5672 -p 45672:25672 rabbitmq:management

#======================================
创建容器,rabbitmq需要有映射以下端口: 5671 5672 4369 15671 15672 25672
15672:(if management plugin is enabled)
15671:management监听端口
5672、5671 :(AMQP 0-9-1 without and with TLS)
4369 : epmd 代表 Erlang 端口映射守护进程
25672: (Erlang distribution)
#======================================


# 查看日志
docker logs -f myrabbit

#使用 http://服务器ip:35672访问rabbit控制台


使用Docker安装Elasticsearch 容器
#docker镜像下载
docker pull elasticsearch:5.6.8

#安装es容器
docker run -di --name=lz_elasticsearch -p 9200:9200 -p 9300:9300 elasticsearch:5.6.8
docker run -di --name=mysql -p 3307:3306 -e MYSQL_ROOT_PASSWORD=123456  centos/mysql-57-centos
#9200端口(Web管理平台端口)  9300(服务默认端口)
#浏览器输入地址访问:`http://192.168.2.241:9200/`


#开启远程连接
#上面完成安装后,es并不能正常使用,elasticsearch从5版本以后默认不开启远程连接,程序直接连接会报如下错误:
failed to load elasticsearch nodes : org.elasticsearch.client.transport.NoNodeAvailableException: None of the configured nodes are available: [{#transport#-1}{5ttLpMhkRjKLkvoY7ltUWg}{192.168.211.132}{192.168.211.132:9300}]

#我们需要修改es配置开启远程连接,代码如下:

#登录容器
docker exec -it lz_elasticsearch /bin/bash

#查看目录结构 输入: dir
root@07f22eb41bb5:/usr/share/elasticsearch# dir
NOTICE.txt  README.textile  bin  config  data  lib  logs  modules  plugins

#进入config目录
cd config

#查看文件
root@07f22eb41bb5:/usr/share/elasticsearch/config# ls
elasticsearch.yml  log4j2.properties  scripts

#修改elasticsearch.yml文件
#vi命令无法识别,因为docker容器里面没有该命令,我们可以安装该编辑器。
#安装vim编辑器
apt-get update
apt-get install vim

#安装好了后,修改elasticsearch.yml配置,如下图:
vi elasticsearch.yml
取消transport.host: 0.0.0.0  的注释
#添加代码:
cluster.name: my-application


#重启docker
docker restart lz_elasticsearch

#系统参数配置
#重启后发现重启启动失败了,这时什么原因呢?这与我们刚才修改的配置有关,因为elasticsearch在启动的时候会进行一些检查,比如最多打开的文件的个数以及虚拟内存区域数量等等,如果你放开了此配置,意味着需要打开更多的文件以及虚拟内存,所以我们还需要系统调优 

#修改vi /etc/security/limits.conf ,追加内容 (nofile是单个进程允许打开的最大文件个数 soft nofile 是软限制 hard nofile是硬限制 )
vi /etc/security/limits.conf 

* soft nofile 65536
* hard nofile 65536

#修改vi /etc/sysctl.conf,追加内容 (限制一个进程可以拥有的VMA(虚拟内存区域)的数量 )
vi /etc/sysctl.conf

vm.max_map_count=655360

#执行下面命令 修改内核参数马上生效
sysctl -p

#重新启动虚拟机,再次启动容器,发现已经可以启动并远程访问 
reboot



#跨域配置
#修改elasticsearch/config下的配置文件:elasticsearch.yml,增加以下三句命令,并重启:

docker exec -it lz_elasticsearch /bin/bash
cd config
vi elasticsearch.yml

http.cors.enabled: true
http.cors.allow-origin: "*"
network.host: 192.168.2.241

#其中:
#http.cors.enabled: true			此步为允许elasticsearch跨域访问,默认是false。
#http.cors.allow-origin: "*"		表示跨域访问允许的域名地址(*表示任意)。



#重启
docker restart lz_elasticsearch

#小提示:如果想让容器开启重启,可以执行下面命令
docker update --restart=always lz_elasticsearch
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值