安装redis
-
执行
docker pull redis
拉取redis镜像,默认拉取最新镜像。
可以先使用docker search redis
搜索镜像
如果需要指定版本则使用docker pull redis:version
version是版本号如指定5.0 -
在本机内存上找个文件夹,创建以下文件:
mkdir /Users/qingfan/App/docker_data/redis/data #创建存放后续数据的文件 touch /Users/qingfan/App/docker_data/redis/redis.conf #创建配置文件
-
在redis.conf文件中添加
# Redis配置文件 # Redis默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启用守护进程 daemonize no # 指定Redis监听端口,默认端口为6379 port 6379 # 绑定的主机地址,不要绑定容器的本地127.0.0.1地址,因为这样就无法在容器外部访问 bind 0.0.0.0 # 持久化 appendonly yes
-
终端执行启动命令,启动容器
docker run -p 6379:6379 \ -v /Users/qingfan/App/docker_data/redis/redis.conf:/etc/redis/redis.conf \ -v /Users/qingfan/App/docker_data/redis/data:/etc/redis/data \ -v /Users/qingfan/App/docker_data/redis/logs:/etc/redis/logs \ --restart=always \ --name redis7 \ -d redis:latest \ redis-server /etc/redis/redis.conf
参数解释:
-p :指定端口号
-name:容器名
-v:挂载数据文件,将容器中的文件挂载到本机内存上
-d:后台启动
redis-server:在容器执行redis-server启动命令,执行conf文件
–restart=always:容器跟随docker启动而启动 -
使用
docker ps
查看刚刚启动的redis容器 -
因为开启了持久化,且将数据文件挂载到了本地
可以在data目录中看到,容器启动后,自动生成了持久化文件
-
执行
docker exec -it 容器id /bin/bash
进入容器
安装Mongo
一样的套路
-
执行
docker pull mongo
拉取mongo镜像,默认拉取最新镜像。 -
在本机内存上找个文件夹,创建以下文件:
mkdir /Users/qingfan/App/docker_data/mongo/data/ #创建存放后续数据的文件 mkdir /Users/qingfan/App/docker_data/mongo/conf/ #创建存放配置文件的目录 touch /Users/qingfan/App/docker_data/mongo/conf/mongo.conf #创建配置文件 mkdir /Users/qingfan/App/docker_data/mongo/log #创建日志目录
-
在mongo.conf文件中添加
#端口 port=27017 #数据库文件存放目录 dbpath=/data/mongo/data #日志文件存放路径 logpath=/data/mongo/log #使用追加方式写日志 logappend=true #以守护线程的方式运行,创建服务器进程 fork=true #最大同时连接数 maxConns=100 #不启用验证 #noauth=true #每次写入会记录一条操作日志 journal=true #存储引擎有mmapv1、wiredTiger、mongorocks storageEngine=wiredTiger #访问IP bind_ip=0.0.0.0 #用户验证 #auth=true
-
终端执行启动命令,启动容器
docker run --restart=always --name mongodb -p 27017:27017 \ -v /Users/qingfan/App/docker_data/mongo/data:/data/db \ -v /Users/qingfan/App/docker_data/mongo/conf:/data/conf \ -v /Users/qingfan/App/docker_data/mongo/log:/var/log/mongodb \ -d mongo
参数解释:
-p :映射端口 27017 物理主机
-name:容器名
-v:挂载数据文件,将容器中的文件挂载到本机内存上
-d:后台启动
–privileged=true:使得容器内的root拥有真正的root权限
–restart=always:容器跟随docker启动而启动 -
使用
docker ps
查看刚刚启动的mongo容器
-
执行
docker exec -it 容器id /bin/bash
进入容器 -
输入mongo命令进入mongo命令行,创建用户
#使用admin数据库 use admin #查看有所有数据库--新建容器的话,应该为空 show dbs #创建超级用户 use admin #admin这个数据库是系统自带的数据库,他的用户可以访问任何其他数据库的数据,也叫做超级管理员 db.createUser({user:"用户名",pwd:"密码",roles:["root"]}) # 可验证一下: 1 表示验证通过 0表示验证失败 db.auth("admin","password") # 创建普通用户 # use 你的库 # 例如: use student db.createUser({user: "用户名", pwd: "密码", roles: [{ role: "readWrite", db: "student" }]})
安装Nginx
-
执行
docker pull nginx
拉取nginx镜像,默认拉取最新镜像 -
在本机内存上找个文件夹,创建以下文件:
# 创建挂载目录 mkdir -p /Users/qingfan/App/docker_data/nginx/conf mkdir -p /Users/qingfan/App/docker_data/nginx/log mkdir -p /Users/qingfan/App/docker_data/nginx/html
-
先执行
docker run --name nginx -p 9001:80 -d nginx
生成容器#依次执行下面命令,拷贝对应的文件到本地上 docker cp nginx:/etc/nginx/nginx.conf /Users/qingfan/App/docker_data/nginx/conf docker cp nginx:/etc/nginx/conf.d /Users/qingfan/App/docker_data/nginx/conf docker cp nginx:/usr/share/nginx/html /Users/qingfan/App/docker_data/nginx
-
在nginx.conf文件中添加
#user nobody; worker_processes 1; #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; #access_log logs/access.log main; sendfile on; #tcp_nopush on; #keepalive_timeout 0; keepalive_timeout 65; #gzip on; server { listen 7070; server_name localhost; #charset koi8-r; #access_log logs/host.access.log main; location / { root html; index index.html index.htm; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } server { listen 9001; server_name localhost; location ~ /hosp/ { proxy_pass http://localhost:8201; } location ~ /cmn/ { proxy_pass http://localhost:8202; } } include servers/*; }
-
停止并删除nginx容器
# 直接执行docker rm nginx或者以容器id方式关闭容器 # 找到nginx对应的容器id docker ps -a # 关闭该容器 docker stop nginx # 删除该容器 docker rm nginx # 删除正在运行的nginx容器 docker rm -f nginx
-
再次在终端执行启动命令,启动容器
docker run \ -p 9002:80 \ --name nginx \ -v /Users/qingfan/App/docker_data/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \ -v /Users/qingfan/App/docker_data/nginx/conf/conf.d:/etc/nginx/conf.d \ -v /Users/qingfan/App/docker_data/nginx/log:/var/log/nginx \ -v /Users/qingfan/App/docker_data/nginx/html:/usr/share/nginx/html \ --restart=always -d nginx:latest
参数解释:
-p :使容器的80端口映射到主机的9002端口
-name:容器名
-v:挂载数据文件,将容器中的文件挂载到本机内存上
-d:后台启动
–restart=always:容器跟随docker启动而启动 -
使用
docker ps
查看刚刚启动的redis容器
-
执行
docker exec -it 容器id /bin/bash
进入容器
安装Nacos
-
拉取镜像
#直接拉取最新版本 docker pull nacos/nacos-server:latest # 注意 我这里是m1芯片,需要使用 docker pull zhusaidong/nacos-server-m1:2.0.3
-
本地创建挂载数据目录
# 创建 nacos 配置存放目录 mkdir -p /Users/qingfan/App/docker_data/nacos/conf # 创建 nacos 日志存放目录 mkdir -p /Users/qingfan/App/docker_data/nacos/logs # 创建 nacos 数据存放目录 mkdir -p /Users/qingfan/App/docker_data/nacos/data
-
在本地conf目录下创建nacos-logback.xml
添加以下代码:<?xml version="1.0" encoding="UTF-8"?> <configuration debug="false" scan="true" scanPeriod="1 seconds"> <contextName>logback</contextName> <property name="log.path" value="/home/nacos/logs/logback.log" /> <appender name="console" class="ch.qos.logback.core.ConsoleAppender"> <!-- <filter class="com.example.logback.filter.MyFilter" /> --> <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> <level>ERROR</level> </filter> <encoder> <pattern>%d{HH:mm:ss.SSS} %contextName [%thread] %-5level %logger{36} - %msg%n </pattern> </encoder> </appender> <appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>${log.path}</file> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>${log.path}.%d{yyyy-MM-dd}.zip</fileNamePattern> </rollingPolicy> <encoder> <pattern>%date %level [%thread] %logger{36} [%file : %line] %msg%n </pattern> </encoder> </appender> <root level="debug"> <appender-ref ref="console" /> <appender-ref ref="file" /> </root> <logger name="com.example.logback" level="warn" /> </configuration>
-
启动容器
注意:我这里是m1芯片的启动命令
简单启动:docker run --env MODE=standalone --name nacos2.0.3 -d -p 8848:8848 zhusaidong/nacos-server-m1:2.0.3
挂载数据卷启动:
docker run -d -p 8848:8848 --restart=always \ --name nacos2.0.3 \ --env MODE=standalone \ -v /Users/qingfan/App/docker_data/nacos/conf:/home/nacos/conf \ -v /Users/qingfan/App/docker_data/nacos/logs:/home/nacos/logs \ -v /Users/qingfan/App/docker_data/nacos/data:/home/nacos/data \ zhusaidong/nacos-server-m1:2.0.3
mac正常版本:
docker run -p 8848:8848 --restart=always \ --name nacos \ --env MODE=standalone \ -v /Users/qingfan/App/docker_data/nacos/conf:/home/nacos/conf \ -v /Users/qingfan/App/docker_data/nacos/logs:/home/nacos/logs \ -v /Users/qingfan/App/docker_data/nacos/data:/home/nacos/data \ -d nacos/nacos-server
-
访问
http://localhost:8848/nacos
,用户名和密码都是nacos
安装RabbitMQ
-
docker命令拉取镜像
#搜索是否已经拉取过镜像 docker search rabbit:management #拉取最新镜像 docker pull rabbitmq:management #查看镜像 docker image
注意:如果docker pull rabbitmq 后面不带management, 启动rabbitmq后是无法打开管理界面的,所有我们要下载带management插件的rabbitmq。
-
启动rmq容器
docker run -d --name rabbitmq --restart=always \
--publish 5671:5671 --publish 5672:5672 \
--publish 4369:4369 --publish 25672:25672 --publish 15671:15671 \
--publish 15672:15672 rabbitmq:management
- 访问管理页面
地址: http://【IP】:15672/ 默认账号和密码都是:guest