追加更新內(nèi)容
項目中如果遇到會不時的更新.請大家及時關(guān)注哦!!!
- zookeeper
- kafka
- es
使用場景
本地、測試屿讽、生產(chǎn)環(huán)境使用一致的環(huán)境,不會導(dǎo)致本地與線上環(huán)境的差異.輕量級的docker可以滿足.
前置條件
在安裝應(yīng)用之前需要安裝docker.筆者是在vmware中安裝的docker,因為遷移會比較方便
- vmware(非必要)
- docker
- docker-compose
使用docker-compose編排安裝應(yīng)用
前置條件已經(jīng)安裝了docker docker-compose.如何安裝自行百度.
安裝常用應(yīng)用
- mysql
- tomcat
- docker-ui
- nginx
- redis
- jenkins
- kafka
- zookeeper
- es
在安裝es之前需要設(shè)置虛擬內(nèi)存不然會報錯
設(shè)置虛擬內(nèi)存虛擬內(nèi)存
sudo sysctl -w vm.max_map_count=262144
- 新建
docker-compose.yml
volumes
為掛載的目錄,目的是為了讓你修改的文件保存在你的本地目錄中.這樣容器刪了就不會丟失數(shù)據(jù).這個例子中我掛在的目錄為./volumes/...
.這個目錄可以自行修改
version: "2"
services:
mysql:
image: mysql/mysql-server:5.7.21
ports:
- "3306:3306"
environment:
MYSQL_ROOT_PASSWORD: "zxcv1234"
MYSQL_ROOT_HOST: "%"
TZ: Asia/Shanghai
volumes:
- "/home/mac/docker/volumes/mysql-5.7.21/datadiri:/var/lib/mysql"
restart: always
container_name: docker_mysql
tomcat:
image: dordoka/tomcat
ports:
- "9002:8080"
environment:
TZ: Asia/Shanghai
volumes:
- "./volumes/tomcat/webapps:/opt/tomcat/webapps"
- "./volumes/tomcat/logs:/opt/tomcat/logs"
restart: always
container_name: docker_tomcat
docker-ui:
image: uifd/ui-for-docker
ports:
- "9000:9000"
volumes:
- "/var/run/docker.sock:/var/run/docker.sock"
restart: always
container_name: docker_ui
nginx:
image: daocloud.io/nginx
ports:
- "12000:80"
environment:
TZ: Asia/Shanghai
volumes:
- "./volumes/nginx/default.conf:/etc/nginx/conf.d/default.conf"
restart: always
container_name: docker_nginx
jenkins:
image: jenkins/jenkins:lts
ports:
- "12002:8080"
- "12003:50000"
environment:
TZ: Asia/Shanghai
volumes:
- "./volumes/jenkins:/var/jenkins_home"
restart: always
container_name: docker_jenkins
redis:
image: redis:3.2
ports:
- "6379:6379"
environment:
TZ: Asia/Shanghai
volumes:
- "/etc/localtime:/etc/localtime"
restart: always
container_name: docker_redis
zookeeper:
image: wurstmeister/zookeeper
ports:
- "2181:2181"
restart: always
container_name: kafka_zookeeper_1
kafka:
image: wurstmeister/kafka
volumes:
- /etc/localtime:/etc/localtime
ports:
- "9092:9092"
restart: always
environment:
KAFKA_ADVERTISED_HOST_NAME: 192.168.7.118
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
depends_on:
- zookeeper
container_name: kafka_1
kafka-manager:
image: sheepkiller/kafka-manager:latest
ports:
- "9001:9000"
links:
- zookeeper
- kafka
environment:
ZK_HOSTS: zookeeper:2181
APPLICATION_SECRET: letmein
KM_ARGS: -Djava.net.preferIPv4Stack=true
restart: always
container_name: kafka_manager_1
es:
image: elasticsearch:5.6.4
container_name: ezview_elasticsearch_1
volumes:
- "./volumes/es/data:/usr/share/elasticsearch/data"
- "./volumes/es/config/es1.yml:/usr/share/elasticsearch/config/elasticsearch.yml"
ports:
- "9200:9200"
- "9300:9300"
restart: always
container_name: es_1
cd 到
docker-compose.yml
, 執(zhí)行docker-compose up -d
執(zhí)行完畢,查看docker運(yùn)行狀態(tài)
docker-compose ps
Name Command State Ports
---------------------------------------------------------------------------------------------------------------------
Name Command State Ports
----------------------------------------------------------------------------------------------------------------------
docker_jenkins /sbin/tini -- /usr/local/b ... Up 0.0.0.0:12003->50000/tcp, 0.0.0.0:12002->8080/tcp
docker_mysql /entrypoint.sh mysqld Up (healthy) 0.0.0.0:3306->3306/tcp, 33060/tcp
docker_nginx nginx -g daemon off; Up 0.0.0.0:12000->80/tcp
docker_redis docker-entrypoint.sh redis ... Up 0.0.0.0:6379->6379/tcp
docker_tomcat /opt/tomcat/bin/catalina.s ... Up 8009/tcp, 0.0.0.0:9002->8080/tcp
docker_ui /ui-for-docker Up 0.0.0.0:9000->9000/tcp
es_1 /docker-entrypoint.sh elas ... Up 0.0.0.0:9200->9200/tcp, 0.0.0.0:9300->9300/tcp
kafka_1 start-kafka.sh Up 0.0.0.0:9092->9092/tcp
kafka_manager_1 ./start-kafka-manager.sh Up 0.0.0.0:9001->9000/tcp
kafka_zookeeper_1 /bin/sh -c /usr/sbin/sshd ... Up 0.0.0.0:2181->2181/tcp, 22/tcp, 2888/tcp, 3888/tcp
測試應(yīng)用是否都安裝成功
因為我的docker是安裝在本地虛擬機(jī)的linux系統(tǒng)上,首先查看虛擬機(jī)的ip地址
172.16.217.128
虛擬機(jī)ubuntu ip地址.png
docker_ui
端口9000
訪問http://172.16.217.128:9000
.查看是否安裝完成
頁面能夠正常訪問,測試通過
jenkins
端口12002
訪問http://172.16.217.128:12002
.查看是否安裝完成
頁面能夠正常訪問,測試通過
mysql
---
ip: 172.16.217.128
端口: 3306
賬號: root
密碼: zxcv1234
---
ps: 賬號密碼是在上文中的docker-compose.yml中設(shè)置的
使用數(shù)據(jù)庫連接工具navicat
(可以選擇自己的連接工具,我這里使用這個)
數(shù)據(jù)庫能夠正常訪問,測試通過
nginx
端口12000
訪問http://172.16.217.128:12000
.查看是否安裝完成
頁面能夠正常訪問,測試通過
redis
端口6379
訪問redis,查看是否安裝完成
redis正常訪問,測試通過
tomcat
端口9001
訪問http://172.16.217.128:9001
.查看是否安裝完成
tomcat正常訪問,測試通過
zookeeper
kafka依賴于zookeeper,所以我們只要測試kafka就行了