阿里云服务器 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-utilssudo yum-config-manager \--add-repo \/linux/centos/docker-ce.repo
3.安装docker
sudo yum install docker-ce docker-ce-cli containerd.io
4.启动docker
# 启动dockersudo systemctl start docker# 验证 docker 是否已正确安装sudo docker run hello-world# 设置开机自启动sudo systemctl enable docker
5.配置阿里云镜像
# 地址https://cr./cn-qingdao/instances/mirrors# 登录自己的阿里云选择CentOS的操作文档sudo mkdir -p /etc/dockersudo tee /etc/docker/daemon.json <<-'EOF'{"registry-mirrors": ["https://f3b976hf."]}EOFsudo systemctl daemon-reloadsudo systemctl restart docker# 一步步执行就好
二、docker安装mysql
1.拉取mysql镜像
可以去dockerhub上查找自己需要的镜像和版本 /
# 拉取最新版本的mysqlsudo 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/conf.d \-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 (回车)输入自己的密码# 退出mysqlexit# 退出容器exit# 设置MySQL开机自启docker update mysql --restart=always# 重启mysqldocker restart mysql
5.连接mysql成功
三、docker安装nacos
参考 (二)Docker安装Nacos - AmeKen - 博客园 () 的文章
因为自己遇到过许多问题,还是非常感谢
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配置数据库
下载地址
/alibaba/nacos/blob/master/config/src/main/resources/META-INF/nacos-db.sql
在我们刚才安装的MySQL上运行nacos的数据库
5.修改配置文件custom.properties
server.contextPath=/nacosserver.servlet.contextPath=/nacosserver.port=8848spring.datasource.platform=mysqldb.num=1db.url.0=jdbc:mysql://xx.xx.xx.x:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=truedb.user=rootdb.password=rootnacos.cmdb.dumpTaskInterval=3600nacos.cmdb.eventTaskInterval=10nacos.cmdb.labelTaskInterval=300nacos.cmdb.loadDataAtStart=falsemanagement.metrics.export.elastic.enabled=falsemanagement.metrics.export.influx.enabled=falseserver.tomcat.accesslog.enabled=trueserver.tomcat.accesslog.pattern=%h %l %u %t "%r" %s %b %D %{User-Agent}inacos.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=1nacos.naming.distro.taskDispatchPeriod=200nacos.naming.distro.batchSyncKeyCount=1000nacos.naming.distro.initDataRatio=0.9nacos.naming.distro.syncRetryDelay=5000nacos.naming.data.warmup=truenacos.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