持续更新,Docker部署常用应用

1、Docker部署EMQX

EMQX 开源版本

获取 Docker 镜像
docker pull emqx/emqx:5.4.1

启动 Docker 容器
docker run -d --name emqx -p 1883:1883 -p 8083:8083 -p 8084:8084 -p 8883:8883 -p 18083:18083 emqx/emqx:5.4.1

EMQX文档

通过浏览器访问 http://localhost:18083/(localhost 可替换为您的实际 IP 地址)
以访问 EMQX Dashboard 管理控制台,进行设备连接与相关指标监控管理。
默认用户名及密码:admin       public

2、Docker 部署redis并连接

docker pull redis   # 拉取镜像
# 指定端口后台运行,将容器的6379端口映射到本地机器的6379端口。
# 这样,在本地机器上就可以通过6379端口连接到Redis容器了
docker run -d --name myredis -p 6379:6379 redis  

docker exec -it myredis redis-cli  # 连接到Redis容器的命令行工具

# 参考
docker run -p 6379:6379 --name redis1 --privileged=true \
-v /app/redis/redis.conf:/etc/redis/redis.conf \
-v /app/redis/data:/data -d redis:6.0.8 \
redis-server /etc/redis/redis.conf

说明:-p 6379:6379配置的端口号; redis.conf配置文件示例:redis1是我起的本容器实例名字;
使用了容器卷所以/app/redis/redis.conf和/app/redis/data是宿主机的绝对路径,
/etc/redis/redis.conf和/data是redis1容器实例的绝对路径;
redis-server /etc/redis/redis.conf使他启动时就加载此配置文件;
综上就完成了容器卷对容器实例配置和数据的持久化,即使容器被删掉,数据仍然保存在宿主机中。

3、docker安装mysql

docker pull mysql:5.7 
# 保存下载好的镜像成tar (非必要)
docker save imageid > mysql5.7

mkdir -p /home/app/mysql/data /home/app/mysql/logs /home/app/mysql/conf
docker run --name mysql -p 3306:3306 -v /home/app/mysql/data:/var/lib/mysql -v /home/app/mysql/conf:/etc/mysql/conf.d -v /home/app/mysql/logs:/var/log/mysql -e MYSQL_ROOT_PASSWORD=123456 -d eef0fab001e8(镜像ID)

说明:
-p 3306:3306 :端口映射,将宿主机3306端口与容器3306端口做映射
格式:-p 宿主机端口:容器端口

–name mysql : 指定容器名字为mysql,也可以不指定,不指定没有容器名字

数据容器卷挂载
-v /home/app/mysql/data:/var/lib/mysql :对宿主机数据库目录与容器数据库目录进行映射挂载
-v /home/app/mysql/conf:/etc/mysql/conf.d:对宿主机数据库配置文件与容器数据库配置文件进行映射挂载
-v /home/app/mysql/logs:/var/log/mysql:对宿主机数据库日志与容器数据库日志进行映射挂载
-e MYSQL_ROOT_PASSWORD=123456 :配置mysql的root账号的密码为123456(可以根据需要自行修改密码)
-d:后台执行
eef0fab001e8 :镜像id,容器第一次启动要根据镜像来启动,所以镜像id必不可少。可以通过命令docker iamges查看镜像id

Docker初始化数据库(非必要,按需配置)

docker exec -it eef0fab001e8(容器ID) bin/bash
apt-get update
apt-get install vim
修改mysql的配置
vi /etc/my.cnf

character-set-server=utf8
max_connections = 5000
log_bin_trust_function_creators=1
lower_case_table_names = 1
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
transaction_isolation = READ-COMMITTED
group_concat_max_len = 102400 


docker exec -it eef0fab001e8(容器ID) bin/bash  # 进入mysql容器
mysql -uroot -p123456  # 输入用户名秘密后即可对mysql数据库操作

参考:Docker 安装mysql5.7镜像(含离线安装),启动mysql镜像并初始化数据库

4、Docker 部署mosquitto

1、拉取镜像
docker pull eclipse-mosquitto
2、建立相关目录
mkdir -p /mosquitto/config
mkdir -p /mosquitto/data
mkdir -p /mosquitto/log
3、建立配置文件
vi /mosquitto/config/mosquitto.conf
添加如下内容
persistence true
persistence_location /mosquitto/data
log_dest file /mosquitto/log/mosquitto.log
listener 9001
port 1883
allow_anonymous true
4、为目录授权(可选)
chmod -R 755 /mosquitto
chmod -R 777 /mosquitto/log #日志目录要最大权限
5、执行如下命令启动mosquitto(将如下命令放在一行内执行)
docker run -it --name=mosquitto --privileged
-p 1883:1883 -p 9001:9001 
-v /mosquitto/config/mosquitto.conf:/mosquitto/config/mosquitto.conf  
-v /mosquitto/data:/mosquitto/data 
-v /mosquitto/log:/mosquitto/log 
-d  eclipse-mosquitto 

如果想配置用户名密码

1、修在上面第四步
在/mosquitto/config/mosquitto.conf文件下添加:
allow_anonymous false  #关闭匿名模式
password_file /mosquitto/config/pwfile.conf #指定密码文件
2、进入容器
docker exec -it CONTAINER ID (容器Id) sh
3、生成密码
touch /mosquitto/config/pwfile.conf
chmod -R 755 /mosquitto/config/pwfile.conf
4、使用mosquitto_passwd命令创建用户,第一个admin是用户名,第二个mosquitto是密码。
mosquitto_passwd -b /mosquitto/config/pwfile.conf admin mosquitto
5、重启mqtt服务
docker restart CONTAINER ID

参考1
参考2

5、Docker 部署 rabbitmq

docker pull rabbitmq:management
docker run -dit --name rabbitmq -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=admin -p 15672:15672 -p 5672:5672 rabbitmq:managemen

# 15672是管理界面的端口,5672是服务的端口。这里顺便将管理系统的用户名和密码设置为admin admin 默认账号和密码是guest guest

打开浏览器访问web界面: 输入 http://IP地址:15672 账号密码admin
参考链接

  • 8
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
使用Docker部署web应用有许多好处。首先,Docker提供了持续集成的优势,通过使用Docker容器,开发人员可以快速构建、测试和部署应用程序,提高了开发效率。其次,Docker可以实现版本控制,使得应用程序的管理更加灵活和可靠。同时,Docker还具有很强的可移植性,即使在不同的环境中部署应用程序,也可以保持一致的运行效果。此外,Docker容器之间具有隔离性,不同的容器互相独立,这样可以确保应用程序之间的安全性和稳定性。最后,Docker还提供了安全性方面的保障,可以限制容器的访问权限,防止潜在的安全风险。总之,通过使用Docker部署web应用,可以提高开发效率、简化管理、增强可移植性、加强隔离性和提供额外的安全保障。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Docker 入门 到部署Web 程序- (阿里面试常用docker命令和优点)](https://blog.csdn.net/diaopai5230/article/details/101216678)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [docker入门(利用docker部署web应用)](https://blog.csdn.net/q610376681/article/details/90483576)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [undefined](undefined)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值