docker菜谱大全

记录docker常用软件安装,感谢小马哥和杨师傅的投稿。😎😎😎
相关文档:
- DockerHub:https://hub.docker.com/
- Linux手册:https://linuxcool.com/
- Docker文档:https://docs.docker.com/
- Docker中文网:https://www.docker.org.cn/
- 菜鸟教程:https://www.runoob.com/?s=docker
- how2j:https://how2j.cn/k/docker/docker-docker/2005.html
- 阿里镜像源:https://cr.console.aliyun.com
- DaoCloud:https://www.daocloud.io/mirror#accelerator-doc
文章目录
- 1. Redis
- 2. MariaDB
- 3. MongoDB
- 4. Nginx
- 5. MinIO
- 6. Nacos
- 7. RabbitMQ
- 8. Gogs
- 9. 可视化工具(Portainer)
- 10. ES、Kibana
- 11. Kafka
- 12. MySQL
- 13. Oracle11g
1. Redis
dockerhub:https://hub.docker.com/_/redis
1、下载redis镜像:
docker pull redis:6.2.8
docker pull redis:7.0.0
2、启动容器:(方式1:简单粗暴)
docker run --name redis -p 6379:6379 -d redis:6.2.8 redis-server --appendonly yes
3、启动容器:(方式2:开启AOF持久化、设置密码、挂载目录、开机自启)
docker run --name redis -p 6379:6379 -v /var/redis/data:/data --restart=always -d redis:7.0.0 redis-server --appendonly yes --requirepass "admin123"
--name redis:容器名称-p 6379:6379:端口映射,访问redis的端口-d:以后台模式运行容器redis:7.0.0:redis镜像redis-server:启动redis服务器--restart=always:开机自启--appendonly yes:开启AOF持久化模式,将写操作追加到文件末尾-v /home/redis/data:/data:挂载目录 (开启AOF持久化后,生成的aof文件放入容器的/data目录中)--requirepass "admin123":设置密码
进入容器操作redis:
# 以命令行交互方式进入redis容器
docker exec -it redis bash# 使用客户端连接redis服务器 (带密码方式)
redis-cli -a admin123

查看data目录下的aof文件:

扩展:
# 删除所有dokcer容器 (包括正在运行的和已停止的容器)
docker rm -f $(docker ps -qa)
4、启动容器:(方式3:使用redis配置文件启动)
2. MariaDB
MySQL数据库在被Oracle公司收购后,从开源软件转变成为了“闭源”软件。MariaDB是MySQL的一个分支版本,可以作为对MySQL的替代选择,MariaDB在这个背景下迅速崛起并获得了广泛的市场认可和采用。
MariaDB也是由MySQL的创始人Michael Widenius开发的,它保持了与MySQL高度兼容的特性,因此可以无缝地迁移现有的MySQL应用程序到MariaDB上。同时,MariaDB还提供了一些新的功能和改进,以提供更好的性能、安全性和可扩展性。

1、下载mariadb镜像:
docker pull mariadb:10.1.21
2、创建目录:(让宿主机持久化mariadb容器的数据、配置和日志文件)
mkdir -p /var/mariadb/{logs,conf,data}
3、在虚拟机 /var/mariadb/conf 目录下,创建hmy.conf文件:
vim /var/mariadb/conf/hmy.cnf
[mysqld]
skip-name-resolve
character_set_server=utf8
datadir=/var/lib/mysql
- skip-name-resolve 禁用dns解析。
- character_set_server=utf8 设置字符集。
- datadir=/var/lib/mysql 容器内部存数据的位置
4、启动容器:
docker run -d \
--name mariadb \
--restart=always \
-e TZ=Asia/Shanghai \
-e MYSQL_ROOT_PASSWORD=admin \
-v /var/mariadb/conf/hmy.cnf:/etc/mysql/conf.d/hmy.cnf \
-v /var/mariadb/db:/var/lib/mysql \
-v /var/mariadb/logs:/var/log/mysql \
-p 3307:3306 \
mariadb:10.1.21

4、使用可视化工具连接mariadb:


3. MongoDB
1、下载镜像:
docker pull mongo:4.2.1
2、启动容器:(MongoDB默认端口27017)
docker run -di \
-p 27017:27017 \
--name mongo-service \
--restart=always \
-v /var/mongodb/data:/data \
mongo:4.2.1
4. Nginx
1、下载镜像:
docker pull nginx:1.22.1
2、创建目录:(配置文件从自己电脑复制一份即可)
mkdir -p /mydocker/nginx/{html,conf,logs}
3、把本地nginx.conf配置文件和网页文件分别上传到虚拟机的/mydocker/nginx/conf 、/mydocker/nginx/html目录中。

4、启动容器:
docker run -p 82:80 --name nginx \
-v /mydocker/nginx/html:/usr/share/nginx/html \
-v /mydocker/nginx/logs:/var/log/nginx \
-v /mydocker/nginx/conf:/etc/nginx \
-d nginx:1.22.1
5、浏览器访问:http://ip:82
5. MinIO
1、下载镜像:
下载新版minio
docker pull minio/minio# 下载指定版本的minio
docker pull minio/minio:RELEASE.2021-04-06T23-11-00Z
2、启动容器:
# 默认版本启动
docker run -p 9000:9000 -d \
--name minio \
--restart=always
-e "MINIO_ACCESS_KEY=minioadmin" \
-e "MINIO_SECRET_KEY=minioadmin" \
-v /mydocker/minio/data:/data \
-v /mydocker/minio/config:/root/.minio \
minio/minio server /data -------------------------------------------------------
-------------------------------------------------------# 指定镜像版本启动
docker run -p 9000:9000 -d \
--name minio \
--restart=always
-e "MINIO_ACCESS_KEY=minioadmin" \
-e "MINIO_SECRET_KEY=minioadmin" \
-v /mydocker/minio/data:/data \
-v /mydocker/minio/config:/root/.minio \
minio/minio:RELEASE.2021-04-06T23-11-00Z server /data
-p 9000:9000:端口映射,用于访问MinIO服务。-d:以后台模式运行容器。--name minio:指定容器的名称为"minio"。--restart=always:设置容器总是在启动时自动重启。-e "MINIO_ACCESS_KEY=minioadmin":设置MinIO的账号。-e "MINIO_SECRET_KEY=minioadmin":设置MinIO的密钥。-v /mydocker/minio/data:/data:挂载MinIO的数据目录。-v /mydocker/minio/config:/root/.minio:挂载MinIO的配置目录。minio/minio server /data:运行MinIO服务器,并将数据存储在容器内的/data目录中。
6. Nacos
1、下载nacos镜像:
docker pull nacos/nacos-server:1.2.0
2、启动容器:
docker run -p 8848:8848 -d \
--name nacos \
--restart=always \
-e MODE=standalone \
-e JVM_XMS=256m \
-e JVM_XMX=256m \
nacos/nacos-server:1.2.0
-p 8848:8848:端口映射,用于访问Nacos服务。-e MODE=standalone:指定Nacos以独立模式运行(单机环境)。-e JVM_XMS=256m:设置JVM的初始堆内存大小为256MB。-e JVM_XMX=256m:设置JVM的最大堆内存大小为256MB。
3、查看容器日志:
docker logs -f nacos

管理页面访问地址:http://ip:8848/nacos
7. RabbitMQ
1、下载镜像:
docker pull rabbitmq:3.8-management
2、启动容器:
docker run -di \
-e RABBITMQ_DEFAULT_USER=admin \
-e RABBITMQ_DEFAULT_PASS=123456 \
-v mq-plugins:/plugins \
--name rabbitmq \
--hostname my-rabbit \
-p 15672:15672 \
-p 5672:5672 \
--restart=always \
rabbitmq:3.8-management
-
-di:以交互模式和后台模式运行容器。 -
-e RABBITMQ_DEFAULT_USER=admin和-e RABBITMQ_DEFAULT_PASS=123456:设置RabbitMQ的用户名和密码。 -
-v mq-plugins:/plugins:挂载rabbitmq插件的数据卷。 -
--name rabbitmq:设置容器名称为rabbitmq -
--hostname my-rabbit:设置容器的主机名为my-rabbit。 -
-p 15672:15672:用于web管理页面使用的端口 (管理员页面) -
-p 5672:5672:用于生产和消费端使用的端口(通信端口,也就是在代码里要使用的) -
rabbitmq:3.8-management:使用RabbitMQ官方镜像版本3.8以及带有管理界面的插件来运行容器。
扩展:启动xxx插件(后面会用到这个命令)
# 进入容器
docker exec -it rabbitmq /bin/bash# 启动xxx插件
rabbitmq-plugins enable [xxx插件]
12345
web管理页面:http://ip:15672/
8. Gogs
安装教程:https://blog.csdn.net/qq_46921028/article/details/131426436

