Docker常用环境安装(Mysql,Redis,Nacos,Nginx,)
参考官方安装文档
安装Docker
卸载原有的环境:
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
安装对应的依赖环境和镜像地址
sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
使用以下命令来设置稳定的仓库。
清华大学源
sudo yum-config-manager --add-repo https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo
安装 Docker Engine-Community
sudo yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin -y
启动docker
sudo systemctl start docker
配置阿里云的镜像地址yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
docker 设置国内镜像源
创建或修改 /etc/docker/daemon.json 文件,修改为如下形式
# vi /etc/docker/daemon.json
{
"registry-mirrors": [
"http://hub-mirror.c.163.com",
"https://docker.mirrors.ustc.edu.cn",
"https://registry.docker-cn.com"
]
}
sudo systemctl restart docker
设置docker开机启动
sudo systemctl enable docker
安装Mysql
项目软件统一安装在 /mydata 目录下
docker拉取镜像命令
docker pull mysql:5.7
docker安装MySQL命令
安装mysql docker拉取镜像命令 docker pull mysql:5.7 docker run -d -p 3306:3306 --name mysql -v /mydata/mysql/log:/var/log/mysql -v /mydata/mysql/data:/var/lib/mysql -v /mydata/mysql/conf:/var/etc/mysql -v /mydata/mysql/-files:/var/lib/mysql-files -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7 修改MySQL的配置文件 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 docker ps -a 5bf417b84934 docker restart 5bf417b84934
安装Redis 拉取Redis最新版本镜像 docker pull redis 先创建对应的Redis的映射配置文件 mkdir -p /mydata/redis/conf touch /mydata/redis/conf/redis.conf 创建容器命令 docker run -d -p 6379:6379 --name mall-redis -v /mydata/redis/data:/data -v /mydata/redis/conf:/etc/redis redis redis-server /etc/redis/redis.conf 启动后测试连接: [root@manager-node conf]# docker exec -it 588c80f430b3 redis-cli 127.0.0.1:6379> keys * (empty array) 127.0.0.1:6379>
安装Nacos ---搜索nacos源 docker search nacos docker pull nacos/nacos-server mkdir -p /mydata/nacos/logs/ # 新建logs目录 mkdir -p /mydata/nacos/init.d/ vi /mydata/nacos/init.d/custom.properties # 修改配置文件 custom.properties 配置文件,直接复制修改mysqlIP即可 server.contextPath=/nacos server.servlet.contextPath=/nacos server.port=8848 spring.datasource.platform=mysql db.num=1 # 这里要对应ip,以及对应的数据库 db.url.0=jdbc:mysql://172.17.0.2:3306/nacos_devtest_prod?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 要配置mysql,如果是本地,也不能直接127.0.0.1,因为docker容器也有对应的ip,所以得查看一下对应的ip docker inspect mysql | grep IPAddress #mysql是对应的容器名字 3、运行nacos命令 前提条件做好后,就可以下运行命令 docker run --name nacos -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 \ -d nacos/nacos-server
安装Nginx 拉取Nginx最新版本镜像 docker pull nginx 先创建对应的nginx的文件夹 mkdir -p /mydata/nginx/conf mkdir -p /mydata/nginx/log mkdir -p /mydata/nginx/html 容器中的nginx.conf文件和conf.d文件夹复制到宿主机 # 生成容器 docker run --name nginx -p 80:80 -d nginx # 将容器nginx.conf文件复制到宿主机 docker cp nginx:/etc/nginx/nginx.conf /mydata/nginx/conf/nginx.conf # 将容器conf.d文件夹下内容复制到宿主机 docker cp nginx:/etc/nginx/conf.d /mydata/nginx/conf/conf.d # 将容器中的html文件夹复制到宿主机 docker cp nginx:/usr/share/nginx/html /mydata/nginx/html docker ps -a af95e863ae81 docker restart af95e863ae81 # 删除容器 docker stop nginx docker rm nginx 启动容器命令 docker run \ -p 80:80 -p 443:443 \ --name nginx \ -v /mydata/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \ -v /mydata/nginx/conf/conf.d:/etc/nginx/conf.d \ -v /mydata/nginx/log:/var/log/nginx \ -v /mydata/nginx/html:/usr/share/nginx/html \ -d nginx:latest
设置自启动 docker update --restart=always nginx 设置容器自启动 [root@localhost ~]# docker update --restart=always mysql mysql [root@localhost ~]# docker update --restart=always mall-redis mall-redis docker update --restart=always nacos