docker下部署服务

zabbix部署

需求:

  因最近项目过多,人力监控耗费时间,打算部署一个zabbix,但又不想部署在宿主机上,就想起了docker,docker快速的移植性是最大的亮点,好了,言归正传开始干。

 

部署:

  ①yum安装doker环境

  ②配置docker国内镜像源

  ③安装mysql

#新建mysql映射目录
mkdir -p /docker/data/zabbix/mysql
#赋权
chown mysql.mysql /docker/data/zabbix/mysql -R
#安装mysql
docker run --name mysql-server -t \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_PASSWORD="zabbix_passwd" \ -e MYSQL_ROOT_PASSWORD="root_passwd" \
-v /etc/localtime:/etc/localtime \
-v /etc/timezone:/etc/timezone \
-v /docker/data/zabbix/mysql:/var/lib/mysql \
-p 3306:3306 \
-d mysql:5.7

注意:
如果配置这个时区参数,-v /etc/timezone:/etc/timezone \请确保你本地存在/etc/timezone文件,而不是文件夹,否则会报错,如果没有这个文件,创建即可。vi /etc/timezone 内容为: Asia/shanghai

 

  ④安装zabbix-server

docker run --name zabbix-server-mysql -t \
      -v /etc/localtime:/etc/localtime:ro \
      -v /etc/timezone:/etc/timezone:ro \
      -e DB_SERVER_HOST="mysql-server" \
      -e MYSQL_DATABASE="zabbix" \
      -e MYSQL_USER="zabbix" \
      -e MYSQL_PASSWORD="zabbix_passwd" \
      -e MYSQL_ROOT_PASSWORD="root_passwd" \
      --link mysql-server:mysql \
      -p 10051:10051 \
      -d zabbix/zabbix-server-mysql:latest

 

  ⑤安装nginx

docker run --name zabbix-web-nginx-mysql -t \
-v /etc/localtime:/etc/localtime:ro \
-v /etc/timezone:/etc/timezone:ro \
-e DB_SERVER_HOST="mysql-server" \ -e MYSQL_DATABASE="zabbix" \ -e MYSQL_USER="zabbix" \ -e MYSQL_PASSWORD="zabbix_passwd" \ -e MYSQL_ROOT_PASSWORD="root_passwd" \ --link mysql-server:mysql \ --link zabbix-server-mysql:zabbix-server \ -p 80:80 \ -d zabbix/zabbix-web-nginx-mysql:latest

 

安装完成,浏览器上访问:127.0.0.1/zabbix

用户名:Admin

密码:zabbix

 

安装zabbix-agent

docker run --name zabbix-agent -t \
      -v /etc/localtime:/etc/localtime:ro \
      -v /etc/timezone:/etc/timezone:ro \
      -e ZBX_HOSTNAME=Hostname \
      -e ZBX_SERVER_HOST=Zabbix_Server_IP \
-e UnsafeUserParameters=1 \
-e HostMetadataItem=system.uname \
-p 10050:10050 \ -d zabbix/zabbix-agent

 HostMetadataItem=system.uname #用于自动注册

 

redis部署

# 查找redis镜像
docker search redis

# 下载官方镜像
docker pull redis

# 启动redis服务、设置密码、开启持久化
docker run --name redis -p 6379:6379 -d --restart=always redis:latest redis-server --appendonly yes --requirepass "password"

 连接redis测试

# 连接redis
docker exec -it redis容器ID redis-cli

# 查看所有key
127.0.0.1:6379> KEYS *
(error) NOAUTH Authentication required.

# 认证
127.0.0.1:6379> auth password
OK

 

部署tomcat

docker run -e TZ="Asia/Shanghai" -it -d --name tomcat-test -p 8080:8080 --restart=always -v /home/docker/data/tomcat/conf:/usr/local/tomcat/conf -v /home/docker/data/tomcat/logs:/usr/local/tomcat/logs -v /home/docker/data/tomcat/webapps:/usr/local/tomcat/webapps docker.io/tomcat:9.0-jdk8-corretto

 

部署oracle

# 下载镜像(这个镜像没有直接安装好oracle,他帮我们配置好了环境,提供了安装脚本,我们只需要按照要求把oracle的安装目录配置好,启动镜像,即可)
docker pull jaspeen/oracle-11g

