Dockers安装
新手可以去阿里云免费试用一个月云服务器,建议按照阿里文档部署,CentOS可以参考这个
https://help.aliyun.com/document_detail/187598.html
查看本机内核版本,内核版本需高于 3.10
uname -r
运行以下命令,安装dnf
yum -y install dnf
运行以下命令,安装Docker存储驱动的依赖包
dnf install -y device-mapper-persistent-data lvm2
运行以下命令,添加稳定的Docker软件源(一定要配置,不然下载速度特别慢)
dnf config-manager --add-repo=https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
正确的返回示例如下
docker-ce.x86_64 3:19.03.13-3.el7 docker-ce-stable
运行以下命令安装Docker
dnf install -y docker-ce --nobest
配置阿里云镜像加速docker镜像下载,参考这个
https://help.aliyun.com/document_detail/60750.html
运行以下命令启动Docker
systemctl start docker
验证安装
docker version
docker的一些基础命令
docker images 查看docker镜像
docker ps 查看正在运行的容器
docker ps –a 查看所有容器
service docker status 查看docker状态
docker version 查看docker版本
创建自定义网络
docker 默认是使用bridge,容器每次启动,IP都会发生变动,不利于维护管理, 172.17.0.0/16
是docker默认网段
docker network create --subnet=172.18.0.0/16 blognet
mysql容器安装
拉取mysql镜像
docker pull mysql:5.6
创建并运行容器,123456
是 root
密码, --network blognet --ip 172.18.0.2
使用之前创建的网络, 172.18.0.1
是网关
docker run --name mysql56 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 --network blognet --ip 172.18.0.2 -d mysql:5.6
在默认情况下,我们安在阿里云上的mysql是不支持远程连接的,但是我们还需要通过一些工具来连接mysql,如navicat,这时就需要我们来修改mysql的远程连接了。
docker exec -it mysql56 bash
mysql -uroot -p
打开mysql数据库 (需要有能操作blog这个库的权限,一般是mysql的root用户)
use blog;
指定的ip 表示 只有该ip能连接mysql
-- *.*代表所有库表
-- 若想给予所有IP权限,”ip”写成“%”,所以第一句sql的意思是给予来自所有IP地址的通过“root用户”
-- “密码”登录的用户对所有库表的所有操作权限
grant all privileges on *.* to 'root'@'阿里云公网IP' identified by 'root密码' with grant option;
-- 刷新权限
flush privileges;
不要现在就去navicat进行连接,还需要做两件事,要不你就到坑里了
- 检查服务器防火墙3306端口开放了吗,没开放需要去开放
- 检查一下阿里云的安全组规则中是否开放了3306端口
- 如何检查及配置参考文档:[https://help.aliyun.com/document_detail/25471.html?spm=5176.100241.0.0.IneJPl]
测试连接mysql,如:命令行或navicat,连接上即成功创建mysql容器,随后进行建库建表操作
redis容器安装
docker pull redis
以配置文件启动,redis.conf文件链接: https://www.aliyundrive.com/s/Q1TG9UjNLWk 提取码: 5ld2
/root/redis/redis.conf 中daemonize=NO。非后台模式,如果为YES 会的导致 redis 无法启动,因为后台会导致docker无任务可做而退出。
-v /root/redis/data:/data 容器 /data 映射到宿主机 /root/redis/data
-d redis 后台模式启动 redis
redis-server /etc/redis/redis.conf redis 将以 /etc/redis/redis.conf 为配置文件启动
--appendonly yes 开启redis 持久化
docker run -p 6379:6379 --network blognet --ip 172.18.0.5 --name redis -v /root/redis/redis.conf:/etc/redis/redis.conf -v /root/redis/data:/data -d redis redis-server /etc/redis/redis.conf --appendonly yes
mongodb容器安装
docker pull mongo
docker run --network blognet --ip 172.18.0.7 -itd --name mongo -p 27017:27017 mongo --auth
docker run -it --rm \
--link mongo:mongo \
--entrypoint npm \
--workdir /api/vendors \
registry.cn-hangzhou.aliyuncs.com/anoy/yapi \
run install-server
进入容器
docker exec -it mongo mongo admin
-- mongo5.0以上使用
docker exec -it mongo mongosh admin
创建全局用户
db.createUser({ user:'admin', pwd:'123456', roles:[ { role:'userAdminAnyDatabase', db: 'admin'},"readWriteAnyDatabase"]});
对 admin 用户进行身份认证
db.auth("admin","123456");
创建用户以及关联数据库
db.createUser({ user: 'log', pwd: '123456', roles: [ { role: "readWrite", db: "log" } ] });
对 log用户进行身份认证
db.auth("log","123456");
远程连接的开启
在 mongodb
的容器当中
#更新源
apt-get update
#安装 vim
apt-get install vim
#修改 mongo 配置文件
vim /etc/mongod.conf.orig
将其中的bindIp: 127.0.0.1
注释掉# bindIp: 127.0.0.1
或者改成bindIp: 0.0.0.0
即可开启远程连接
遇到的坑:
用 use db 创建数据库,show dbs 查不到
此SHOW DBS命令不会显示数据库,因为您可能尚未为集合创建文档。如果要为集合创建文档,则创建的数据库将可见。
> use log;
switched to db web
-- 为了显示WEB数据库,我们需要在同一数据库中创建包含文档的集合
> db.check.insertOne({"ClientName":"John"});
{
"acknowledged" : true,
"insertedId" : ObjectId("5cb806c2623186894665ae35")
}
-- 在find()方法的帮助下显示集合中所有文档的查询
> db.check.find();
{"_id" : ObjectId("5cb806c2623186894665ae35"),"ClientName" :"John" }
-- 显示所有数据库,现在可以看到log数据库了
> show dbs;
admin 0.001GB
config 0.000GB
local 0.000GB
log 0.000GB
解决Navicat连接Mongodb不显示数据库
点击连接,选择mongoDB,在编辑连接中选择数据库,全选
springboot整合mongo,配置密码连接,就报错
两种配置都少一步关键配置 ,需要配置去认证的库 authenticationDatabase也就是需要加(因为我的账号密码信息在admin库里),yml追加authentication-database: admin
spring:
data:
mongodb:
username: 'log'
password: '123456'
host: 172.18.0.7
port: 27017
database: log
field-naming-strategy: org.springframework.data.mapping.model.SnakeCaseFieldNamingStrategy
authentication-database: admin
rabbitmq容器安装
这个是带web管理页面的,启动后访问ip:15672
docker pull rabbitmq:management
-- 默认管理员账号:guest 密码:guest
docker run -di --name=rabbitmq --network blognet --ip 172.18.0.6 -p 5671:5671 -p 5672:5672 -p 4369:4369 -p 15671:15671 -p 15672:15672 -p 25672:25672 rabbitmq:management
参考文章:阿里云下配置MySQL远程连接的步骤详解
标签:mongo,--,redis,博客,全过程,mysql,docker,root,Docker From: https://www.cnblogs.com/reallife/p/17266466.html