使用Docker搭建Linux开发环境

主要命令参考:https://docs.docker.com/engine/install/centos/

一、Centos安装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

3、设置 docker repo 的 yum 位置

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

4、安装 docker,以及 docker-cli

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

5、启动 docker

sudo systemctl start docker

6、设置 docker 开机自启

sudo systemctl enable docker

7、测试 docker 常用命令,注意切换到 root 用户下 https://docs.docker.com/engine/reference/commandline/docker/

8、Docker配置阿里云镜像加速器
https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors
在这里插入图片描述
执行以下命令即可:

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://2x0cdkie.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

二、Docker 安装MySQL

1、下载镜像文件

docker pull mysql:5.7

2、创建实例并启动

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=root \ 
	-d mysql:5.7 

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

3、MySQL 配置
在 /mydata/mysql/conf 目录下创建配置文件 my.cnf

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

注意:解决 MySQL 连接慢的问题 在配置文件中加入如下,并重启 mysql

[mysqld] 
skip-name-resolve 

解释: skip-name-resolve:跳过域名解析

设置启动docker 自动启动容器:

docker update mysql --restart=always

4、通过容器的 mysql 命令行工具连接

docker exec -it mysql mysql -uroot -proot

5、设置 root 远程访问

grant all privileges on *.* to 'root'@'%' identified by 'root' with grant option; 
flush privileges;

如果不设置开启root账户远程访问,则使用其他电脑连接该容器里的MySQL会出现以下错误:

1045-Access denied for user ‘root’@‘124.221.145.291’(using password:YES)

若要完全解决,可在安装mysql的机器上把mysql库下的user表里的root用户开启远程登陆—
(把localhost这个值替换成%)

mysql服务搭建后,默认的root角色是不能进行远程访问连接的,建议在数据库搭建时,创建一远程连接的角色。
6、进入容器文件系统

docker exec -it mysql /bin/bash

三、Docker 安装Redis

1、下载镜像文件

docker pull redis

2、创建实例并启动

mkdir -p /mydata/redis/conf 
touch /mydata/redis/conf/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

3、设置redis 缓存数据持久化
在redis.conf 中配置

appendonly yes

4、使用 redis 镜像执行 redis-cli 命令连接

docker exec -it redis redis-cli

测试是否安装成功

四、Docker 安装Nacos

1、拉取镜像

docker pull nacos/nacos-server:1.3.0  # :后为版本号,可以不加,默认拉取最新版本Nacos

2、mysql新建nacos的数据库,并执行脚本
默认需要创建的数据库名为 nacos_config
(也可以使用默认自带的数据库,但是为了方便查看数据,我们这里选择自己新建数据库)
使用默认数据库安装Nacos 可参考:

https://www.cnblogs.com/niunafei/p/12803965.html

在这里插入图片描述
相关表结构初始化 sql 见官网

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

3、创建文件夹及配置文件
这里是为了后来将Ducker容器内启动的Nacos配置文件挂载出来,方便操作。

mkdir -p /mydata/nacos/logs/                      #新建logs目录
mkdir -p /mydata/nacos/init.d/          
vim /mydata/nacos/init.d/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=user	#数据库用户名
db.password=pass	#数据库密码

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

4、启动容器

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:1.3.0	#如果第一步拉取nacos时加了版本号,这里也需要加版本号

5、查看是否启动成功
① 去第3步挂载的目录下面查看日志
② 直接访问

http://ip地址:8848/nacos/

用户名和密码均为 nacos 查看是否登录成功。

posted @ 2022-04-08 23:24  FireCode  阅读(511)  评论(0编辑  收藏  举报