Docker安装常用的容器,包括MySQL,Redis,RabbitMQ,MongoDB,FDFS等

这篇具有很好参考价值的文章主要介绍了Docker安装常用的容器,包括MySQL,Redis,RabbitMQ,MongoDB,FDFS等。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

首先安装docker 依赖库

yum install -y yum-utils device-mapper-persistent-data lvm2

添加docker ce的软件源信息,自行选择,可添加可不添加,如果不是阿里云或者腾讯云的,请还是添加一下吧

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

安装docker

yum -y install docker-ce

docker -v --查看docker版本
docker images --查看当前docker运行
sudo systemctl start docker --启动docker 在虚拟机里边
docker images --有时候权限不足 我们变为 sudo docker images 检查我们虚拟机里边有无下载镜像
sudo systemctl enable docker --设置开机自启动

docker 配置镜像加速

#1

sudo mkdir -p /etc/docker

#2

sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://你的编号.mirror.aliyuncs.com"]
}
EOF

#3

sudo systemctl daemon-reload

#4

sudo systemctl restart docker

===致此docker 安装成功

docker指令安装mysql

1 sudo docker pull mysql --安装最新的mysql
2 sudo docker pull mysql:版本号 我使用的是 mysql 8.0.2 --安装指定的版本号

启动安装的镜像
比如启动 mysql:

docker run -p 3306:3306 --name mysql \
 -v /mydata/mysql/log:/var/log/mysql \
 -v /mydata/mysql/data:/var/lib/mysql \
 -v /mydata/mysql/conf:/etc/mysql \
 -e MYSQL_ROOT_PASSWORD=a \
 -d mysql:5.7.22

docker run -p 3306:3306 --name mysql -v /mydata/mysql/log:/var/log/mysql -v /mydata/mysql/data:/var/lib/mysql \ -v /mydata/mysql/conf:/etc/mysql \ -e MYSQL_ROOT_PASSWORD=a \ -d mysql:5.7 ----- 上边是mysql5.7的启动方式 -d 代表以后台方式运行 -p 3306:3306 将容器的3306端口映射到主机的3306

			 -p 3306:3306; 将容器的3306端口映射到主机的3306端口
			 -v/mydata/mysgl/conf:/etc/mysgl  :将配置文件夫挂载到主机
			 -v/mydata/mysgl/log:/var/log/mysgl  :将日志文件夹挂载到主机
			 -w/mydata/mysgl/data:/var/lib/mysgl/  ,将配置文件夹挂载到主机
			 -e MYSQL_ROOT_PASSWORD=root           :初始化root用户的密码

有时候切换权限麻烦 所有我们切换到
su root --权限最高
docker ps --查看当前docker正在运行中的程序

docker run -dit -p 3306:3306 mysql:8.0.2 bash --启动mysql 8.0.2

service mysql status --查看mysql的状态
service mysql start --启动mys

docker exec -it mysql /bin/bash --进入mysql内部

 whereis mysql
	mysql: /usr/bin/mysql /usr/lib64/mysql /usr/share/mysql  /usr/share/man/man1/mysql.1.gz

一、查看容器,复制容器id 即container id

docker ps -a

二、停止容器

docker stop 你的容器id

三、删除容器

docker rm 容器id

四、查看镜像,复制镜像id即images id

docker images

五。删除镜像

docker rmi 镜像id


这是我装的
Mysql8.0安装
1、拉取mysql镜像

docker pull mysql:8.0

密码为123456
2.docker run -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql

密码为a的

docker run -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=a -d mysql

3.docker exec -it mysql /bin/bash
4.mysql -uroot -p123456
5.use mysql;
6.ALTER USER 'root'@'%' IDENTIFIED BY '123456' PASSWORD EXPIRE NEVER;
7.ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
8.FLUSH PRIVILEGES;
9.修改密码

mysqladmin -uroot -p旧密码 password 新密码   --密码为 123456

注意一下我装的虚拟机端口号mysql为 3307
29adbe537c3e mysql “docker-entrypoint.s…” 52 minutes ago Up 52 minutes 33060/tcp, 0.0.0.0:3307->3306/tcp, :::3307->3306/tcp mysql


首先进入

1、docker exec -it mysql bash //mysql是mysql容器的别名

2、mysql -uroot -p

3、输入密码

4、进入mysql>命令行界面

让我们看看MYSQL的一些情况

1,容器中登录mysql,查看mysql的版本

mysql> status;

mysql Ver 8.0.11 for Linux on x86_64 (MySQL Community Server - GPL)

2,进行授权远程连接(注意mysql 8.0跟之前的授权方式不同)

授权

GRANT ALL ON *.* TO 'root'@'%';

刷新权限

flush privileges;

此时,还不能远程访问,因为Navicat只支持旧版本的加密,需要更改mysql的加密规则

3,更改加密规则

ALTER USER 'root'@'localhost' IDENTIFIED BY 'a' PASSWORD EXPIRE NEVER;

4,更新root用户密码

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'a';

刷新权限

flush privileges;

OK,设置完成,再次使用 Navicat 连接数据库


–谷粒商城下的

