docker搭建数据库、文件服务器、邮件服务器

1.云端镜像库信息

已有云端[镜像版本号]统计如下:

sybase16.0sybase15.7nessuspostgres9awvs-1nfs-2vsftpd-1hgdb-1mysql5.7mysql5.5mysql8django-1samba-1oracle10gdb2dmkingbaseV8R3onvifgb28181videosrs4gbase8smailpostgres14oracle11goracle12chadoopmail2hlsrtsp-serverffmpegoscarawvs-2zentaoewomaildb2-11sqlserver2017awvs15.6

需要登录,密码咨询博主,以下所有的资源搭建都基于登录云镜像登录后一键搭建

docker login --username=testdqz registry.cn-hangzhou.aliyuncs.com

拉取镜像到本地

docker pull registry.cn-hangzhou.aliyuncs.com/testdqz/testdqz:[镜像版本号]

docker logout registry.cn-hangzhou.aliyuncs.com

退出云镜像登录

2.docekr安装

1.执行命令
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
2.执行命令
sudo yum-config-manager --add-repo \
https://download.docker.com/linux/centos/docker-ce.repo  
3.执行命令
sudo yum install -y docker-ce docker-ce-cli containerd.io
4.执行命令
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"data-root": "/home/Docker",
"registry-mirrors": [
 "https://hub-mirror.c.163.com",
 "https://ustc-edu-cn.mirror.aliyuncs.com",
 "https://ghcr.io",
 "https://mirror.baidubce.com" ]
}
EOF其中"data-root":"/home/Docker/dockerfile"路径表示本地存放docker文件的路径,建议找个大点的路径,执行不了的话,手动将内容添加到daemon.json文件中
5.重启docker服务systemctl restart docker
systemctl restart docker

2.1docker常用操作

1. systemctl restart/start/stop docker
2. systemctl enable/disable docker
3. docker info
4. docker search 镜像名   在线搜索
5. docker pull 镜像名     下载镜像
6. docker run -p 456:123 --name abc 其中456为主机映射端口,123为容器内部端口,abc为运行后的容器名  
7. docker exec -it 运行中的容器名 /bin/bash 进入容器
8. docker commit -m="gb28181" -a="dqz" 40b9f3856e66 srs4:v2 提交变更镜像
9. docker ps -a
10. docker stop/start/restart 容器名
11. docker rm 容器名
12. docker rmi 镜像
13. docker images   查看本地镜像
14. docker IMAGE ID REPOSITORY:TAG 添加标签
15. docker update --restart=always 容器名    设置自启动
16. docker inspect -f '{{.Name}} => {{.NetworkSettings.IPAddress }}' $(docker ps -aq)查看容器ip


2.2.docker-compose安装

curl -SL https://gitee.com/docker/compose/releases/download/v2.16.0/docker-compose-linux-x86_64 -o /usr/bin/docker-compose
chmod +x /usr/bin/docker-compose
docker-compose version

2.3portainer

mkdir -p /home/portainer/data 
cd /home/portainer
wget https://raw.githubusercontent.com/renyinping/portainer-cn/master/Portainer-CN.zip
unzip Portainer-CN.zip -d public
docker run -p 62001:9000 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v /home/portainer/data:/data -v /home/portainer/public:/public -d registry.cn-hangzhou.aliyuncs.com/testdqz/testdqz:portainer

效果如下,可以管理所有的docker容器,快速构建拉取维护等等

2.4FTP服务器

方式一:(缺点:只能监听主机IP输入的IP,不能监听所有网卡)
docker run -d -p 62121:21 -p 62120:20 -p 21100-21110:21100-21110 -v /home/ftp:/home/vsftpd/ftp -e FTP_USER=ftp -e FTP_PASS=123456 -e PASV_ADDRESS=主机IP -e PASV_MIN_PORT=21100 -e PASV_MAX_PORT=21110 -e PASV_ENABLE=YES --name vsftpd --restart=always registry.cn-hangzhou.aliyuncs.com/testdqz/testdqz:vsftpd-1

PASV_ADDRESS(ip地址写主机ip地址)

ftp服务器信息
端口:62121 
用户名:ftp
密码:123456
路径:/home/ftp 

方式二:基于docker-compose安装(优点,监听所有网卡)
新建文件:docker-compose.yml 内容如下
version: '3.6'
services:
  vsftpd:
    image: registry.cn-hangzhou.aliyuncs.com/testdqz/testdqz:vsftpd-1
    container_name: vsftpd
    environment:
      - FTP_USER=ftp         #ftp为用户名
      - FTP_PASS=123456      #123456为密码
      - PASV_MIN_PORT=21100
      - PASV_MAX_PORT=21200
      - PASV_ADDRESS_ENABLE=YES
      - PASV_ADDRESS_RESOLVE=YES
      - PASV_ENABLE=YES
    ports:
      - "0.0.0.0:62120:20"
      - "0.0.0.0:62121:21"     #62121为监听端口
      - "0.0.0.0:21100-21200:21100-21200"
    volumes:
      - /home/ftp/data:/home/vsftpd    #冒号前面为主机路径
      - /home/ftp/log:/var/log/vsftpd    #冒号前面为主机路径