9. 可视化工具(Portainer)
docker run -d -p 9001:9000 \
--name prtainer \
--restart=always \
-v /var/run/docker.sock:/var/run/docker.sock \
-v portainer_data:/data \
--privileged=true \
portainer/portainer
访问地址:http://ip:9001
① 创建账号:
设置登录密码,长度最少8位,方便记忆我就设置成admin123456啦。

② 选择管理本地docker环境

③ 进入docker管理面板:


10. ES、Kibana
安装教程:https://blog.csdn.net/qq_46921028/article/details/131929519
11. Kafka
1、下载zookeeper和kafka镜像:
docker pull zookeeper:3.4.14
docker pull wurstmeister/kafka:2.12-2.3.1
2、启动zookeeper容器:
docker run -d --name zookeeper -p 2181:2181 zookeeper:3.4.14

然后使用 docker logs -f zookeeper查看启动日志,如下图出现2181端口表示zookeeper服务已经成功启动了:

3、启动kafka容器:
docker run -d --name kafka \
--env KAFKA_ADVERTISED_HOST_NAME=192.168.200.130 \
--env KAFKA_ZOOKEEPER_CONNECT=192.168.200.130:2181 \
--env KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.200.130:9092 \
--env KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 \
--env KAFKA_HEAP_OPTS="-Xmx256M -Xms256M" \
--net=host wurstmeister/kafka:2.12-2.3.1
参数介绍:
- KAFKA_ADVERTISED_HOST_NAME:设置当前主机ip地址;(如果是云主机使用公网ip地址)
- KAFKA_ZOOKEEPER_CONNECT:zookeeper的连接地址;
- KAFKA_ADVERTISED_LISTENERS:kafka发布到zookeeper,供客户端使用的服务地址。
- KAFKA_LISTENERS:允许使用PLAINTEXT侦听器;(kafka对外监听的端口)
- KAFKA_HEAP_OPTS:限制内存的使用,用于性能调优;
- –net=host:使用宿主机的和端口。(如果是云主机的话此处使用-p 9092:9092指定端口)
容器启动顺序:先启动zookeeper,再启动kafka。
docker start zookeeper
docker start kafka
12. MySQL
1、下载MySQL镜像:
docker pull mysql:5.7
2、创建目录(存mysql数据和配置文件)
mkdir -p /var/mysql/data
mkdir -p /var/mysql/conf
3、在虚拟机/var/mysql/conf目录下,创建hmy.conf文件:
[mysqld]
skip-name-resolve
character_set_server=utf8
datadir=/var/lib/mysql
- skip-name-resolve 禁用dns解析。
- character_set_server=utf8 设置字符集。
- datadir=/var/lib/mysql 容器内部存数据的目录
4、启动mysql容器:
docker run -d \
--name mysql1 \
--restart=always \
-e MYSQL_ROOT_PASSWORD=root \
-e TZ=Asia/Shanghai \
-p 3306:3306 \
-v /var/mysql/conf/hmy.cnf:/etc/mysql/conf.d/hmy.cnf \
-v /var/mysql/data:/var/lib/mysql \
mysql:5.7
- -p 3306:3306 端口映射。
- -e MYSQL_ROOT_PASSWORD=root ,密码设置为root。
- -e TZ=Asia/Shanghai 设置时区。
- –restart=always 开机容器自启。
- -v /var/mysql/data:/var/lib/mysql 挂载数据存储位置。
- -v /var/mysql/conf/hmy.cnf:/etc/mysql/conf.d/hmy.cnf 挂载配置文件。
- -d 后台运行。
13. Oracle11g
1、下载镜像:(一个大佬打包的镜像,比官网版好用些)
docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
2、启动镜像:
docker run -d \
--name oracle11g \
-e JAVA_OPTS="-Xms256m -Xmx256m" \
-p 1521:1521 \
--privileged=true \
--restart=always \
-v /var/oracle:/data/oracle \
registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g