vi /mydata/mysql/conf/my.cnf
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8

[mysqld]
init_connect='SET collation_connection =utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci 
skip-character-set-client-handshake
skip-name-resolve

下载redis

docker pull redis

创建实例并启动

mkdir -p /mydata/redis/conf   
cd /mydata/redis/conf   
touch redis.conf
docker run -p 6379:6379 --name redis -v /mydata/redis/data:/data \
   -v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf \
   -d redis redis-server /etc/redis/redis.conf

ls 查看当前文件夹下的文件

 cat redis.conf

测试redis

 docker exec -it redis redis-cli

由于以前的数据全存在内存中,从而我们重复读取get a的时候会导致失败

[root@localhost conf]# cat redis.conf
[root@localhost conf]# docker exec -it redis redis-cli
127.0.0.1:6379> set a b
OK
127.0.0.1:6379> get a
"b"   //从而在一次上来的时候这块是null
127.0.0.1:6379> exit

--让redis 持久化  ---> pwd
127.0.0.1:6379> exit
[root@localhost conf]# pwd
/mydata/redis/conf
[root@localhost conf]# ls
redis.conf
[root@localhost conf]# vi redis.conf 
i
appendonly yes
esc  :wq
docker restart redis  //重启redis

–设置开机自启动docker 里边容器

sudo docker update <容器名> --restart=always

docker 安装rabbitMQ

---------------docker 安装rabbitMQ
安装rabbitMQ,完成消息队列的安装

docker pull rabbitmq 

运行rabbitmq

docker run -d -p 15672:15672 -p 5672:5672 \
-e RABBITMQ_DEFAULT_VHOST=my_vhost  \
-e RABBITMQ_DEFAULT_USER=admin \
-e RABBITMQ_DEFAULT_PASS=admin \
--hostname myRabbit \
--name rabbitmq \
rabbitmq

-d:表示在后台运行容器;
-p:将容器的端口 5672(应用访问端口)和 15672 (控制台Web端口号)映射到主机中;
-e:指定环境变量: RABBITMQ_DEFAULT_VHOST:默认虚拟机名; RABBITMQ_DEFAULT_USER:默认的用户名; RABBITMQ_DEFAULT_PASS:默认的用户密码;
–hostname:指定主机名(RabbitMQ 的一个重要注意事项是它根据所谓的 节点名称 存储数据,默认为主机名);
–name rabbitmq:设置容器名称;

rabbitmq:容器使用的镜像名称;

— 查看是否启动成功

docker ps 

实际上在这一步,我们发现直接访问他可能不会成功,这个时候我们就需要对rabbit进行相关操作。

docker exec -it rabbitmq bash
rabbitmq-plugins enable rabbitmq_management

分别执行以上两条语句,我们发现就可以正常访问了

http://ip:15672

进入rabbitmq后台,浏览器输入地址加rabbit端口号,即可访问管理页面默认密码一般为guest
由于我们在上述运行的阶段使用的是admin,并且密码也是admin,故而我们正常使用的时候就是admin。

如果无法访问,这个情况我们就需要考虑怎么解决这个问题了。
如果无法访问可以尝试开启防火墙 15672 端口:

firewall-cmd --zone=public --add-port=15672/tcp --permanent   
firewall-cmd --reload 

如果进入Rabbit MQ的Channels提示Stats in management UI are disabled on this node
那么我们选择在虚拟机终端,启动Rabbit MQ,随后进入到Rabbit MQ中去步骤分别如下:

  1. 进入Rabbit MQ
docker exec -it rabbitmq bash
  1. 第二步,查看配置文件
cat /etc/rabbitmq/conf.d/management_agent.disable_metrics_collector.conf
  1. 第三步,将配置文件内容修改,true变成false
cd  /etc/rabbitmq/conf.d/

echo management_agent.disable_metrics_collector = false > management_agent.disable_metrics_collector.conf
  1. 第四步,退出容器
exit
  1. 第五步,重启容器
docker restart rabbitmq

docker 安装MongoDB

------------------docker 安装MongoDB
记得这个是安装了相关依赖和docker之后才能进行的操作,以下是安装最新的版本。

docker run -d --restart=always -p 27019:27017 --name mymongo -v /home/mongodb:/data/db -d mongo

MongoDB简单的增查操作
好了,第一步完成了,那么第二部,直接从docker镜像中查看安装的MongoDB,

docker ps

找到MongoDB的容器id

之后进行:

docker exec -it 容器id mongo admin

实际上这个时候就已经进入到MongoDB里边了。

我们继续添加用户:

以下是对容器进行管理员添加

db.createUser({ user: 'root', pwd: '123456', roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] });

如果他显示

Successfully added user: { “user” : “root”, “roles” : [ { “role” :
“userAdminAnyDatabase”, “db” : “admin” } ] }

代表添加成功了

接下来我们对添加的用户进行测试一下哈

语法是:db.auth(“用户名”,“密码”)

db.auth("root","123456")
db.auth(“root”,”root”) 密码错误
Error: Authentication failed.
0
db.auth(“root”,”123456”) 密码正确
1

以上是添加管理员和管理员登录的操作,接下来我们进行用户数据添加操作。