执行命令:docker-compose up -d
ftp服务器信息
端口:62121 
用户名:ftp
密码:123456
路径:home/ftp/data

2.5mysql5.5

docker run -p 3305:3306 --name mysql5.5 --privileged=true -v /home/Docker/mysql5.5/log:/var/log/mysql -v /home/Docker/mysql5.5/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d registry.cn-hangzhou.aliyuncs.com/testdqz/testdqz:mysql5.5 

docker cp mysql5.5:/etc/my.cnf .(最后面有个“.”)
vi my.cnf  文档最后加入character_set_server=utf8,保存
docker cp my.cnf mysql5.5:/etc/my.cnf 
docker exec -it mysql5.5 /bin/bash
mysql -uroot -p     密码123456
use mysql ;
update user set host = '%' where user='root';
flush privileges;
exit 执行2次退出到主机
docker update --restart=always mysql5.5添加自启动
docker restart mysql5.5 

mysql5.5服务器信息 
用户名:root 
密码:123456 
端口:3305

2.6mysql5.7服务器

docker run -p 3307:3306 --name mysql5.7 --privileged=true -v /home/Docker/mysql5.7/log:/var/log/mysql -v /home/Docker/mysql5.7/data:/var/lib/mysql -v /home/Docker/mysql5.7/conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=123456 -d registry.cn-hangzhou.aliyuncs.com/testdqz/testdqz:mysql5.7 


docker update --restart=always mysql5.7 添加自启动 

mysql5.7服务器信息 
用户名:root 
密码:123456 
端口:3307

2.7mysql8服务器

docker run -p 3308:3306 --name mysql8 --privileged=true -v /home/Docker/mysql/log:/var/log/mysql -v /home/Docker/mysql/data:/var/lib/mysql -v /home/Docker/mysql/conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=123456 -d registry.cn-hangzhou.aliyuncs.com/testdqz/testdqz:mysql8


docker update --restart=always mysql8     添加自启动 

mysql8服务器信息 
用户名:root 
密码:123456 
端口:3308 

2.8postgres9服务器

mkdir -p /home/postgresql9 在主机创建路径

docker run --name postgres9 --restart=always -e POSTGRES_PASSWORD=123456 -p 62433:5432 -v /home/postgresql9:/var/lib/postgresql/data -d registry.cn-hangzhou.aliyuncs.com/testdqz/testdqz:postgres9 


服务器信息 
数据库:postgres 
用户名:postgres 
密码:123456 
端口:62433 

2.9postgres14服务器

mkdir -p /home/postgresql14 在主机创建路径

docker run --name postgres14 --restart=always -e POSTGRES_PASSWORD=123456 -p 62432:5432 -v /home/postgresql14:/var/lib/postgresql/data -d registry.cn-hangzhou.aliyuncs.com/testdqz/testdqz:postgres14 

服务器信息 
数据库:postgres 
用户名:postgres 
密码:123456 
端口:62432 

2.10samba服务器

mkdir -p /home/sambatest
chmod 777 /home/sambatest

docker run -it -d --net=host --privileged=true -p 139:139 -p 445:445 -v /home/sambatest:/home/samba --name samba1 --restart=always registry.cn-hangzhou.aliyuncs.com/testdqz/testdqz:samba-1 

samba服务器信息 
用户名:samba1 
密码:123456 
端口:445/139 
路径:/home/sambatest 

2.11nfs服务器

modprobe nfs(重启服务器后docker start 失败时需要重新执行)
modprobe nfsd(重启服务器后docker start 失败时需要重新执行)
mkdir -p /home/nfstest
chmod 777 /home/nfstest

docker run --privileged -d -v /home/nfstest:/nas_a -e NFS_EXPORT_0='/nas_a  *(rw,sync,no_root_squash,no_all_squash,no_subtree_check,nohide,crossmnt)'  -p 2049:2049   -p 2049:2049/udp   -p 111:111     -p 111:111/udp     -p 32765:32765 -p 32765:32765/udp  -p 32767:32767 -p 32767:32767/udp -it --name nfsserver registry.cn-hangzhou.aliyuncs.com/testdqz/testdqz:nfs-2 


nfs服务器信息 
用户名:root 
密码:123456 
端口:2049 
路径:/home/nfstest 

使用其他服务器挂载,挂载命令:mount -v -t nfs -o rw,nfsvers=3,nolock,proto=udp,port=2049 主机IP:/nas_a /mnt

2.12sybase16服务器

docker run -i -t --name sybase16.0 -p 65016:5000 registry.cn-hangzhou.aliyuncs.com/testdqz/testdqz:sybase16.0 
默认数据库信息:【用户: tester 密码: guest1234 数据库: testdb】

安装会卡在那,使用工具连接成功表示安装已经完成,查出安装进程结束掉

