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

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

 

原文地址:https://www.cnblogs.com/cpw6/p/11751314.html