阿里云服务器 docker 安装 mysql nacos 与踩坑

阿里云服务器 docker 安装 mysql nacos 与踩坑

一、安装docker

docker 的使用文档 在 CentOS | 上安装 Docker 引擎Docker 文档

1.卸载旧版本的docker(如果是新的服务器可以跳过)

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

2.设置存储库

 sudo yum install -y yum-utils
 sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

3.安装docker

 sudo yum install docker-ce docker-ce-cli containerd.io

4.启动docker

# 启动docker
sudo systemctl start docker
# 验证 docker 是否已正确安装
sudo docker run hello-world
# 设置开机自启动
sudo systemctl enable docker

5.配置阿里云镜像

# 地址
https://cr.console.aliyun.com/cn-qingdao/instances/mirrors
# 登录自己的阿里云选择CentOS的操作文档
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://f3b976hf.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
# 一步步执行就好

二、docker安装mysql

1.拉取mysql镜像

可以去dockerhub上查找自己需要的镜像和版本 https://hub.docker.com/

# 拉取最新版本的mysql
sudo docker pull mysql
# 我们安装mysql:5.7的版本(公司比较常用)
sudo docker pull mysql:5.7

2.创建挂载目录(可以不需要进入容器去修改配置或者查看日志)

mkdir -p /mydata/mysql/logs/                     
mkdir -p /mydata/nacos/data/
mkdir -p /mydata/nacos/conf/ 

3.创建容器

# --name指定容器名字 -v目录挂载 -p指定端口映射  -e设置mysql参数 -d后台运行
sudo docker run -p 3306:3306 --name mysql \
-v /mydata/mysql/logs:/logs \
-v /mydata/mysql/data:/var/lib/mysql \
-v /mydata/mysql/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:5.7

MYSQL_ROOT_PASSWORD=root

设置MySQL的密码root,建议不要root要设置复杂一点,后面我也受到了血的教训(后面文章会有揭晓)

4.查看容器

# 查看运行的容器
docker ps
# 查看所有的容器
docker ps -a
# 进入容器
docker exec -it mysql /bin/bash/
# 进入mysql 
mysql -u root -p (回车)
输入自己的密码
# 退出mysql
exit
# 退出容器
exit
# 设置MySQL开机自启
docker update mysql --restart=always
# 重启mysql
docker restart mysql

5.连接mysql成功

三、docker安装nacos

参考 (二)Docker安装Nacos - AmeKen - 博客园 (cnblogs.com) 的文章

因为自己遇到过许多问题,还是非常感谢

1.拉取nacos镜像

docker pull nacos/nacos-server

2.创建挂载目录(可以不需要进入容器去修改配置或者查看日志)

mkdir -p /mydata/nacos/logs/                      #新建logs目录
mkdir -p /mydata/nacos/init.d/          
vim /mydata/nacos/init.d/custom.properties        #修改配置文件

3.创建容器

刚开始因为自己的阿里云服务器只有2G运行内存比较小,没有设置nacos

JVM_XMS=256m JVM_XMX=256m 的参数大小导致一启动容器服务器就卡死,

只有重新启动服务器。

docker  run \
--name nacos -d \
-p 8848:8848 \
--privileged=true \
--restart=always \
-e JVM_XMS=256m \
-e JVM_XMX=256m \
-e MODE=standalone \
-e PREFER_HOST_MODE=hostname \
-v /mydata/nacos/logs:/home/nacos/logs \
-v /mydata/nacos/init.d/custom.properties:/home/nacos/init.d/custom.properties \
nacos/nacos-server

4.为nacos配置数据库

下载地址

https://github.com/alibaba/nacos/blob/master/config/src/main/resources/META-INF/nacos-db.sql

在我们刚才安装的MySQL上运行nacos的数据库

5.修改配置文件custom.properties

server.contextPath=/nacos
server.servlet.contextPath=/nacos
server.port=8848

spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://xx.xx.xx.x:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=root
db.password=root

nacos.cmdb.dumpTaskInterval=3600
nacos.cmdb.eventTaskInterval=10
nacos.cmdb.labelTaskInterval=300
nacos.cmdb.loadDataAtStart=false
management.metrics.export.elastic.enabled=false
management.metrics.export.influx.enabled=false
server.tomcat.accesslog.enabled=true
server.tomcat.accesslog.pattern=%h %l %u %t "%r" %s %b %D %{User-Agent}i
nacos.security.ignore.urls=/,/**/*.css,/**/*.js,/**/*.html,/**/*.map,/**/*.svg,/**/*.png,/**/*.ico,/console-fe/public/**,/v1/auth/login,/v1/console/health/**,/v1/cs/**,/v1/ns/**,/v1/cmdb/**,/actuator/**,/v1/console/server/**
nacos.naming.distro.taskDispatchThreadCount=1
nacos.naming.distro.taskDispatchPeriod=200
nacos.naming.distro.batchSyncKeyCount=1000
nacos.naming.distro.initDataRatio=0.9
nacos.naming.distro.syncRetryDelay=5000
nacos.naming.data.warmup=true
nacos.naming.expireInstance=true

修改成自己的参数

# 数据库ip和数据库名字
db.url.0=jdbc:mysql://xx.xx.xx.x:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
# 数据库用户
db.user=root
# 数据库密码
db.password=root
上一篇:【行研报告】2021韩国MyData模式介绍及借鉴—附下载链接


下一篇:Spring再接触 注入类型