使用dbeaver确认可以连接后进行sa用户密码重置
docker exec -it sybase16.0 /bin/bash
source /opt/sybase/SYBASE.sh
vi $SYBASE/$SYBASE_ASE/install/RUN_MYSYBASE (#最后加入 -psa \ 保存)
ps -ef |grep sybase
kill -9 10 11
$SYBASE/$SYBASE_ASE/bin/startserver -f $SYBASE/$SYBASE_ASE/install/RUN_MYSYBASE

查看系统默认密码

isql -S MYSYBASE -U sa -P ascuihrsototx3
sp_password ' ascuihrsototx3', '你设置的密码', 'sa' 回车后go,再回车
exit 退出sql
charset -Usa -P你设置的密码 -SMYSYBASE binary.srt utf8 设置默认字符集UTF-8
isql -S MYSYBASE -U sa -P 你设置的密码
select id,name from master..syscharsets where name='utf8'  回车后go,再回车
sp_configure 'default character set id',190回车后go,再回车
shutdown with nowait 回车后go,再回车
vi $SYBASE/$SYBASE_ASE/install/RUN_MYSYBASE (#最后删除 -psa \ 保存)
$SYBASE/$SYBASE_ASE/bin/startserver -f $SYBASE/$SYBASE_ASE/install/RUN_MYSYBASE
top看数据库服务是否启动,没启动再运行一下上一个命令
数据库信息:【用户: sa 密码: “你设置的密码” 数据库: testdb】

[root@16f885d06369 /]# source /opt/sybase/SYBASE.sh
[root@16f885d06369 /]# isql -S MYSYBASE -U sa -P 你设置的密码
1> dump tran TESTDB2 with no_log
2> go
关闭表TESTDB2的日志

2.13sybase15服务器

docker run -i -t --name sybase15.7 -p 65015:5000 -h dksybase -d registry.cn-hangzhou.aliyuncs.com/testdqz/testdqz:sybase15.7 bash /sybase/start

docker start sybase15.7

数据库信息:
用户sa,密码password 端口65015
数据库: testdb


[root@TRUST ~]#  docker exec -it sybase15.7 /bin/bash
[root@dksybase /]# source /opt/sybase/SYBASE.sh
[root@dksybase /]# isql -S DKSYBASE -U sa -P password
1> dump tran TESTDB2 with no_log
2> go
1> exit
[root@dksybase /]#  关闭表TESTDB2的日志

2.14DB2服务器

docker run -d --name db2 -p 50000:50000 -e DB2INST1_PASSWORD=DB2-root -e LICENSE=accept registry.cn-hangzhou.aliyuncs.com/testdqz/testdqz:db2 db2start

docker exec -it db2 /bin/bash 
db2,用户名密码不对导致无法连接数据库: Reason: User ID or Password invalid. ERRORCODE=-4214, SQLSTATE=28000 
修改密码 
su - db2inst1 
db2start 
db2sampl #创建默认的数据库SAMPLE (过程有点慢)
db2 create db hbktest #创建一个数据库 
数据库服务器信息 
用户名:db2inst1 
密码:DB2-root 
端口:50000
数据库:SAMPLE
  --DB2插入100w条数据时报错The transaction log for the database is full.. 
原因:DB2的所有数据库操作都会记录日志,插入100w条数据的日志太大,默认的日志大小只有1k,所以执行sql时报错,需要修改日志上限
解决方法:
	1)进到数据库服务器并切换到数据库用户
	   docker exec -it db2 sh -c "su - db2inst1"
	2) 查看日志文件大小限
	     db2 get db cfg for sample| grep LOGFILSIZ
	3) 更新db2日志上限大小
	     db2 update db cfg for sample using LOGFILSIZ 102400
	4)停止db2
	   db2 stop force
	5)启动db2
	   db2 start

2.15oracle10g服务器

docker run -itd --name oracle10g -h jemora10g -p 62023:3389 -p 62021:1521 -p 62022:22 --privileged=true registry.cn-hangzhou.aliyuncs.com/testdqz/testdqz:oracle10g init 

1. docker exec -it oracle10g bash 
2. su - oracle 
3. orapwd file=$ORACLE_HOME/dbs/orapw$ORACLE_SID password=gelc123 entries=5 force=y 
4. lsnrctl start 
5. sqlplus / as sysdba 
6. SYS@jem10g> startup 
7. SYS@jem10g> select * from v$version; 
远程连接不上可以执行一下步骤1~6 1. 添加数据库用户:
create user testdb identified by testdb;
alter user testdb account unlock;
grant create session to testdb;
GRANT CREATE USER,DROP USER,ALTER USER ,CREATE ANY VIEW , DROP ANY VIEW,EXP_FULL_DATABASE,IMP_FULL_DATABASE, DBA, CONNECT,RESOURCE,CREATE SESSION TO testdb;
-- 将密码有效期由默认的180天修改成“无限制”
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
2. 数据库服务器信息
用户名:testdb,密码:testdb
端口:62021
数据库:JEM10g

2.16gbase8s服务器

docker run -itd -p 62088:9088 --name gbase8 registry.cn-hangzhou.aliyuncs.com/testdqz/testdqz:gbase8s

1. 数据库服务器信息 
2. GBASEDBTSERVER=gbase01
3. 端口:62088
4. 数据库:testdb
5. 用户:gbasedbt
6. 密码:GBase123

2.17mail服务器(ssl)

