1. docker 部署nginx
- 查找镜像: docker search nginx
- 下载镜像: docker pull nginx
- 登入镜像内部查看配置文件路径: docker run --rm -it nginx /bin/bash (/etc/nginx/..)
docker ps 查看对应的容器id 比如是: 83f6d53c4194 - 把配置文件拷贝到宿主机(不需要提前建好目录):
### 没有目录会先生成conf目录,然后把nginx目录下的文件和目录直接考的conf目录 docker cp 83f6d53c4194:/etc/nginx /etc/nginx /data/instrument/nginx/conf/ rm -rf /data/instrument/nginx/conf/modules ### conf目录已经存在 把modules目录及子文件一起考到conf目录 docker cp 83f6d53c4194:/usr/lib/nginx/modules /data/instrument/nginx/conf/
- 新建日志目录和静态资源部署目录:
mkdir /data/instrument/nginx/logs /data/instrument/nginx/static-file - 启动nginx服务:
/usr/bin/docker run --network=john-net -p 81:80 -v /data/instrument/nginx/conf:/etc/nginx \
-v /data/instrument/nginx/static-file:/usr/share/nginx/html \
-v /data/instrument/nginx/logs:/var/log/nginx \
--privileged=true \
--name docker-nginx -d nginx
--privileged 使container内的root拥有真正的root权限,--net host(主机网络) 配置端口映射(-p) 不生效,外网直接用80端口就可以访问 - 浏览器查看nginx服务是否启动: http://外网ip:81/
2. docker 部署redis
- 查找镜像: docker search redis
- 下载镜像: docker pull redis
- 登入镜像内部查看配置文件路径: docker run --rm -it redis /bin/bash (未找到)
自行解决找一个redis.conf demo文件,我的文件路径是/data/instrument/redis/conf/redis.conf,redis详细配置参考 中间件系列_单机搭建redis-cluster集群
快速配置如下:
bind 0.0.0.0
prot 7000
dir ./ ###对应redis容器里的绝对路径是 /data,也可以直接用绝对路径,足以 "/" 前面的"." 这是个相对路径
requirepass admin
logfile "/var/log/redis-access.log" - 新建日志目录和redis数据存放目录:
mkdir /data/instrument/redis/logs /data/instrument/redis/data - 启动redis服务:
/usr/bin/docker run --network=john-net -p 7000:7000 -v /data/instrument/redis/conf/redis.conf:/etc/redis/redis.conf \
-v /data/instrument/redis/data:/data \
-v /data/instrument/redis/logs/redis-access.log:/var/log/redis-access.log \
--privileged=true \
--name docker-redis -d redis redis-server /etc/redis/redis.conf - 用 redis desktop manager 测试redis:
2. docker 部署rabbitmq
- 查找镜像: docker search rabbitmq
- 下载镜像: docker pull rabbitmq:management
rabbitmq:management 包含管理界面的版本,默认latest不包含管理界面 - 登入镜像内部查看配置文件路径: docker run --rm -it rabbitmq:management /bin/bash (只找到enabled_plugins配置了rabbitmq_management,rabbitmq_prometheus插件)
rabbitmq参考配置,我的文件路径是/data/instrument/rabbitmq/conf/rabbitmq.conf
快速配置如下:
listeners.tcp.default = 7001
default_user = admin
default_pass = admin
management.tcp.port = 9000
添加环境配置文件 /data/instrument/rabbitmq/conf/rabbitmq-env.conf 内容如下
RABBITMQ_LOG_BASE=/var/log/rabbitmq
RABBITMQ_MNESIA_BASE=/var/lib/rabbitmq/mnesia
添加插件配置文件 /data/instrument/rabbitmq/conf/enabled_plugins 内容如下
[rbbitmq_federation_management,rabbitmq_management,rabbitmq_mqtt,rabbitmq_stomp]. - 新建日志目录和rabbitmq数据存放目录:
mkdir /data/instrument/rabbitmq/logs /data/instrument/rabbitmq/mnesia - 启动rabbitmq服务:
/usr/bin/docker run --net host -v /data/instrument/rabbitmq/conf/rabbitmq.conf:/etc/rabbitmq/rabbitmq.conf \
-v /data/instrument/rabbitmq/conf/enabled_plugins:/etc/rabbitmq/enabled_plugins \
-v /data/instrument/rabbitmq/conf/rabbitmq-env.conf:/etc/rabbitmq/rabbitmq-env.conf \
-v /data/instrument/rabbitmq/mnesia:/var/lib/rabbitmq/mnesia \
-v /data/instrument/rabbitmq/logs:/var/log/rabbitmq/log \
--privileged=true \
--name docker-rabbitmq -d rabbitmq:management
--net host 等价于 --network=john-net -p 9000:9000 -p 7001:7001
主机网络外网可以直接访问,自定义桥接网络外网访问不了,需要加端口映射 - 浏览器登录管理rabbitmq管理界面验证 http://外网ip:9000/