Docker安装一些常用软件(更新中!)
如果有防火墙,请自行打开,避免找了半天BUG( ╯□╰ )
一、安装MySQL8.0.22
拉取mysql
新建目录
mkdir -p /data/mysql/data mkdir -p /data/mysql/conf mkdir -p /data/mysql/log
|
编写配置文件(日后待补充)
vim /data/mysql/conf/my.cnf # 添加以下内容 [mysqld] init-connect="SET collation_connection=utf8mb4_0900_ai_ci" init_connect="SET NAMES utf8mb4" skip-character-set-client-handshake
|
执行脚本
docker run \ --name mysql8 \ -v /data/mysql/log:/var/log/mysql \ -v /data/mysql/data:/var/lib/mysql \ -v /data/mysql/conf:/etc/mysql/conf.d \ -p 3306:3306 \ -e MYSQL_ROOT_PASSWORD=123456 \ -d mysql:8.0.22
# 设置开机自启 docker update --restart=always 容器ID
|
二、安装Redis6.2.12
拉取redis
新建目录
mkdir -p /data/redis/conf mkdir -p /data/redis/data
|
拷贝配置文件
从网上下载对应版本的redis.conf配置文件,拷贝配置文件到/data/redis/conf目录下
下载地址
修改redis.conf
# 找到以下内容,进行修改 bind 0.0.0.0 #运行外部访问 daemonize no #这里一定要改成no,不要以守护线程模式运行,要不然容器在启动一瞬间就会ti requirepass 你的密码 #给redis设置密码(不建议0开头) appendonly yes #redis持久化 默认是no tcp-keepalive 300 #防止出现远程主机强迫关闭了一个现有的连接的错误 默认是300
|
执行脚本
docker run \ --name redis6 \ -p 6379:6379 \ -v /data/redis/data:/data \ -v /data/redis/conf/redis.conf:/etc/redis/redis.conf \ -d redis:6.2.12 \ redis-server /etc/redis/redis.conf
# 设置开机自启 docker update --restart=always 容器ID
|
三、安装RabbitMQ3.9.4
拉取rabbitmq
docker pull rabbitmq:3.10.24
|
新建目录
mkdir -p /data/rabbitmq/data mkdir -p /data/rabbitmq/plugins
|
执行脚本
docker run \ --name rabbitmq \ -p 5672:5672 \ -p 15672:15672 \ -v /data/rabbitmq/data:/var/lib/rabbitmq \ --hostname MasterRabbit \ -e RABBITMQ_DEFAULT_VHOST=master \ -e RABBITMQ_DEFAULT_USER=admin \ -e RABBITMQ_DEFAULT_PASS=123456 \ -d rabbitmq:3.10.24
# 添加网页管理端插件 docker exec -it rabbitmq rabbitmq-plugins enable rabbitmq_management
# 设置开机自启 docker update --restart=always 容器ID
|
添加延迟队列插件
# 插件下载地址:https://github.com/rabbitmq/rabbitmq-delayed-message-exchange/releases # 一定要下载对应版本的 # 将下载好的插件拷贝到/data/rabbitmq目录下 # 将插件拷贝到容器内部 docker cp /data/rabbitmq/插件名称 rabbitmq容器id:/plugins # 进入容器内,安装插件 docker exec -it rabbitmq容器id bash cd plugins rabbitmq-plugins enable rabbitmq_delayed_message_exchange # 退出容器,重启 docker restart rabbitmq容器id
|
四、安装Nginx
拉取nginx
创建目录
mkdir -p /data/nginx/html mkdir -p /data/nginx/conf mkdir -p /data/nginx/log
|
拷贝文件
# 生成容器 docker run --name nginx -p 80:80 -d nginx:stable # 将容器nginx.conf文件复制到宿主机 docker cp nginx:/etc/nginx/nginx.conf /data/nginx/conf/nginx.conf # 将容器conf.d文件夹下内容复制到宿主机 docker cp nginx:/etc/nginx/conf.d /data/nginx/conf/conf.d # 将容器中的html文件夹复制到宿主机 docker cp nginx:/usr/share/nginx/html /data/nginx/
|
删除容器
docker stop nginx容器id docker rm nginx容器id
|
执行脚本
docker run \ --name nginx \ -p 80:80 \ -v /data/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \ -v /data/nginx/conf/conf.d:/etc/nginx/conf.d \ -v /data/nginx/log:/var/log/nginx \ -v /data/nginx/html:/usr/share/nginx/html \ -d nginx:stable
# 设置开机自启 docker update --restart=always 容器ID
|
(以下可选*)配置SSL
配置SSL需要更改执行脚本
# 脚本改为(主要是多监听一个443端口) docker run \ --name nginx \ -p 80:80 \ -p 443:443 \ -v /data/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \ -v /data/nginx/conf/conf.d:/etc/nginx/conf.d \ -v /data/nginx/log:/var/log/nginx \ -v /data/nginx/html:/usr/share/nginx/html \ -d nginx:stable
|
配置相关信息
# 下载SSL文件 # 在/data/nginx/conf/conf.d目录下创建cert文件夹 # 将xxx.pem与xxx.key文件拷贝进去 # 修改con.d目录下的default.conf
|
# 监听端口 listen 443; listen [::]:443; # 你的域名 server_name tengfei.tech;
#ssl配置 ssl on; # pem与key文件位置,相对于conf目录 ssl_certificate conf.d/cert/tengfei.tech.pem; ssl_certificate_key conf.d/cert/tengfei.tech.key;
ssl_session_cache shared:SSL:1m; ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
|
- 增加一个server,用于在访问80端口时重定向到443端口(在第一个server下方添加一个server)
# 用于将http都从定向到https server { listen 80; #填写证书绑定的域名 server_name tengfei.tech; #将所有HTTP请求通过rewrite指令重定向到HTTPS。 rewrite ^(.*)$ https://$host$1; location / { index index.html index.htm; } }
|
五、安装Nacos2.1.2
拉取nacos
docker pull nacos/nacos-server:v2.1.2
|
创建目录
mkdir -p /data/nacos/logs mkdir -p /data/nacos/conf # 创建配置文件,写入配置 touch /data/nacos/conf/application.properties # 写入以下配置
|
server.contextPath=/nacos server.servlet.contextPath=/nacos server.port=8848
spring.datasource.platform=mysql db.num=1 db.url.0=jdbc:mysql://127.0.0.1:3306/nacos_config?serverTimezone=Asia/Shanghai&characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true #这里需要修改端口 db.user=root db.password=123456
nacos.core.auth.system.type=nacos nacos.core.auth.enabled=true nacos.core.auth.plugin.nacos.token.secret.key=SecretKey012345678901234567890123456789012345678901234567890123456789 nacos.core.auth.server.identity.key=example nacos.core.auth.server.identity.value=example
|
导入SQL(如果不使用MySQL的话这步可以忽略)
# 找到nacos-config.sql文件,导入到外部mysql中 # nacos-config.sql在nacos的github仓库有下载
|
执行脚本
docker run \ --name nacos \ -p 8848:8848 \ -p 9848:9848 -p 9849:9849 --privileged=true \ --restart=always \ -e JVM_XMS=256m \ -e JVM_XMX=256m \ -e MODE=standalone \ -e PREFER_HOST_MODE=hostname \ -v /data/nacos/logs:/home/nacos/logs \ -v /data/nacos/conf/application.properties:/home/nacos/conf/application.properties \ -d nacos/nacos-server:v2.1.2
# 设置开机自启 docker update --restart=always 容器ID
|
访问
ip:8848/nacos # 账号密码 nacos nacos
|
六、安装MongoDB5.0.5
拉取镜像
docker pull mongo:5.0.15-focal
|
创建目录
mkdir -p /data/mongo/data mkdir -p /data/mongo/conf mkdir -p /data/mongo/logs mkdir -p /data/mongo/configdb
|
编写配置文件
# 在/data/mongo/conf目录下创建mongod.conf # 写入以下部分,除了net部分更改,其它部分不用更改
|
storage: dbPath: /var/lib/mongodb journal: enabled: true
systemLog: destination: file logAppend: true path: /var/log/mongodb/mongod.log
net: bindIp: 0.0.0.0 port: 27017
processManagement: timeZoneInfo: /usr/share/zoneinfo
|
执行脚本
docker run \ --name mongo51 \ -p 27017:27017 \ -v /data/mongo/data:/data/db \ -v /data/mongo/conf/mongod.conf:/etc/mongod.conf.orig \ -v /data/mongo/logs:/var/log/mongodb \ -v /data/mongo/configdb:/data/configdb \ -e MONGO_INITDB_ROOT_USERNAME=root \ -e MONGO_INITDB_ROOT_PASSWORD=123456 \ --privileged=true \ --restart=always \ -d mongo:5.0.15-focal \ --replSet rs0
# 设置开机自启 docker update --restart=always 容器ID
|
七、安装Minio2023-03-22
拉取镜像
docker pull minio/minio:RELEASE.2023-03-22T06-36-24Z
|
创建目录
docker run \ --name minio \ -p 9000:9000 \ -p 9090:9090 \ --restart=always \ -e "MINIO_ACCESS_KEY=admin" \ -e "MINIO_SECRET_KEY=12345678" \ -v /data/minio/data:/data \ -v /data/minio/conf:/root/.minio \ -d minio/minio:RELEASE.2023-03-22T06-36-24Z \ server data --console-address ":9090" -address ":9000"
|