docker安装入门及redis,minio,rabbitmq应用安装

部分笔记来自黑马课堂:【黑马程序员Docker快速入门到项目部署,MySQL部署+Nginx部署+docker自定义镜像+DockerCompose项目实战一套搞定-哔哩哔哩】 https://b23.tv/niWEhEF

一、什么是docker:

快速构建、运行、管理应用的工具。--帮助我们快速部署提高开发效率。

二、Docker是做什么的

Docker可以帮助我们下载应用镜像,创建并运行镜像的容器,从而快速部署应用。

三、什么是镜像

将应用所需的函数库、依赖、配置等与应用一起打包得到的就是镜像
(镜像相当于一个免安装的包,直接可以创建容器运行)
镜像仓库:存储和管理镜像的平台,Docker官方维护了一个公共仓库:Docker Hub

四、什么是容器

Docker会在运行镜像时创建一个隔离环境,称为容器

五、docker安装

安装Docker
本安装教程参考Docker官方文档,地址如下:

https://docs.docker.com/engine/install/centos/

  1.卸载旧版

首先如果系统中已经存在旧的Docker,则先卸载:

yum remove docker \
    docker-client \
    docker-client-latest \
    docker-common \
    docker-latest \
    docker-latest-logrotate \
    docker-logrotate \
    docker-engine

  2.配置Docker的yum库

  首先要安装一个yum工具:

yum install -y yum-utils

  安装成功后,执行命令,配置Docker的yum源:

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

  3.安装Docker

yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

  4.启动和校验

# 启动Docker
systemctl start docker

# 停止Docker
systemctl stop docker

# 重启
systemctl restart docker

# 设置开机自启
systemctl enable docker

# 执行docker ps命令,如果不报错,说明安装启动成功
docker ps

#命令来查看所有的容器,包括运行中的和已停止的容器
docker ps -a 

  5.配置镜像加速

  这里以阿里云镜像加速为例。

  5.1.注册阿里云账号

 首先访问阿里云网站:
 https://www.aliyun.com/
 注册一个账号。

  5.2.开通镜像服务

  在首页的产品中,找到阿里云的容器镜像服务

  点击后进入控制台:

  5.3.配置镜像加速

  找到镜像工具下的镜像加速器

  页面向下滚动,即可找到配置的文档说明:

  具体命令如下:

# 创建目录
mkdir -p /etc/docker

# 复制内容,注意把其中的镜像加速地址改成你自己的
tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://xxxx.mirror.aliyuncs.com"]
}
EOF

# 重新加载配置
systemctl daemon-reload

# 重启Docker
systemctl restart docker

六、安装redis

注意数据卷挂载要自己提前准备好宿主机对应的文件

docker run --restart=always \
-p 6379:6379 \
--name myredis \
-v /home/data/redis/redis.conf:/etc/redis/redis.conf \
-v /home/data/redis/data:/data \
-d redis:7.0.12 redis-server /etc/redis/redis.conf

docker run: 这是启动Docker容器的命令。

--restart=always: 这是容器的重启策略。always表示如果容器意外停止,Docker将自动重新启动容器。

-p 6379:6379: 这是端口映射的部分。这将容器的6379端口映射到主机的6379端口,允许主机与Redis容器通信。

--name myredis: 这为容器指定了一个名称,即myredis。

-v /home/data/redis/redis.conf:/etc/redis/redis.conf: 这是一个卷挂载操作,它将本地主机上的/home/data/redis/redis.conf文件挂载到容器内的/etc/redis/redis.conf路径,用于配置Redis。

-v /home/data/redis/data:/data: 同样是卷挂载,将本地主机上的/home/dj/redis/data目录挂载到容器内的/data路径,用于存储Redis的数据。

-d 后台运行

redis:7.0.12 redis-server /etc/redis/redis.conf: 这是容器的映像及其启动命令。它告诉Docker使用Redis版本7.0.12的映像,并在容器内运行redis-server命令,传递/etc/redis/redis.conf作为配置文件。

总的来说,这个命令启动了一个Redis容器,使用指定的配置文件和数据存储目录,同时设置了容器的重启策略以确保容器在意外停止时重新启动。