docker run -d -p 62080:80 -p 62443:443 -p 62025:25 -p 62110:110 -p 62143:143 -p 62465:465 -p 62587:587 -p 62993:993 -p 62995:995 -p 64190:4190 -e TZ=Asia/Shanghai -v /home/maildata:/data   --name "mailserver" -h "mail.mailtest.com" --restart=always -t registry.cn-hangzhou.aliyuncs.com/testdqz/testdqz:mail

登录https://主机IP:62443/ 添加管理员信息后提交:
【mail.mailtest.com、admin@mailtest.com、123456】

登录https://主机IP:62443/ 添加管理员信息后提交:
mail.mailtest.comadmin@mailtest.com123456

登录https://主机IP:62443/admin/login 
用户名:admin@mailtest.com密码:123456
mail.mailtest.com
添加邮箱账号

登录https://主机IP:62443/webmail/,用户名和密码填写刚才添加的邮箱账号

2.18kingbase服务器

1.主机创建文件夹/home/kingbase-latest和/home/kingbase-latest/opt/license/并授权777
2.将证书放在home/kingbase-latest/opt/license/路径下,改名为license.dat
3.docker run -d -it --privileged=true -p 54321:54321 -v /home/kingbase-latest/opt:/opt --name kingbase registry.cn-hangzhou.aliyuncs.com/testdqz/testdqz:kingbaseV8R3

https://www.kingbase.com.cn/sqwjxz/index.htm 历史版本(V8R3)-license-专业版 
jdbc:kingbase8://{host}[:{port}]/[{database}] 

数据库信息 
端口: 54321
用户名: SYSTEM
密码: 123456
默认数据库: TEST 

2.19awvs漏扫服务器

docker run -d -p 62007:3443 --restart=unless-stopped --name=awvs registry.cn-hangzhou.aliyuncs.com/testdqz/testdqz:awvs-1
https://主机IP:62007 
用户名:admin@acu.com 
密码:Passw0rd! 
搭建成功后不要删除容器重建,目前不知道啥问题导致重新建的容器无法使用

netstat -anpl |grep 3443  #确认3443
docker run -d --restart=unless-stopped --net=host --name=awvs registry.cn-hangzhou.aliyuncs.com/testdqz/testdqz:awvs15.6

  
上传破解文件到服务器,并进入其文件路径
docker cp license_info.json awvs:/home/acunetix/.acunetix/data/license/
docker cp wa_data.dat awvs:/home/acunetix/.acunetix/data/license/

docker exec -it awvs /bin/bash
cd /home/acunetix/.acunetix
./change_credentials.sh    #修改账户、密码
改完账号密码后退出:exit
docker restart awvs

2.20rtsp-hls

CANDIDATE="主机IP" 
【启动服务器rtsp-server】
docker run --rm -itd -e RTSP_PROTOCOLS=tcp -p 8554:8554 -p 1935:1935 -p 8888:8888 registry.cn-hangzhou.aliyuncs.com/testdqz/testdqz:rtsp-server
【推RTSP流ffmpeg】
docker run --rm -itd -v /home/ffmpeg:/home registry.cn-hangzhou.aliyuncs.com/testdqz/testdqz:ffmpeg -re -i /home/test.mkv -acodec copy -vcodec copy -f mpegts ffmpeg -re -i /home/test.mkv -vcodec h264 -acodec aac -f rtsp -rtsp_transport tcp rtsp://主机IP:8554/mystream
【RTSP】
RTSP流:rtsp://主机IP:8554/mystream

【启动服务器hls】
docker run --rm -itd -p 1935:1935 -p 8080:8080 registry.cn-hangzhou.aliyuncs.com/testdqz/testdqz:hls
【推RTMP流video】
docker run --rm -itd registry.cn-hangzhou.aliyuncs.com/testdqz/testdqz:video ffmpeg -stream_loop -1 -re -i doc/source.flv -c copy -f flv rtmp://主机IP/live/test
【HLS】
HLS查看:http://主机IP:8080/players/hls_hlsjs.html

2.21webrtc服务器

CANDIDATE="主机IP" 
【启动服务器srs4】
docker run --rm -itd -p 1935:1935 -p 1985:1985 -p 62018:8080 --env CANDIDATE=主机IP -p 8000:8000/udp --name webrtc registry.cn-hangzhou.aliyuncs.com/testdqz/testdqz:srs4 ./objs/srs -c conf/rtmp2rtc.conf 
【推RTMP流video】
docker run --rm -itd registry.cn-hangzhou.aliyuncs.com/testdqz/testdqz:video ffmpeg -stream_loop -1 -re -i doc/source.flv -c copy -f flv rtmp://主机IP/live/livestream 

CANDIDATE 主机IP,填写对应主机IP地址

http://主机IP:62018
【RTMP】端口1935
RTMP流:rtmp://主机IP/live/livestream
【FLV】
浏览器播放地址:http://主机IP:62018/players/srs_player.html
FLV流:http://主机IP:62018/live/livestream.flv
【WebRTC】
浏览器播放地址:http://主机IP:62018/players/rtc_player.html 
WebRTC流:webrtc://主机IP/live/livestream

2.22GB28181服务器

