【Docker实战】Centos7安装Docker、使用docker-compose启动单机版Redis、Nacos、xxl-job

一、前言

建议在CentOS 7.6及以上版本安装Docker。从CentOS 7.6开始,官方的Docker软件包已经包含在CentOS Extras存储库中,并且提供了对Docker的官方支持。如果您使用的是较旧的CentOS 7版本,可以考虑升级到最新的CentOS 7版本,以便获取更好的兼容性和支持。

在CentOS 7上安装Docker之前,需要确认以下事项:

1)系统要求:确保CentOS 7满足Docker的最低系统要求。CentOS 7的内核版本必须在3.10及以上。可以通过以下命令查看系统版本。

cat /etc/centos-release

2)卸载旧版本:

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

二、Centos7安装docker

2.1 安装docker

# 1、更新yum包
sudo yum update

# 2、安装docker所需的软件包
sudo yum install -y yum-utils device-mapper-persistent-data lvm2

# 3、指定下载docker所需的yum源为阿里云
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

# 4、安装docker
sudo yum install docker-ce

# 5、验证
docker -v

2.2 设置镜像下载地址

# 编辑以下文件
vi /etc/docker/daemon.json

# 在文件中添加以下内容
{
  "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}

2.2 启动docker

# 启动docker
systemctl start docker
 
# 停止docker
systemctl stop docker
 
# 重启docker
systemctl restart docker
 
# 查看docker状态
systemctl status docker
 
# 设置开机启动
systemctl enable docker

更多docker命令,可以参阅:https://blog.csdn.net/mst_sun/article/details/135133934

三、Centos7安装docker-compose

docker-compose 简介:https://blog.csdn.net/mst_sun/article/details/135295696

docker-compose 有两种安装方式:
1)插件安装,安装后使用命令是:docker compose(中间是空格)
2)独立安装,安装后使用命令是:docker-compose(中间是短横线)
支持同时采用两种方式安装 compose,安装后可以同时使用 docker-compose 和 docker compose
官方文档:https://docs.docker.com/compose/install/

3.1 插件安装

按照本文第二步安装好 docker 后,compose 插件是自动捆绑安装好的。

# 查看docker compose插件版本
docker compose version

# 安装docker compose插件
sudo yum install docker-compose-plugin

3.2 独立安装

以 2.23.3 为例:

# 下载compose,如果下载比较慢也可以选择从github下载到本地,再上传到服务器。
curl -SL https://github.com/docker/compose/releases/download/v2.23.3/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose

# 添加可执行权限
sudo chmod +x /usr/local/bin/docker-compose

# 查看compose版本
docker-compose version

四、使用docker-compose部署单机版redis、nacos、xxl-job

4.1 创建docker网络

# 创建docker网络,便于容器可以通过网络与宿主机和其他容器通信
docker network create network-java

4.2 redis准备

1)拉取镜像:

docker pull redis:7.0.14

2)创建挂载目录:

mkdir -p /usr/local/docker/redis/data

3)上传配置文件:
下载相应版本的redis.conf 文件:https://github.com/redis/redis/tags,上传至:/usr/local/docker/redis

修改 redis.conf 文件中的参数 bind 为 0.0.0.0

4.3 nacos准备

1)拉取镜像:

docker pull nacos/nacos-server:v2.2.3

2)启动一次nacos:

docker run --name nacos -d \
-e MODE=standalone \
-p 8848:8848 \
-p 9848:9848 \
-p 9849:9849 \
nacos/nacos-server:v2.2.3

3)同步nacos文件到宿主机:

mkdir -p /usr/local/docker/nacos
docker cp nacos:/home/nacos/bin /usr/local/docker/nacos
docker cp nacos:/home/nacos/conf /usr/local/docker/nacos
docker cp nacos:/home/nacos/data /usr/local/docker/nacos
docker cp nacos:/home/nacos/logs /usr/local/docker/nacos

4)停止并删除容器:

docker stop nacos && docker rm nacos

5)执行nacos初始化sql:

先创建nacos数据库,再执行mysql-schema.sql
在这里插入图片描述

4.4 xxl-job准备

1)拉取镜像:

docker pull xuxueli/xxl-job-admin:2.4.0

2)执行初始化脚本:
下载地址:tables_xxl_job.sql

3)创建挂载目录:

mkdir -p /usr/local/docker/xxl-job/logs
mkdir -p /usr/local/docker/xxl-job/conf

下载配置文件,并上传到 conf 文件夹下:application.properties

编辑配置文件,修改 mysql 连接信息:

spring.datasource.url=jdbc:mysql://[IP 或 mysql容器名]:3306/xxl_job?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=Asia/Shanghai
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

4.5 编写docker-compose.yml

查看端口使用情况的命令:

sudo netstat -tulpn | grep :6379

在 /usr/local/docker 目录下,新建 docker-compose.yml 文件,内容如下:

# 定义compose语义版本
version: '3.8'
# 定义服务
services:
  redis:
    image: redis:7.0.14
    container_name: redis
    # 重启策略:在容器手动停止时以外的任何原因退出时重启
    restart: unless-stopped
    # 启动redis服务;设置密码为123456;开启redis持久化
    command: redis-server /etc/redis/redis.conf --requirepass 123456 --appendonly yes
    # 设置容器时区、语言环境
    environment:
      TZ: Asia/Shanghai
      LANG: en_US.UTF-8
    volumes:
      # 需要下载相应版本的redis.conf文件,下载地址:https://github.com/redis/redis/tags
      - "/usr/local/docker/redis/redis.conf:/etc/redis/redis.conf"
      # 挂载持久化数据目录
      - "/usr/local/docker/redis/data:/data"
    ports:
      # 端口映射
      - "6379:6379"
    networks:
      - network-java

  nacos:
    image: nacos/nacos-server:v2.2.3
    container_name: nacos
    restart: unless-stopped
    volumes:
      - "/usr/local/docker/nacos/bin:/home/nacos/bin"
      - "/usr/local/docker/nacos/conf:/home/nacos/conf"
      - "/usr/local/docker/nacos/data:/home/nacos/data"
      - "/usr/local/docker/nacos/logs:/home/nacos/logs"
    environment:
      - PREFER_HOST_MODE=hostname
      - MODE=standalone
      - SPRING_DATASOURCE_PLATFORM=mysql
      # 修改mysql连接信息,TODO
      - MYSQL_SERVICE_HOST=xx.xx.xx.xx
      - MYSQL_SERVICE_DB_NAME=nacos
      - MYSQL_SERVICE_PORT=3306
      - MYSQL_SERVICE_USER=root
      - MYSQL_SERVICE_PASSWORD=xxxxxx
      # 修改JVM参数,可根据实际使用情况进行修改
      - JVM_XMS=512m   #-Xms  default: 1g
      - JVM_XMX=512m   #-Xmx  default: 1g
      - JVM_XMN=256m   #-Xmn  default: 512m
      - JVM_MS=128m     #-XX:MetaspaceSize  default: 128m
      - JVM_MMS=256m    #-XX:MaxMetaspaceSize  default: 320m
      - MYSQL_SERVICE_DB_PARAM=characterEncoding=utf8&connectTimeout=10000&socketTimeout=30000&autoReconnect=true&useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true
    ports:
      - "8848:8848"
      - "9848:9848"
      - "9849:9849"
    networks:
      - network-java
    healthcheck:
      test: ["CMD-SHELL", "echo 'ruok' | curl -s telnet://localhost:8848 || exit 1"]
      retries: 10

  xxl-job:
    image: xuxueli/xxl-job-admin:2.4.0
    container_name: xxl-job
    restart: no
    environment:
      TZ: Asia/Shanghai
      LANG: en_US.UTF-8
      PARAMS: '--spring.config.location=/application.properties'
    volumes:
      - "/usr/local/docker/xxl-job/logs:/data/applogs"
      - "/usr/local/docker/xxl-job/conf/application.properties:/application.properties"
    ports:
      - "8089:8080"
    networks:
      - network-java

networks:
  network-java:
    external: true

4.6 启动服务

# 进入 docker-compose.yml 所在目录,执行以下命令
docker-compose up -d
  • 25
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值