db.createUser({ user: 'xh', pwd: '123456', roles: [ { role: "readWrite", db: "xh" } ] });

这里我们对整条语句进行分析:

db 代表MongoDB的语法操作

createUser代表创建用户数据,可以是普通用户也可以是管理员,其主要区别在于后边的roles的操作,实际上是对权限的管控。

roles :给创建的用户分配权限

db:数据库名,和第一个db有区别

使用我们创建的数据库 : 语法use 数据库名

use test

添加数据到数据库表:

语法:db.表名.save({列名:”数据”});

db.test.save({name:"张三"})

既然添加数据了,那么就要查询数据了:

查询数据:语法查询MongoDB的所有数据:db.表名.find()

db.test.find()

具体语法请查看:https://blog.csdn.net/weixin_36810906/article/details/110792096

客户端连接MongoDBdb
输入IP地址

端口号:27019 其实是我定义的,他默认是27017

docker 安装 FDFS-

-------------------------docker 安装 FDFS------------------------
在我们的项目中有很多需要存储的内容出现,比如图片,视频,文件等等,在早期的时候用户量不大,产生的文件也不是很多,这时我们可以把文件和服务程序放在一个服务器中。
随着文件越来越多,服务器的资源会被文件资源大量占据,从而影响到服务器的稳定,这时我们可以单独的把文件服务器拆出来。
拆解出来后,文件服务的使用不会影响到我们的系统服务的稳定,但是当用户量越来越大,存储的文件就会越来越多,这时如果还是单台的文件服务,比如1000T的文件,这时是存储不下去的,这时就产生了我们将的分布式文件存储。
也就是我们解决如何将这1000T的文件分散的存储到各个节点上,然后当我们需要读取文件的时候又能非常快的帮我们把文件找到。这个就是分布式文件系统帮我们解决的问题了。

先去docker hub寻找镜像文件

docker search fastdfs

拉取镜像文件

docker pull delron/fastdfs

通过Docker命令来创建Tracker服务

先创建文件夹

mkdir /mydata

cd /mydata

mkdir /tracker

ll

执行docker命令

 docker run -d --name tracker --network=host -v /mydata/fastdfs/tracker:/var/fdfs delron/fastdfs tracker

注意:tracker服务默认的端口为22122

通过Docker命令构建构建Storage服务

创建文件夹

cd /mydat

mkdir /storage


ll

执行命令

docker run -d --name storage --network=host -e TRACKER_SERVER=x.x.x.x:22122 -v /mydata/fastdfs/storage:/var/fdfs -e
GROUP_NAME=group1 delron/fastdfs storage

注意:其中TRACKER_SERVER中的ip要修改为你的Tracker服务所在的服务IP地址

默认情况下在Storage服务中是帮我们安装了Nginx服务的,相关的端口为:
服务 默认端口
tracker 22122
storage 23000
Nginx 8888

具体见:https://blog.csdn.net/Coder_ljw/article/details/127523362

Linux安装javaJDK

首先去官网下载一个java8版本的jdkLinux版本,我的是 jdk-8u371-linux-x64.tar.gz
之后放到你需要指定的目录下,这个随便你,但是你需要记得这个保存路径的,这个是需要使用的。
我一般放到

/mydata/MySoft/

这个目录下:

  1. 切换到这个目录下
cd /mydata/MySoft/
  1. 检查你的文件是否上传到以上文件夹下,如果有,那么就执行第三部,如果没有先把文件放过来
ls
  1. 将我们下载的压缩包解压
tar -zxf jdk-8u201-linux-x64.tar.gz
  1. 在检查一下是否解压成功,使用第二步的 ls查看是否存在相应文件
  2. 第五步,配置环境变量,让Java生效
sudo vim /etc/profile
  1. 之后将以下代码复制到第五步打开的文件下去,注意,第一个JAVA_HOME是指你解压jdk的文件,另外强调一下,vim编辑器的使用,在添加之前需要了解,按i,进行插入,按esc后:wq退出vim编辑器
#this is for java environment
export JAVA_HOME=/mydata/MySoft/jdk1.8.0_371
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JRE_HOME=$JAVA_HOME/jre
  1. 加载以下环境变量,让刚刚配置的环境变量生效
source /etc/profile
  1. 验证jdk的环境变量是否生效
java -version

javac -version 

Linux上安装Tomcat并设置开机启动

与上边安装jdk一样,在环境变量下添加以下代码,启动Tomcat,在Tomcat文件夹下的bin下的startup.sh,关闭是shutdown.sh;文章来源地址https://www.toymoban.com/news/detail-515116.html

# 创建 TOMCAT_HOME 环境变量, 指向 Tomcat 根目录
export TOMCAT_HOME=/mydata/MySoft/apache-tomcat-9.0.35

# 创建 Tomcat 服务器的端口号环境变量
export TOMCAT_PORT=8080

# PS: 以后 Tomcat 升级版本或目录变更, 默认端口变更, 修改这里即可

到了这里,关于Docker安装常用的容器,包括MySQL,Redis,RabbitMQ,MongoDB,FDFS等的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包