3、进oracle容器,切换root账户:
# 进入容器
docker exec -it oracle11g bash# 切换成root账户,密码为:helowin
su root

4、配置oralce环境变量:
vi /etc/profile
# 将光标移动到底部G,然后按o另起一行,复制以下内容
export ORACLE_HOME=/home/oracle/app/oracle/product/11.2.0/dbhome_2
export ORACLE_SID=helowin
export PATH=$ORACLE_HOME/bin:$PATH

:wq 保存退出。
让环境变量重新生效:
source /etc/profile
5、创建软连接:
# 创建软链接
ln -s $ORACLE_HOME/bin/sqlplus /usr/bin
6、切换到oracle用户:
su - oracle

7、oracle相关操作:
登录sqlplus:
# 启动SQLPlus命令行工具,但不进行任何数据库连接
qlplus /nolog# 使用SYSDBA(系统管理员)身份连接到数据库
conn /as sysdba

修改sys、system用户的密码:
# 修改system用户的密码为system
alter user system identified by system;
# 修改sys用户的密码为sys
alter user sys identified by system;# 修改密码规则策略为密码永不过期
alter profile default limit PASSWORD_LIFE_TIME UNLIMITED;# exit; 退出sql命令行

开启scott用户:(示例用户,提供了一些表和数据)
# 解锁scott用户(默认情况下,该用户是被禁用的,需要超级管理员权限才能执行解锁操作)
alter user scott account unlock;# 解锁scott用户的密码 (也可以用于重置用户密码)
alter user scott identified by tiger;
8、查看oracle实例状态:
lsnrctl status

9、使用可视化工具连接Oracle数据库:
-
服务名:helowin
-
用户名/密码:scott/tiger