docker run --env WVP_IP=主机IP -itd -p 62017:18080 -p 30400-30410:30400-30410/udp -p 30400-30410:30400-30410/tcp -p 80:80 -p 5060:5060 -p 5060:5060/udp registry.cn-hangzhou.aliyuncs.com/testdqz/testdqz:gb28181 

http://主机IP:62017/
admin/admin

2.23ONIVF服务器

mkdir -p /home/shinobi/config 
mkdir -p /home/shinobi/datadir 
mkdir -p /home/shinobi/vedios 
mkdir -p /home/shinobi/shinobiDockerTemp 
docker run -d --name onvif --restart=always -p 62016:8080 -v /etc/localtime:/etc/localtime:ro -v /etc/timezone:/etc/timezone:ro -v /home/shinobi/config/:/config -v /home/shinobi/datadir/:/var/lib/mysql -v /home/shinobi/vedios/:/opt/shinobi/videos -v /home/shinobi/shinobiDockerTemp:/dev/shm/streams registry.cn-hangzhou.aliyuncs.com/testdqz/testdqz:onvif 

http://主机IP:62016/super  
用户名:admin@shinobi.video 密码:admin 
http://主机IP:62016/   用户名:test@qq.com 密码:123456

2.24Nessus漏扫服务器

docker run -itd --name=nessus -p 62015:8834 registry.cn-hangzhou.aliyuncs.com/testdqz/testdqz:nessus 
docker exec -it nessus /bin/bash /nessus/update.sh  #加载插件

服务器信息:
地址:https://主机IP:62015/#/
UserName: admin
password: 密码自定义

/opt/nessus/sbin/nessuscli
nessuscli lsuser
nessuscli chpasswd admin

2.25达梦V8数据库

docker run -d --name dmv8 -h jemdm8 -p 62008-62012:5236-5240 -p 62013:8080 -p 62014:3389 -v /home/dmv8:/sys/fs/cgroup --privileged=true registry.cn-hangzhou.aliyuncs.com/testdqz/testdqz:dm /usr/sbin/init
后台安装需要花一定时间,半小时后尝试连接
登录http://主机IP: 62013/dem/   用户名admin,密码888888

DAMENG/SYSDBA服务器信息:
SYSDBA/SYSDBA 62008

2.26nginx服务器

mkdir -p /home/nginx/conf
mkdir -p /home/nginx/log
mkdir -p /home/nginx/html

docker run --name nginx -p 62006:80 -d nginx

docker cp nginx:/etc/nginx/nginx.conf /home/nginx/conf/nginx.conf
docker cp nginx:/etc/nginx/conf.d /home/nginx/conf/conf.d
docker cp nginx:/usr/share/nginx/html /home/nginx/

docker stop nginx
docker rm nginx

docker run -p 62006:80 --name nginx -v /home/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /home/nginx/conf/conf.d:/etc/nginx/conf.d -v /home/nginx/log:/var/log/nginx -v /home/nginx/html:/usr/share/nginx/html -d registry.cn-hangzhou.aliyuncs.com/testdqz/testdqz:nginx

docker update --restart=always nginx

ulimit -HSn 1048575


#调优
vi /home/nginx/conf/nginx.conf
user  nginx;
#worker_processes  auto;
worker_processes 8;#核心数,不确定的使用自动分配auto,worker_cpu_affinity为8核参数,有区别的自行百度
worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000  00100000 01000000 10000000;

error_log  /var/log/nginx/error.log notice;
pid        /var/run/nginx.pid;


events {
    use epoll;
    worker_connections  655350;
}