进入redis容器命令 

docker exec -it myredis bash
redis-cli
set k1 v1 #你会发现失败的
get k1
auth ningzaichun # 验证密码

七、安装minio

docker run -p 9000:9000 -p 9090:9090 \
 --name minio \
 -d --restart=always \
 -e "MINIO_ACCESS_KEY=minioadmin" \
 -e "MINIO_SECRET_KEY=minioadmin" \
 -v /home/data/minio/data:/data \
 minio/minio server \
 /data --console-address ":9090" -address ":9000"
  • docker run: 这是Docker的命令,用于运行一个新的容器。

  • -p 9000:9000 -p 9090:9090: 这部分指定了端口映射。容器内的MinIO服务器将通过端口9000对外提供服务,而端口9090用于MinIO的Web管理界面。

  • --name minio: 这部分为容器指定了一个名字,即minio,以便您可以使用该名字来管理容器。

  • -d: 这表示以后台(守护进程)模式运行容器。

  • --restart=always: 这部分表示当Docker守护进程启动时,容器将自动重新启动,以确保MinIO服务器一直可用。

  • -e "MINIO_ACCESS_KEY=minioadmin"-e "MINIO_SECRET_KEY=minioadmin": 这里设置了MinIO服务器的访问密钥和密钥。在这个示例中,访问密钥和密钥都设置为"minioadmin",请确保在生产环境中使用更强的安全凭据。

  • -v /home/data/minio/data:/data: 这部分创建了一个数据卷,将MinIO服务器的数据存储在主机的/home/data/minio/data目录中。这是为了确保数据持久性,即使容器被删除,数据也不会丢失。

  • minio/minio server /data --console-address ":9090" -address ":9000": 这是要运行的MinIO服务器的镜像和启动命令。它将MinIO服务器设置为使用/data目录来存储数据,Web管理界面通过端口9090访问,MinIO服务器本身通过端口9000提供服务。

 八、安装rabbitmq

1、拉取镜像

management:表示可以通过web页面管理。 alpine:表示是linux最小版本,不推荐新手安装

docker pull rabbitmq:management

2、创建用于挂载的目录

mkdir -p /home/data/rabbitmq/{data,conf,log} 
# 创建完成之后要对所创建文件授权权限,都设置成777 否则在启动容器的时候容易失败 
chmod -R 777 /mydata/rabbitmq

3、获取配置文件

3.1创建临时容器
docker run -d --name rabbitmq1 --restart=always --hostname=rabbitmqhost \
-e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=admin \
-e RABBITMQ_DEFAULT_VHOST=my_vhost \
-p 5672:5672 -p 15672:15672 \
rabbitmq:management
3.2 复制配置文件到宿主机
docker cp rabbitmq1:/etc/rabbitmq/ /home/data/rabbitmq/conf
3.3 删除临时容器
docker stop rabbitmq1 
docker rm rabbitmq1 

4、使用镜像创建容器

docker run -d --name rabbitmq --restart=always --hostname=rabbitmqhost \
-e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=admin \
-e RABBITMQ_DEFAULT_VHOST=my_vhost \
-v /home/data/rabbitmq/data:/var/lib/rabbitmq -v /home/data/rabbitmq/conf:/etc/rabbitmq -v /home/data/rabbitmq/log:/var/log/rabbitmq \
-p 5672:5672 -p 15672:15672 \
rabbitmq:management

–restart=always :表示随着Docker容器重启
-e :指定环境变量 RABBITMQ_DEFAULT_VHOST:默认虚拟机名;RABBITMQ_DEFAULT_USER:默认的用户名;RABBITMQ_DEFAULT_PASS:默认用户名的密码,rabbitmq默认账号和密码是guest
--hostname :主机名
-p :端口映射
-v :文件挂载
-d :表示后台运行
–name rabbitmq :表示启动后的容器实例名称为rabbitmq

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/271943.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

HarmonyOS应用抓包实战