相关文章:
docker菜谱大全
记录docker常用软件安装,感谢小马哥和杨师傅的投稿。😎😎😎 相关文档: DockerHub:https://hub.docker.com/Linux手册:https://linuxcool.com/Docker文档:https://docs.docker.com/Do…...
git: git checkout命令
git checkout 命令在Git中有不同的用法和功能,具体取决于您在命令后面提供的参数。以下是一些常见的用法: 1. 切换分支:您可以使用 git checkout <branch> 切换到指定的分支。例如,要切换到名为 "feature-branch"…...
以游戏编程的角度看待模拟时间的算法题——以PAT甲级1026 Table Tennis为例
对于需要模拟时间的算法题,可以将开始时间作为游戏的开始(如Unity的Start或UE的BeginPlay),每一秒的模拟作为游戏的画面更新(如Unity的Update或UE的Tick),结束时间可作为游戏的结束(…...
SNAT与DNAT原理
SNAT和DNAT (源地址转换和目标地址转换) SNAT:源地址转换。内网到外网转换的是源地址。 DNAT:目标地址转换:外网到内网转换的是目的地址 (把内部服务器的ip地址转换成一个所有人都可以访问的地址࿰…...
04-2_Qt 5.9 C++开发指南_SpinBox使用
文章目录 1. SpinBox简介2. SpinBox使用2.1 可视化UI设计2.2 widget.h2.3 widget.cpp 1. SpinBox简介 QSpinBox 用于整数的显示和输入,一般显示十进制数,也可以显示二进制、十六进制的数,而且可以在显示框中增加前缀或后缀。 QDoubleSpinBox…...
接口安全防护方案
文章目录 1.认证与授权机制2.参数校验3.接口加密4.防止暴力破解5.安全头设置6.日志监控 1.认证与授权机制 使用令牌(Token)、OAuth等认证方式,确保只有合法用户可以访问接口。授权机制可以防止未经授权的用户访问敏感接口。 示例:…...
机器学习复习题
1 单选题 ID3算法、C4.5算法、CART算法都是( )研究方向的算法。 A . 决策树 B. 随机森林 C. 人工神经网络 D. 贝叶斯学习 参考答案:A ( )作为机器学习重要算法之一,是一种利用多个树分类器进行分类和预测…...
无线液位传感器—简介
近年来,随着无线传感网络技术的愈发成熟和稳定,无线传感器因其安装、维护方便,不用布线、节约成本,监测方便,使用灵活,可适用于多种工业领域等优点,正在逐步替代部分传统有线传感器,…...
通讯协议034——全网独有的OPC HDA知识一之聚合(三)时间加权平均
本文简单介绍OPC HDA规范的基本概念,更多通信资源请登录网信智汇(wangxinzhihui.com)。 本节旨在详细说明HDA聚合的要求和性能。其目的是使HDA聚合标准化,以便HDA客户端能够可靠地预测聚合计算的结果并理解其含义。如果用户需要聚合中的自定义功能&…...
Android 13 Hotseat定制化修改——003 hotseat图标大小修改
目录 一.背景 二.未修改前效果 三.修改后效果 一.背景 由于需求是需要自定义修改Hotseat,所以此篇文章是记录如何自定义修改hotseat的,应该可以覆盖大部分场景,修改点有修改hotseat布局方向,hotseat图标数量,hotseat图标大小,hotseat布局位置,hotseat图标禁止形成文件…...
21、springboot的宽松绑定及属性处理类的构造注入
springboot的宽松绑定及属性处理类的构造注入 ★ 如何使用属性处理类所读取的属性 属性处理类最终变成了Spring容器中的一个Bean组件,因此接下来Spring即可将该Bean组件注入任意其他组件。 这种做法的好处是:可以将大量的配置信息封装一个对象——所以…...
nginx负载均衡(反向代理)
nginx负载均衡 负载均衡:由反向代理来实现。 nginx的七层代理和四层代理: 七层是最常用的反向代理方式,只能配置在nginx配置文件的http模块当中,而且配置方法名称:upstream模块,不能写在server模块中&#…...
AWS上传私有windows server2019镜像64位
一.制作自己的镜像 我使用的是esxi,建立一个windows虚拟机,开启。 根据aws官方文档,虚拟机里的系统重要需要注意以下几点: 1.只有一张网卡,ip获取配置成dhcp。 2.关闭系统防火墙。 3.开启windows rdp 远程功能。 …...
查看当前仓库对应的远程仓库地址
查看当前仓库对应的远程仓库地址 git remote -v这条命令能显示你当前仓库中已经添加了的仓库名和对应的仓库地址,通常来讲,会有两条一模一样的记录,分别是fetch和push,其中fetch是用来从远程同步 push是用来推送到远程 修改仓库…...
flask-script
# django中,有命令 python manage.py runserver python manage.py makemigrations ...自定制命令(django如何自定制命令)... -python manage.py init_db excel文件路径 指定表名 # flask启动项目,像djag…...
标准的OSI七层模型(其实了解tcp足矣)
七层模型,亦称OSI(Open System Interconnection)。参考模型是国际标准化组织(ISO)制定的一个用于计算机或通信系统间互联的标准体系,一般称为OSI参考模型或七层模型。 它是一个七层的、抽象的模型体&#x…...
【C++】初识模板
C模板入门 一、泛型编程 二、函数模板1. 函数模板的概念2. 函数模板格式3. 函数模板的原理4. 函数模板的实例化5. 模板参数的匹配原则 三、类模板 一、泛型编程 假设我们想实现一个交换函数,并且支持不同类型的参数实现,我们可以用 typedef 将类型进行重…...
学习Pull request
我从我的导师Xing Fan指导和帮助,利用我的导师chunlong Li提供ChatGPT,在百度搜索,学习一些资料。以下很多内容都是我的导师Xing Fan做的。谢谢Xing Fan。考虑到隐私,不适合截图公开。 第一步: 打开Git Bash Here 如…...
python爬虫实战(1)--爬取新闻数据
想要每天看到新闻数据又不想占用太多时间去整理,萌生自己抓取新闻网站的想法。 1. 准备工作 使用python语言可以快速实现,调用BeautifulSoup包里面的方法 安装BeautifulSoup pip install BeautifulSoup完成以后引入项目 2. 开发 定义请求头…...
React Hooks 详细使用介绍
useState 状态管理 useState 是 React 中的一个基础 Hook,允许你在不使用 class 组件的情况下管理组件状态。 参数 初始值 你可以直接传递状态的初始值给 useState: const [name, setName] useState("John");使用函数设置初始值 当初始…...
网络编程(Modbus进阶)
思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…...
(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)
题目:3442. 奇偶频次间的最大差值 I 思路 :哈希,时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况,哈希表这里用数组即可实现。 C版本: class Solution { public:int maxDifference(string s) {int a[26]…...
MySQL 隔离级别:脏读、幻读及不可重复读的原理与示例
一、MySQL 隔离级别 MySQL 提供了四种隔离级别,用于控制事务之间的并发访问以及数据的可见性,不同隔离级别对脏读、幻读、不可重复读这几种并发数据问题有着不同的处理方式,具体如下: 隔离级别脏读不可重复读幻读性能特点及锁机制读未提交(READ UNCOMMITTED)允许出现允许…...
Admin.Net中的消息通信SignalR解释
定义集线器接口 IOnlineUserHub public interface IOnlineUserHub {/// 在线用户列表Task OnlineUserList(OnlineUserList context);/// 强制下线Task ForceOffline(object context);/// 发布站内消息Task PublicNotice(SysNotice context);/// 接收消息Task ReceiveMessage(…...
MFC内存泄露
1、泄露代码示例 void X::SetApplicationBtn() {CMFCRibbonApplicationButton* pBtn GetApplicationButton();// 获取 Ribbon Bar 指针// 创建自定义按钮CCustomRibbonAppButton* pCustomButton new CCustomRibbonAppButton();pCustomButton->SetImage(IDB_BITMAP_Jdp26)…...
前端导出带有合并单元格的列表
// 导出async function exportExcel(fileName "共识调整.xlsx") {// 所有数据const exportData await getAllMainData();// 表头内容let fitstTitleList [];const secondTitleList [];allColumns.value.forEach(column > {if (!column.children) {fitstTitleL…...
江苏艾立泰跨国资源接力:废料变黄金的绿色供应链革命
在华东塑料包装行业面临限塑令深度调整的背景下,江苏艾立泰以一场跨国资源接力的创新实践,重新定义了绿色供应链的边界。 跨国回收网络:废料变黄金的全球棋局 艾立泰在欧洲、东南亚建立再生塑料回收点,将海外废弃包装箱通过标准…...
Axios请求超时重发机制
Axios 超时重新请求实现方案 在 Axios 中实现超时重新请求可以通过以下几种方式: 1. 使用拦截器实现自动重试 import axios from axios;// 创建axios实例 const instance axios.create();// 设置超时时间 instance.defaults.timeout 5000;// 最大重试次数 cons…...
JUC笔记(上)-复习 涉及死锁 volatile synchronized CAS 原子操作
一、上下文切换 即使单核CPU也可以进行多线程执行代码,CPU会给每个线程分配CPU时间片来实现这个机制。时间片非常短,所以CPU会不断地切换线程执行,从而让我们感觉多个线程是同时执行的。时间片一般是十几毫秒(ms)。通过时间片分配算法执行。…...
学校时钟系统,标准考场时钟系统,AI亮相2025高考,赛思时钟系统为教育公平筑起“精准防线”
2025年#高考 将在近日拉开帷幕,#AI 监考一度冲上热搜。当AI深度融入高考,#时间同步 不再是辅助功能,而是决定AI监考系统成败的“生命线”。 AI亮相2025高考,40种异常行为0.5秒精准识别 2025年高考即将拉开帷幕,江西、…...