http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  /var/log/nginx/access.log  main;
    access_log off;
    error_log  /dev/null;
    sendfile        on;
    tcp_nopush     on;
    client_max_body_size 1024m;
    client_body_buffer_size 10m;
    client_header_buffer_size 10m;
    proxy_buffers 4 128k;
    proxy_busy_buffers_size 128k;
    open_file_cache max=102400 inactive=20s;
    #这个将为打开文件指定缓存,默认是没有启用的,max指定缓存数量,建议和打开文件数一致,inactive是指经过多长时间文件没被请求后删除缓存。
    open_file_cache_valid 30s;
    keepalive_timeout  65;

    #gzip  on;

    include /etc/nginx/conf.d/*.conf;
}

2.27oracle11g服务器

docker run -itd -p 62005:1521  -v /home/oracle/11g:/data/oracle  --name oracle11g --restart always registry.cn-hangzhou.aliyuncs.com/testdqz/testdqz:oracle11g
稍等一会 等待安装完成后进行之后操作
docker exec -it oracle11g bash
su - root         root密码:helowin
vi /etc/profile
最后加上代码:
export ORACLE_HOME=/home/oracle/app/oracle/product/11.2.0/dbhome_2
export ORACLE_SID=helowin
export PATH=$ORACLE_HOME/bin:$PATH
source /etc/profile
创建软连接:ln -s $ORACLE_HOME/bin/sqlplus /usr/bin
su - oracle
sqlplus /nolog 
conn /as sysdba;
修改密码:
alter user system identified by system;
alter user sys identified by sys;
alter profile default limit password_life_time unlimited;
创建用户:create user testdb identified by testdb;
并给用户赋予权限:grant connect,resource,dba to testdb;
用户解锁:alter user testdb account unlock;
自动增加表空间容量:
alter tablespace users add datafile '/home/oracle/app/oracle/oradata/helowin/users02.dbf' size 1024m autoextend on next 50m maxsize unlimited;
扩大共享内存:
alter system set SHARED_POOL_SIZE='150M' SCOPE=spfile;
-- 将密码有效期由默认的180天修改成“无限制”
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
shutdown immediate;
startup; 


数据库:helowin,用户名:system,密码system;用户名testdb,密码testdb

2.28oracle12c服务器

docker run -itd -p 62003:8080 -p 62004:1521 --name oracle12c registry.cn-hangzhou.aliyuncs.com/testdqz/testdqz:oracle12c
docker logs -f oracle12c  确定安装完成后执行下面操作
docker exec -it oracle12c /bin/bash
su oracle
. oraenv
ORACLE_SID = [oracle] ? xe
The Oracle base has been set to /u01/app/oracle
sqlplus / as sysdba
//create tablespace 表空间名称 datafile 表空间路劲 size 3000m;
SQL>create tablespace testdb datafile '/u01/app/oracle/oradata/xe/testdb.dbf' size 1000m;
//create user 用户名 identified by 密码 default tablespace 用户默认使用哪一个表空间;
SQL>create user testdb identified by 123456 default tablespace testdb;
//grant 角色1,角色2 to 用户名;
SQL>grant dba, connect to testdb;
-- 将密码有效期由默认的180天修改成“无限制”
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
-- 修改用户SYSTEM 密码
alter user SYSTEM identified by "123456";
-- 解锁方法
alter user SYSTEM account unlock; 
alter user TESTDB account unlock;
# 使用以下设置连接数据库:system/123456  sys/oracle  testdb/123456
hostname: 主机IP
port: 1524
sid: xe
service name: xe
username: testdb
password: 123456
web管理:http://主机IP:62003/em,需要安装flash或插件https://www.flash.cn/
user: sys
password: oracle
connect as sysdba: true

2.29瀚高数据库

docker run -dit --name=hgdb -p 62002:5866 -v /home/highgo:/home/highgo/hgdb  -e TZ="Asia/Shanghai"  -e LANG="en_US.utf8"  -e POSTGRES_HOST_AUTH_METHOD="sm3"  -e POSTGRES_PASSWORD="你设置的密码"  -e POSTGRES_INITDB_ARGS= "-e sm4 -c 'echo 12345678' -E 'UTF8'" registry.cn-hangzhou.aliyuncs.com/testdqz/testdqz:hgdb-1
docker logs -f hgdb  确定安装完成后执行下面操作
创建翰高数据库用户:
docker exec -it hgdb gosu highgo psql highgo sysdba
create user hgdb with password '你设置的密码';
create database testdb owner hgdb;
grant all privileges on database testdb to hgdb;
\q
修改翰高数据库密码有效期为365天或指定到用户具体时间:
docker exec -it hgdb gosu highgo psql highgo syssso
select set_secure_param('hg_idcheck.pwdvaliduntil','365');
alter user hgdb valid until '2099-12-31';
\q
修改用户(如hgdb)自己的密码:
docker exec -it hgdb gosu highgo psql highgo hgdb
alter user hgdb password '你设置的密码';
\q

2.30hdfs文件服务器

docker network create --subnet=172.172.172.0/24 hadoop
创建master节点
docker run -it --network=hadoop --ip 172.172.172.10 -p 2201:22 -p 8088:8088 -p 9000:9000 -p 50020:50020 -p 50010:50010 -p 50070:50070 -p 50075:50075 -p 50090:50090 -p 49707:49707 --name hadoop1 -d -h master registry.cn-hangzhou.aliyuncs.com/testdqz/testdqz:hadoop
创建slave1节点
docker run -p 2202:22 --network=hadoop --ip 172.172.172.2 --name hadoop2 -d -h slave1 registry.cn-hangzhou.aliyuncs.com/testdqz/testdqz:hadoop
创建slave2节点
docker run -p 2203:22 --network=hadoop --ip 172.172.172.3 --name hadoop3 -d -h slave2 registry.cn-hangzhou.aliyuncs.com/testdqz/testdqz:hadoop
配置ssh生成秘钥,所有的节点都要配置
docker exec -it hadoop1 bash
/etc/init.d/sshd start
ssh-keygen -t rsa
cd  /root/.ssh
cat id_rsa.pub > authorized_keys
exit
同样操作配置slave1节点
docker exec -it hadoop2 bash
/etc/init.d/sshd start
ssh-keygen -t rsa
cd /root/.ssh
cat id_rsa.pub > authorized_keys
exit
配置slave2节点
docker exec -it hadoop3 bash
/etc/init.d/sshd start
ssh-keygen -t rsa
cd /root/.ssh
cat id_rsa.pub > authorized_keys
exit
mkdir -p /home/hadoop
将容器中的公钥复制到centos本地
docker cp hadoop1:/root/.ssh/authorized_keys /home/hadoop/authorized_keys_master
docker cp hadoop2:/root/.ssh/authorized_keys /home/hadoop/slave1
docker cp hadoop3:/root/.ssh/authorized_keys /home/hadoop/slave2
将这三个公钥合并成一个文件
cd /home/hadoop
cat authorized_keys_master slave1 slave2 > authorized_keys
cat authorized_keys
将centos本地的文件复制到容器
docker cp /home/hadoop/authorized_keys hadoop1:/root/.ssh/authorized_keys
docker cp /home/hadoop/authorized_keys hadoop2:/root/.ssh/authorized_keys
docker cp /home/hadoop/authorized_keys hadoop3:/root/.ssh/authorized_keys
分别进入master、salve1、slave2容器查看ip,为每个容器设置地址,master、slave1、slave2都要配置
docker exec -it hadoop1/2/3 bash
vi /etc/hosts
172.172.172.10   master
172.172.172.2    slave1
172.172.172.3    slave2
配置hadoop(配置文件的目录一般都在/usr/local/hadoop-2.7.0/etc/hadoop下面) find / -name hadoop-env.sh
docker exec -it hadoop1 bash
cd /usr/local/hadoop-2.7.0/etc/hadoop/
bash-4.1# vi core-site.xml,加入黑体字部分
  <configuration>
      <property>
          <name>fs.defaultFS</name>
          <value>hdfs://172.172.172.10:9000</value>
      </property>
      <property>
          <name>hadoop.tmp.dir</name>
          <value>/usr/local/hadoop/hdpdata</value>
      </property>
  </configuration>
bash-4.1# vi hdfs-site.xml,加入黑体字部分
<configuration>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
<property>
        <name>dfs.client.use.datanode.hostname</name>
        <value>true</value>
</property>
<property>
        <name>dfs.namenode.name.dir</name>
        <value>/home/hadoop/hdfs/namenode</value>
        <final>true</final>
</property>
<property>
        <name>dfs.datanode.data.dir</name>
        <value>/home/hadoop/hdfs/datanode</value>
        <final>true</final>
</property>
</configuration>
bash-4.1# vi mapred-site.xml,加入黑体字部分
<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
    <property>
        <name>mapred.job.tracker</name>
        <value>172.172.172.10:9000</value>
    </property>
</configuration>
bash-4.1# vi yarn-site.xml,加入黑体字部分
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>172.172.172.10</value>
    </property>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
scp /usr/local/hadoop-2.7.0/etc/hadoop/core-site.xml slave1:/usr/local/hadoop-2.7.0/etc/hadoop/
scp /usr/local/hadoop-2.7.0/etc/hadoop/core-site.xml slave2:/usr/local/hadoop-2.7.0/etc/hadoop/
scp /usr/local/hadoop-2.7.0/etc/hadoop/hdfs-site.xml slave1:/usr/local/hadoop-2.7.0/etc/hadoop/
scp /usr/local/hadoop-2.7.0/etc/hadoop/hdfs-site.xml slave2:/usr/local/hadoop-2.7.0/etc/hadoop/
scp /usr/local/hadoop-2.7.0/etc/hadoop/mapred-site.xml slave1:/usr/local/hadoop-2.7.0/etc/hadoop/
scp /usr/local/hadoop-2.7.0/etc/hadoop/mapred-site.xml slave2:/usr/local/hadoop-2.7.0/etc/hadoop/
scp /usr/local/hadoop-2.7.0/etc/hadoop/yarn-site.xml slave1:/usr/local/hadoop-2.7.0/etc/hadoop/
scp /usr/local/hadoop-2.7.0/etc/hadoop/yarn-site.xml slave2:/usr/local/hadoop-2.7.0/etc/hadoop/

在master上格式化namenode
docker exec -it hadoop1 bash
cd /usr/local/hadoop-2.7.0/bin/
./hadoop namenode -format 
在master上启动集群
cd /usr/local/hadoop-2.7.0/sbin/
./stop-all.sh
./start-all.sh
浏览器访问:http://主机IP:50070/

vi /etc/profile
#hadoop
export HADOOP_HOME=/usr/local/hadoop
export LD_LIBRARY_PATH=$HADOOP_HOME/lib/native
export PATH=:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
刷新配置文件
source /etc/profile
创建一个文件夹
hdfs文件服务器操作均在master容器操作:
docker exec -it hadoop1 bash
hdfs dfs -mkdir -p /home/test1
hdfs dfs  -put 上传  将本路径下的文件上传到hdfs服务器
hdfs dfs  -put a.txt /home/test1
hdfs dfs  -chmod 777 /home/test1/a.txt  给hdfs服务器文件权限
hdfs dfs  -ls /home/test1   查看hdfs服务器资源
hdfs dfs -get  下载    从hdfs上下载文件到linux上
hdfs dfs -get /home/test1/a.txt /opt
hdfs服务器信息:服务器类型:hdfs
ip:主机ip     端口:9000
用户名:主机用户(root),密码:主机密码

2.30mail邮件服务器

创建文件夹并进入/home/mailserver
mkdir -p /home/mailserver
cd /home/mailserver
编辑文件加入如下内容vi docker-compose.yml,删除红字
version: '3'
services:
  mail:
    image: registry.cn-hangzhou.aliyuncs.com/testdqz/testdqz:mail2(前面有个空格)
    hostname: mx.example.com
    container_name: extmail
    ports:
    - "64025:25"(SMTP:64025)
    - "64110:110"(POP3:64110)
    - "64143:143"(IMAP:64143)
    - "64080:80"(管理界面端口:64080) 
    privileged: true
    environment:
      EXTMAIL_LANG: en_US
    volumes:
    - ./data/mail/vmail:/home/domains
    - ./data/mail/database:/var/lib/mysql/extmail
执行命令docker-compose up -d
访问地址:
http://主机ip:64080/extman  网页管理端  账号:root@extmail.org 密码:extmail*123*

2.31神通V7数据

由于神通数据库非开源软件,存在证书过期的问题,可以通过修改系统时间绕过
修改系统时间
date -s "2020-10-01 16:00:00"
安装数据库服务
docker run -it -d -p 62403:2003 --name oscar -v /home/Docker/oscar/db-logs:/opt/ShenTong/log -v /home/Docker/oscar/dbs:/opt/ShenTong/odbs registry.cn-hangzhou.aliyuncs.com/testdqz/testdqz:oscar

数据库信息
端口:62403       数据库:OSRDB
用户名:SYSDBA  密码:szoscar55

数据库安装完成后,时间变回当前时间后不重启数据库不会出错,重启数据库依然会报错,可以修改为之前的时间date -s "2020-10-01 16:00:00",重启数据库即可

2.32禅道

docker run -itd --name zentao -p 60080:80 -v /home/Docker/zentao/www/zentaopms:/www/zentaopms -v /home/Docker/zentao/www/mysqldata:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d registry.cn-hangzhou.aliyuncs.com/testdqz/testdqz:zentao

访问http://主机IP:60080/install.php进行安装
管理端地址: http://主机IP:60080

2.33db2-11服务器

docker run -d -p 60000:50000 --name db2-11 --privileged=true -e DB2INSTANCE=test -e DB2INST1_PASSWORD=123456 -e DBNAME=testdb -e LICENSE=accept registry.cn-hangzhou.aliyuncs.com/testdqz/testdqz:db2-11
安装过程比较慢,可以看一下安装日志:docker logs -f db2-11

数据库信息:
用户名test  密码123456 数据库testdb 端口60000
--DB2插入100w条数据时报错The transaction log for the database is full.. 
原因:DB2的所有数据库操作都会记录日志,插入100w条数据的日志太大,默认的日志大小只有1k,所以执行sql时报错,需要修改日志上限
解决方法:
	1)进到数据库服务器并切换到数据库用户
	   docker exec -it db2-11 sh -c "su - test"
	2) 查看日志文件大小限制
	     db2 get db cfg for testdb | grep LOGFILSIZ
	3) 更新db2日志上限大小
	     db2 update db cfg for testdb using LOGFILSIZ 102400
	4)停止db2
	   db2 stop force
	5)启动db2
	   db2 start
密码过期后客户端无法连接db2数据库,只需要更新数据库密码即可,每次更新为初始的密码123456
进入容器:docker exec -it db2-11 /bin/bash
重置密码:passwd test,两次输入123456即可

2.34sqlserver2017服务器

docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=12345678@qQ" -p 61433:1433 --name sqlserver2017 -d registry.cn-hangzhou.aliyuncs.com/testdqz/testdqz:sqlserver2017
建表中文
docker exec -it sqlserver2017 /bin/bash
/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P "你设置的密码"
CREATE DATABASE test2 COLLATE Chinese_PRC_CI_AS
go


数据库信息:
端口61433、用户名sa、密码:"你设置的密码"、数据库test2
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
使用Docker搭建博客是一种方便快捷的方式。下面是一些步骤和解释: 1. 安装Docker:首先需要在服务器上安装Docker。可以根据操作系统类型和版本,按照官方文档中的指引进行安装。 2. 获取博客镜像:在Docker Hub上可以找到各种博客平台的镜像,比如WordPress、Ghost等。可以选择一个合适的镜像,并且拉取到本地。 3. 配置博客容器:创建一个容器,并将博客镜像运行在该容器中。可以通过Docker命令行或者使用Docker Compose来完成配置工作。 4. 设置环境变量:在配置容器时,可能需要设置一些环境变量,如数据库连接字符串、用户名、密码等信息。这些环境变量将被用于在容器内部配置和初始化博客。 5. 映射端口:在启动容器时,可以将容器内的某个端口映射到服务器上的一个端口。这样,通过访问服务器的IP地址和映射端口,即可访问博客网站。 6. 配置数据卷:为了保证博客数据的持久化,可以配置Docker数据卷,将容器内的数据保存在宿主机上的指定路径。这样即使容器重启或删除,数据仍然保留。 7. 配置反向代理:为了实现多个服务共存或者设置HTTPS等高级功能,可以使用反向代理服务器,如Nginx,将请求转发到博客容器。 通过以上步骤,就可以在服务器上使用Docker搭建博客。使用Docker可以快速部署、管理和迁移博客环境,同时还能提高资源利用率和安全性。无论是个人博客还是企业网站,使用Docker都是一个不错的选择。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值