Charles抓包原理 Charles是一个HTTP代理服务器,HTTP监视器,反转代理服务器&#xff0c;当浏览器连接Charles的代理访问互联网时&#xff0c;Charles可以监控浏览器发送和接收的所有数据。 在开发OpenHarmony/HarmonyOS应用开发时&#xff0c;我们使用的是ohos/axios来进行网络…

VSCode注释

一、设置 1. 安装 “KoroFileHeader” 插件 2. 编辑 setting.json 文件 在设置页面中&#xff0c;使用搜索框输入 “fileheader”&#xff0c;然后点击 “在 setting.json 中编辑”。 3. 添加设置项到 setting.json // 函数 "fileheader.cursorMode": {"de…

【六】【C语言\动态规划】买卖股票的最佳时机含手续费、买卖股票的最佳时机 III、买卖股票的最佳时机 IV,三道题目深度解析

动态规划 动态规划就像是解决问题的一种策略&#xff0c;它可以帮助我们更高效地找到问题的解决方案。这个策略的核心思想就是将问题分解为一系列的小问题&#xff0c;并将每个小问题的解保存起来。这样&#xff0c;当我们需要解决原始问题的时候&#xff0c;我们就可以直接利…

怎么快速采集京东、淘宝天猫、1688、拼多多等百家电商产品图片和视频

作为新时代电商&#xff0c;主图和视频素材尤为关键&#xff0c;有好的主图才能更加的吸引客户点击&#xff0c;促进成交量。但是现在很多商家直接制作的主图都很难有预期效果&#xff0c;自己拍摄的图片暗沉&#xff0c;没有光鲜亮丽的突出性。所以现在很多人都是在采集同类商…

Unity中Shader裁剪空间推导(正交相机到裁剪空间的转化矩阵)

文章目录 前言一、正交相机 转化到 裁剪空间 干了什么1、正交相机裁剪的范围主要是这个方盒子2、裁剪了之后&#xff0c;需要把裁剪范围内的坐标值化到[-1,1]之间&#xff0c;这就是我们的裁剪空间。3、在Unity中&#xff0c;设置相机为正交相机4、在这里设置相机的近裁剪面和远…

Python 雨花 - 前言

众多技术教程的个人网站 https://wukongnotnull.com/ 目录 ⛳️ 教程介绍&#x1f3af; 前置要求⚽️ 学习交流群&#x1f9ed; 教学文档配套视频&#x1f94e; 一对一 VIP答疑辅导&#x1f4a1; 参考文献 ⛳️ 教程介绍 Python 入门教程&#xff0c;通俗易懂&#xff0c;快速…

手滑误删备忘录?这样做手滑误删也能恢复

在这个快节奏的时代&#xff0c;备忘录几乎成了我日常生活的救命稻草。匆忙间&#xff0c;我时常依赖它记录那些一闪而过的灵感或是重要的待办事项。但你有没有过这样的经历&#xff1f;在滑动屏幕的一瞬间&#xff0c;一个不小心&#xff0c;重要的备忘录就这么消失了&#xf…

springboot+vue项目如何在linux上部署

在linux上部署项目&#xff0c;是我们实训项目作业的最后一步&#xff0c;此时我们的项目编码测试已经完成&#xff0c;接下来就需要在服务器上部署上线&#xff0c;那么如何部署上线&#xff0c;接下来我会在虚拟机上的CentOS7系统上实现部署&#xff0c; 一.下载JDK 因为我…

如何搭建一个高效的Python开发环境

“工欲善其事&#xff0c;必先利其器”&#xff0c;这里我们来搭建一套高效的 Python 开发环境&#xff0c;为后续的数据分析做准备。 关于高效作业&#xff0c;对于需要编写 Python 代码进行数据分析的工作而言&#xff0c;主要涉及两个方面。 1. 一款具备强大的自动完成和错…

c语言:计算阶乘的和|练习题

一、题目 输入一个数n&#xff0c;计算1&#xff01;2&#xff01;……n&#xff01;的和 如图&#xff1a; 二、思路分析 设置两个函数 1、一个函数求阶乘 2、一个函数求多个数相加的总和 3、把求阶乘的函数&#xff0c;嵌套在求相加总和的函数里面 三、代码截图【带注释】 四…