# 准备oracle 11g安装文件(linux.x64_11gR2_database_1of2.zip 和 linux.x64_11gR2_database_2of2.zip两个压缩包)
# 目录结构
.
└─oracleinstall
    └─database
        ├─doc
        ├─install
        ├─response
        ├─rpm
        ├─sshsetup
        ├─stage
        ├─runInstaller
        └─welcome.html

# 安装oracle
docker run --privileged --name oracle11g -p 1521:1521 -v /home/docker/data/oracle/oracleinstall:/install jaspeen/oracle-11g

# 解锁scott用户
docker exec -it oracle11g /bin/bash
su - oracle
sqlplus / as sysdba


SQL> alter user scott account unlock;
User altered.
SQL> commit;
Commit complete.
SQL> conn scott/tiger
ERROR:
ORA-28001: the password has expired
Changing password for scott
New password:
Retype new password:
Password changed
Connected.
SQL> 

# 使用DB工具可以连接oracle了

参考:https://blog.csdn.net/qq_39316391/article/details/100542751

 

部署FastDFS

# 下载镜像
docker pull delron/fastdfs:latest

# 运行tracker容器(默认端口22122)
docker run -d --network=host --name tracker -v /var/fdfs/tracker:/var/fdfs delron/fastdfs tracker

# 运行storage容器(也可以将/etc/fdfs/storage.conf和nginx.conf持久化)
docker run -d --network=host --name storage -e TRACKER_SERVER=ip:22122 -v /var/fdfs/storage:/var/fdfs -e GROUP_NAME=group1 delron/fastdfs storage

# 配置storage.conf(默认端口8888)
vi /etc/fdfs/storage.conf

# 配置storage容器中的nginx.conf
    server {
        listen       8888;
        server_name  localhost;
        location ~/group[0-9]/ {
            ngx_fastdfs_module;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
        root   html;
        }
    }

# 重启storage容器
docker restart storage

# 进入storage容器测试
/usr/bin/fdfs_upload_file /etc/fdfs/client.conf cumt.png
group1/M00/00/00/Cm4_FF7q2tiAUqonAAHnw6T_mTQ509.jpg

# 指定storage上传
/usr/bin/fdfs_upload_file /etc/fdfs/client.conf cumt.png group1/M00/00/00/Cm4_FF7q2tiAUqonAAHnw6T_mTQ509.jpg 10.0.3.5:23000 # 浏览器成功访问图片http:
//storageIP:8888/group1/M00/00/00/Cm4_FF7q2tiAUqonAAHnw6T_mTQ509.jpg

 

部署Mysql

# 持久化部署mysql5.6.50
docker run -idt -p 13306:3306 --name mysql --restart=always  -e TZ="Asia/Shanghai"  -e MYSQL_ROOT_PASSWORD=123456 -v /home/docker/mysql5.6.50/config:/etc/mysql -v /home/docker/mysql5.6.50/data:/usr/data mysql:5.6.50

#持久化部署mysql5.7.33
docker run -idt -p 13306:3306 --name mysql5.7.33 --restart=always  -e TZ="Asia/Shanghai"  -e MYSQL_ROOT_PASSWORD=123456 -v /home/docker/mysql5.7.33/config:/etc/mysql -v /home/docker/mysql5.7.33/data:/var/lib/mysql mysql:5.7.33

 

部署HBase

# 下载镜像
docker pull harisekhon/hbase:1.3

# 运行容器
docker run -d -h myhbase -p 2181:2181 -p 8080:8080 -p 8085:8085 -p 9090:9090 -p 9095:9095 -p 16000:16000 -p 16010:16010 -p 16201:16201 -p 16301:16301 --name hbase1.3 harisekhon/hbase:1.3

# 添加hosts映射
127.0.0.1 myhbase

# 访问Hbase页面
http://myhbase:16010/master-status

 

部署MongoDB

# 持久化
docker run -idt --name mongodb --network=host -v /home/mongodb/data:/data/db mongo:4.4.3

# 设置认证需添加参数--auth
docker exec -it mongodb mongo admin
# 设置用户名密码
db.createUser({ user: 'mongouser', pwd: 'password', roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] });

# 数据库备份
docker exec mongodb sh -c 'exec cur_time=`date +%Y%m%d%H%M` && mongodump -h localhost --port 27017 -u mongouser -p password -d dbname -o /data/backup/${cur_time}_test.dat'

 

 

posted @ 2019-10-28 11:42  MegaloBox  阅读(802)  评论(0编辑  收藏  举报