Docker应用软件安装

Docker应用安装示例

  • Tomcat
  • Nginx
  • Redis
  • GitLab
  • Jenkins
  • RabbitMQ
  • Elasticsearch
  • Zookeeper
  • Haproxy

Tomcat

(1)拉取镜像

docker pull tomcat:7-jre7

(2)创建容器
创建容器 -p表示地址映射

docker run -di --name=mytomcat -p 9000:8080 
-v /usr/local/webapps:/usr/local/tomcat/webapps tomcat:7-jre7

Nginx

(1)拉取镜像

docker pull nginx

(2)创建目录

mkdir -p /soft	/nginx

创建nginx.conf配置文件
(2)创建Nginx容器

docker run -di --name=mynginx -p 80:80 -v /data/nginx/conf/nginx.conf:/etc/nginx/nginx.conf  -v /data/nginx/logs:/var/log/nginx nginx

Redis

(1)拉取镜像

docker pull redis

(2)创建目录

mkdir -p /soft/redis

(3)自定义配置文件
官网下载配置文件redis.conf放到宿主机/data/redis目录下
(4)创建容器

docker run -di --name=redis -p 6379:6379 -v /data/redis/redis.conf:/etc/redis/redis.conf -v /data/redis/data:/data redis

(5)附加参数

redis.conf的配置启动 :redis-server /etc/redis/redis.conf
数据持久化:--appendonly yes

GitLab

gitlab依赖redis和postgresql
(1)拉取镜像

docker pull sameersbn/redis
docker pull sameersbn/postgresql
docker pull gitlab/gitlab‐ce:latest

(2)创建Postgresql容器

docker run ‐‐name postgresql ‐d ‐‐privileged=true ‐e 'DB_NAME=gitlabhq_production' ‐e
'DB_USER=gitlab' ‐e 'DB_PASS=password' ‐e 'DB_EXTENSION=pg_trgm' ‐v
/home/root/opt/postgresql/data:/var/lib/postgresql sameersbn/postgresql

(3)创建Redis容器

docker run ‐‐name redis ‐d ‐‐privileged=true ‐v /home/root/opt/redis/data:/var/lib/redis
sameersbn/redis

(4)创建GitLab容器

docker run ‐‐name gitlab ‐d ‐‐link postgresql:postgresql ‐‐link redis:redisio ‐‐hostname
192.168.164.103 ‐p 10022:22 ‐p 8899:80 ‐e 'GITLAB_PORT=8899' ‐e 'GITLAB_SSH_PORT=10022' ‐e
'GITLAB_SECRETS_DB_KEY_BASE=long‐and‐random‐alpha‐numeric‐string' ‐e
'GITLAB_SECRETS_SECRET_KEY_BASE=long‐and‐random‐alpha‐numeric‐string' ‐e
'GITLAB_SECRETS_OTP_KEY_BASE=long‐and‐random‐alpha‐numeric‐string' ‐e
'GITLAB_HOST=192.168.101.64' ‐e 'SMTP_AUTHENTICATION=login' ‐v
/home/root/opt/gitlab/data:/home/git/data docker.io/gitlab/gitlab‐ce

Jenkins

(1)拉取镜像

docker pull jenkinsci/blueocean

(2)创建容器

docker create ‐‐name jenkins ‐u root ‐p 8889:8080 ‐‐privileged=true ‐v jenkins‐
data:/var/jenkins_home ‐v /var/run/docker.sock:/var/run/docker.sock ‐v /home/jenkins:/home
docker.io/jenkinsci/blueocean

(3)启动容器

docker start Jenkins

(4)初始化

docker exec ‐it jenkins /bin/bash
cat /var/jenkins_home/secrets/initialadminPassword
ssh‐keygen ‐t rsa ‐C "[email protected]"
cat ~/.ssh/id_rsa.pub

RabbitMQ

(1)拉取镜像

docker pull rabbitmq:management

(2)创建容器

docker create --hostname myRabbitMQ --name rabbitmq -e RABBITMQ_DEFAULT_USER=root -e RABBITMQ_DEFAULT_PASS=qwe123 -p 15672:15672 -p 5672:5672 -p 25672:25672 -p 61613:61613 -p 1883:1883 rabbitmq:management