highcharts的甘特图设置滚动时表头固定,让其他内容跟随滚动

效果图&#xff1a;最左侧的分类列是跟随甘特图滚动的&#xff0c;因为这一列如果需要自定义&#xff0c;比如表格的话可能会存在行合并的情况&#xff0c;这个时候甘特图是没有办法做的&#xff0c;然后甘特图的表头又需要做滚动时固定&#xff0c;所以设置了甘特图滚动时&…

【代码混淆】react-native 代码混淆

​ 使用react native开发app&#xff0c;实现代码混淆的操作。 无论是加密还是运行时虚拟机&#xff0c;最后都可以通过执行时调试把代码反向生成出来原来的代码&#xff0c;虽然能抵御低端的黑客攻击&#xff0c;但是对高端黑客却形同虚设。 代码混淆是通过修改源代码结构和变…

【习题】运行Hello World工程

判断题 1. DevEco Studio是开发HarmonyOS应用的一站式集成开发环境。 正确(True)错误(False) 正确(True) 2. main_pages.json存放页面page路径配置信息。 正确(True)错误(False) 正确(True) 单选题 1. 在stage模型中&#xff0c;下列配置文件属于AppScope文件夹的是&am…

视频专访 | 每日互动刘宇:AI不止GC,更有TA

当前&#xff0c;“百模大战”已进入拼落地、拼应用的下半场&#xff0c;给千行百业带来了降本增效的巨大机遇。聚焦到品牌营销领域&#xff0c;大模型给行业带来了哪些改变&#xff1f;企业如何利用大模型优化数字化营销手段、提升数字化营销效果&#xff0c;最终驱动品牌实现…

嵌入式——I2C原理代码结合(干货)看图易懂

学习目标 理解I2C通讯原理理解I2C通讯过程中的信号理解软件I2C实现过程理解硬件I2C的工作内容学习内容 I2C通讯规则 I2C总线包括两根信号线:SDA(串行数据线)和SCL(串行时钟线)。这两根信号线共用一个总线,因此在总线上可以连接多个设备。在I2C总线上,每个设备都有一个唯…

微服务注册与发现——Eureka

文章目录 Eureka使用引用配置启动类标记访问微服务注册微服务工程添加引用增加配置启动类增加注解启动服务注册 Eureka Server集群部署修改配置文件启动多个eureka实例微服务注册到多个eureka实例 为Eureka Server添加用户认证引入spring-security配置关闭security的csrf&#…

C练习——水仙花数

“水仙花数”是指一个三位数&#xff0c;其每位数字的立方和等于该数本身。 例如&#xff1a;153是一个“水仙花数”&#xff0c;因为1531的三次方&#xff0b;5的三次方&#xff0b;3的三次方。 // 打印 100 - 999 的所有水仙花数 // 利用for循环控制100 - 999个数&#xff…

Exploring the Limits of Masked Visual Representation Learning at Scale论文笔记

论文名称&#xff1a;EVA: Exploring the Limits of Masked Visual Representation Learning at Scale 发表时间&#xff1a;CVPR2023 作者及组织&#xff1a;北京人工智能研究院&#xff1b;华中科技大学&#xff1b;浙江大学&#xff1b;北京理工大学 GitHub&#xff1a;http…

从公务员转行网络安全工程师,铁饭碗也比不过“金饽饽”。

前言 随着疫情的不断变化&#xff0c;影响力席卷大多数的行业&#xff0c;许多人也在这次疫情中失去了工作&#xff0c;或是收入与之前相比大打折扣&#xff0c;因此越来越多的人涌入到了考公或考事业单位的大潮之中。 考公是一场与实力与运气的battle&#xff0c;不到上岸的…

MS2244模拟开关可Pin to Pin兼容NJM2244

MS2244 是一款集成的视频开关&#xff0c;实现三输入视频或音频信号的三选一。可Pin to Pin兼容NJM2244。 芯片集成了 75Ω驱动电路&#xff0c;可以直接驱动电视监控器。芯片工作电压 5V&#xff5e;12V&#xff0c;带宽 10MHz&#xff0c;抗串扰 70dB (4.43MHz)。另外芯片还集…