(3)启动容器

docker start rabbitmq

Elasticsearch

(1)拉取镜像

docker pull docker.elastic.co/elasticsearch/elasticsearch:6.3.2
docker pull mobz/elasticsearch-head:5

(2)创建配置文件

mkdir -p /soft/elasticsearch/config
mkdir -p /soft/elasticsearch/data
chmod -R 777 /soft/
vi es-1.yml

#集群名称 所有节点要相同
cluster.name: "es-zipkin"
#本节点名称
node.name: master
#作为master节点
node.master: true
#是否存储数据
node.data: true
#head插件设置
http.cors.enabled: true
http.cors.allow-origin: "*"
#设置可以访问的ip 这里全部设置通过
network.bind_host: 0.0.0.0
#设置节点 访问的地址 设置master所在机器的ip
network.publish_host: 192.168.164.100

(3)启动es容器

docker run -d --name es -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:6.3.2

(4)修改配置

vi /config/elasticsearch.yml
http.cors.enabled: true
http.cors.allow-origin: "*"

docker restart es   

(5)启动es-head

docker run -d --name es_admin -p 9100:9100 mobz/elasticsearch-head:5

(6)集群搭建

参考:https://blog.csdn.net/belonghuang157405/article/details/83301937

Zookeeper

#拉取zk镜像

docker pull zookeeper:3.5

#创建容器

docker create --name zk -p 2181:2181 zookeeper:3.5

#启动容器

docker start zk

#图形
安装ZooInspector

Haproxy

HAProxy是一个使用C语言编写的自由及开放源代码软件[1],其提供高可用性、负载均衡,以及基于TCP和HTTP的应用程序代理。

HAProxy特别适用于那些负载特大的web站点,这些站点通常又需要会话保持或七层处理。

HAProxy运行在当前的硬件上,完全可以支持数以万计的并发连接。并且它的运行模式使得它可以很简单安全的整合进您当前的架构中, 同时可以保护你的web服务器不被暴露到网络上。

HAProxy实现了一种事件驱动, 单一进程模型,此模型支持非常大的并发连接数。多进程或多线程模型受内存限制 、系统调度器限制以及无处不在的锁限制,很少能处理数千并发连接。事件驱动模型因为在有更好的资源和时间管理的用户空间(User-Space) 实现所有这些任务,所以没有这些问题。此模型的弊端是,在多核系统上,这些程序通常扩展性较差。这就是为什么他们必须进行优化以 使每个CPU时间片(Cycle)做更多的工作。

官网:http://www.haproxy.org/
关于并发性能,haproxy可以做到千万级的并发。

1、安装
#拉取镜像
docker pull haproxy:1.9.3

#创建目录,用于存放配置文件
mkdir /haoke/haproxy

#创建容器
docker create --name haproxy --net host -v /vander/haproxy:/usr/local/etc/haproxy haproxy:1.9.3

2、配置
#创建文件 vim /vander/haproxy/haproxy.cfg

#输入如下内容 
global
    log         127.0.0.1 local2    
    maxconn     4000    
    daemon
defaults
    mode                    http    
    log                        global    
    option                   httplog    
    option                   dontlognull 
    option http-server-close    
    option forwardfor       except 127.0.0.0/8    
    option                  redispatch    
    retries                 3    
    timeout http-request    10s    
    timeout queue           1m    
    timeout connect         10s    
    timeout client          1m    
    timeout server          1m    
    timeout http-keep-alive 10s    
    timeout check           10s    
    maxconn                 3000

listen   admin_stats
    bind    0.0.0.0:4001    
    mode  http    
    stats uri       /dbs    
    stats realm  Global\ statistics    
    stats auth    admin:admin123

listen   proxy-mysql
    bind    0.0.0.0:4002    
    mode  tcp    
    balance  roundrobin
    option   tcplog    
    #代理mycat服务    
    server   mycat_1  192.168.1.101:8066  check  port  8066  maxconn  2000    
    server   mycat_2  192.168.1.101:8067  check  port  8067  maxconn  2000

3、启动容器
#启动容器

docker restart haproxy && docker logs -f haproxy

4、测试
http://192.168.1.101:4001/dbs

你可能感兴趣的:(Docker)