Centos下使用Docker安装软件

Centos下使用Docker安装软件

一、安装Docker

安装

查看官方文档,找到在CentOS上安装的指南

 # 1.卸载旧版本
 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.设置镜像的仓库-阿里云  
sudo yum-config-manager \
    --add-repo \
    http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

# 更新yum软件包索引
sudo yum makecache fast

# 4.安装dokcer相关的额 docker-ce 社区版 ee 企业版    
sudo yum install docker-ce docker-ce-cli containerd.io

# 5.设置docker开启自启动
systemctl enable docker.service

# 5.启动Docker
sudo systemctl start docker

# 6.查看Docker的版本信息
docker version

阿里云镜像加速

sudo mkdir -p /etc/docker

sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://moz4bto9.mirror.aliyuncs.com"]
}
EOF

sudo systemctl daemon-reload

sudo systemctl restart docker

Docker 的卸载

# 1. 卸载 Docker Engine、CLI 和 Containerd 包:
sudo yum remove docker-ce docker-ce-cli containerd.io

# 2. 主机上的映像、容器、卷或自定义配置文件不会自动删除。删除所有镜像、容器和卷:
sudo rm -rf /var/lib/docker

# /var/lib/docker docker默认的工作路径

sudo rm -rf /var/lib/containerd

# 3 必须手动删除任何已编辑的配置文件。

二、Docker安装部署Mysql

2.1 查看mysql镜像版本:https://hub.docker.com/_/mysql?tab=tags

image-20220521154016999

2.2 我选的是5.x的版本,下载镜像

docker pull mysql:5.7.37

2.3 创建挂载文件

mkdir -p /root/docker/mysql

#启动镜像 
docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=12345 --name mysql mysql:5.7.37

#将容器内部文件copy到外部
docker cp mysql:/etc/mysql /root/docker/mysql/conf
docker cp mysql:/var/lib/mysql /root/docker/mysql/data

#移除容器
docker rm -f mysql

2.4 通过挂载开启容器

docker run -d -p 3306:3306 \
    -v /root/docker/mysql/conf:/etc/mysql/ \
    -v /root/docker/mysql/data:/var/lib/mysql \
    -e MYSQL_ROOT_PASSWORD=12345 \
    --name mysql \
    mysql:5.7.37

-e MYSQL_ROOT_PASSWORD=12345 设置mysql登录密码为12345 默认登录名为root

–name mysql 设置容器名为mysql

2.5 进入mysql容器内部

docker exec -it 容器名或容器id bash

三、Docker 安装 Redis

3.1查看redis对应的镜像版本:https://hub.docker.com/_/redis?tab=tags

image-20220521154300618

3.2我选的是5.x的版本,下载镜像

docker pull redis:5.0.14

3.3 创建redis的挂载目录

# 创建挂载目录
mkdir -p /root/docker/redis/conf
mkdir -p /root/docker/redis/data

3.4 查看redis配置文件: https://gitee.com/mirrors/redis/blob/unstable/redis.conf

# 创建编译redis配置文件
vim /root/docker/redis/conf/redis.conf

# 复制以上网址中的redis.conf内容

3.4 修改启动默认配置(从上至下依次)

bind 127.0.0.1 -::1 #注释掉这部分,这是限制redis只能本地访问

protected-mode no #默认yes,开启保护模式,限制为本地访问

daemonize yes #默认no,改为yes意为以守护进程方式启动,可后台运行,除非kill进程,改为yes会使配置文件方式启动redis失败

appendonly yes #默认no,改为yes意为开启redis持久化(可选)

3.5 docker 启动redis容器

docker run -d -p 6379:6379 \
    -v /root/docker/redis/redis.conf:/etc/redis/redis.conf \
    -v /root/docker/redis/data:/data \
    --name redis \
    redis:5.0.14 redis-server /etc/redis/redis.conf

字段讲解

-p 6379:6379 端口映射:前表示主机部分,:后表示容器部分。

–name redis01 指定该容器名称,查看和进行操作都比较方便。

-v 挂载目录,规则与端口映射相同。

-d 表示后台启动redis

redis-server /etc/redis/redis.conf 以配置文件启动redis,加载容器内的conf文件,最终找到的是挂载的目录/usr/local/docker/redis.conf

4.进入redis容器的命令台

docker exec -it 容器名或容器id redis-cli

四、docker安装RocketMQ

4.1查看RocketMQ版本:https://hub.docker.com/r/foxiswho/rocketmq/tags

image-20220521160819712

4.2 我选的是4.5.1版本,下载启动NameServer容器:

docker run -d -p 9876:9876 \
    --name rmqserver \
    foxiswho/rocketmq:server-4.5.1

4.3 下载并且部署broker容器

docker run -d -p 10911:10911 -p 10909:10909 \
   --link rmqserver:namesrv \
   -e "NAMESRV_ADDR=namesrv:9876" -e "JAVA_OPTS=-Duser.home=/opt" \
   -e "JAVA_OPT_EXT=-server -Xms128m -Xmx128m" \
   --name rmqbroker \
   foxiswho/rocketmq:broker-4.5.1

4.3 修改配置文件

# 进入容器
docker exec -it rmqserver bash  

# 修改配置文件
vim /etc/rocketmq/broker.conf

# 增加这一行,设置broker节点所在服务器的ip地址(公网IP)
brokerIP1 = 公网ip

# 退出容器
exit

# 重启broker
docker restart rmqbroker

4.4 下载且启动启动rocketmq console(网页控制台)

docker run -d -p 8180:8080 \
   -e "JAVA_OPTS=-Drocketmq.namesrv.addr=namesrv:9876 \
   -Dcom.rocketmq.sendMessageWithVIPChannel=false" \
   --link rmqserver:namesrv \
   --name rmqconsole \
   -t styletang/rocketmq-console-ng

**4.5 通过网址查看: ip:8180 **

image-20220224214241339

五、Docker安装Nginx

5.1 查看nginx版本:https://hub.docker.com/_/nginx?tab=tags

image-20220521160432700

5.1 我选的是1.14.2 这个版本,下载nginx

docker pull nginx:1.14.2

5.2 准备挂载目录

# 创建挂载目录
mkdir -p /root/docker/nginx/conf
mkdir -p /root/docker/nginx/log

# 运行容器
docker run --name nginx -d nginx:1.14.2

# 将容器中内容复制到挂载目录
docker cp nginx:/etc/nginx/nginx.conf /root/docker/nginx/conf/nginx.conf
docker cp nginx:/var/log/nginx  /root/docker/nginx/log
docker cp nginx:/usr/share/nginx/html /root/docker/nginx

# 删除容器
docker rm -f nginx

5.3运行容器

# 挂载
docker run -d -p 8080:80 \ 
    -v /root/docker/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
    -v /root/docker/nginx/log:/var/log/nginx \
    -v /root/docker/nginx/html:/usr/share/nginx/html \
    --name nginx \
    nginx:1.14.2

5.4进入/home/docker/nginx/conf/目录下,修改配置文件

vim /root/docker/nginx/conf/nginx.conf

复制粘贴以下内容

user  nginx;
worker_processes  1;

error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;

# 全局配置
events {
    worker_connections  1024;
}

# http配置
http {
    
    # css,js界面渲染
    include   mime.types;
    default_type  application/octet-stream;
    
    # ip限流:1秒只能访问一次
    limit_req_zone  $binary_remote_addr  zone=mylimit:10m  rate=1r/s;
    
    # 负载均衡配置网关
    upstream gateway{
        # 通过weight设置权重
        server 101.43.122.162:10003 weight=1;
    }
    
    # 前端: 静态页面    
    server{
        listen     80;  # 端口
        server_name  localhost; # 主机ip地址
        
        # 错误信息
        error_page 403 404 405 500 502 503 504 /error;  
        location /error{ 
            default_type 'application/json';
            set $ret_body '{"code": "-1","messsge": "系统繁忙,请稍后再试"}';   
            return 200 $ret_body; 
        }
        
        location / {
            root  /usr/share/nginx/html/dist-user;
	        try_files $uri $uri/ @router;
            index  index.html index.htm;
        }
        
         # 配置管理员静态资源
        location /admin/{
            alias /usr/share/nginx/html/dist-a;
            try_files $uri $uri/ /dist-admin/index.html;
	        index  index.html index.htm;
        }
        
        location @router {
            rewrite ^.*$ /index.html last;
        }
    
        # 配置vue的请求位置
        location /prod-api/{
            # 超过访问频次而且缓冲区也满了的时候就会直接返回503
            limit_req zone=mylimit burst=1 nodelay;
            proxy_pass http://gateway/;
        }
    }
}

六、Docker 安装部署Sentinel

6.1 查看版本:https://hub.docker.com/r/bladex/sentinel-dashboard/tags

6.2 下载并且启动容器

docker run -d -p 8858:8858 \
    --name sentinel \  
    bladex/sentinel-dashboard

七、Docker 安装部署Canal

7.1 安装Canal

7.1.1 查看版本:https://hub.docker.com/r/canal/canal-server/tags

image-20220521155453893

7.1.2下载镜像

docker pull canal/canal-server:v1.1.5

7.1.3 创建存储配置文件地址,构建配置文件

mkdir -p /root/docker/canal

#启动镜像 
docker run --name canal -d canal/canal-server:v1.1.5

#找到文件位置后 exit退出容器 将容器内部文件copy到外部
docker cp canal:/home/admin/canal-server/conf/canal.properties /root/docker/canal
docker cp canal:/home/admin/canal-server/conf/example/instance.properties /root/docker/canal

#移除容器
docker rm -f canal

7.1.4修改配置文件instance.conf

vim /root/docker/canal/instance.properties
# 编辑instance.conf 
# 添加以下
canal.instance.mysql.slaveId=10
# 修改以下: 数据库ip:端口
canal.instance.master.address= x.x.x.x:xxxx

7.1.5 运行容器,将配置文件挂载到之前新建的目录中

docker run -d -p 11111:11111 \
    -v /root/docker/canal/instance.properties:/home/admin/canal-server/conf/example/instance.properties\
    -v /root/docker/canal/canal.properties:/home/admin/canal-server/conf/canal.properties \
    -v /root/docker/canal/logs:/home/admin/canal-server/logs/ \
    --name canal \
    canal/canal-server:v1.1.5

7.2 数据库mysql 配置

7.2.1 进入mysql容器

 docker exec -it mysql-bsks bash

7.2.2 连接数据库

mysql -uroot -p12345

7.2.3 创建用于同步的账号

# 新建用户 用户名:canal  密码:canal 
mysql>create user canal identified by 'canal';
mysql>ALTER USER 'canal'@'%' identified with mysql_native_password BY 'canal';
# 授权
mysql>grant select, replication slave,replication client on *.* to 'canal'@'%';
# 刷新MySQL的系统权限相关表
mysql>flush privileges;

7.2.4 修改mysql挂载目录下的配置文件my.cnf(容器中位置:/etc/mysql/conf.d/my.cnf)

# server_id不重复即可,不要和canal的slaveId重复
server_id=1
# 开启binlog
log_bin = mysql-bin
# 选择row模式
binlog_format = ROW

7.2.5 重启mysql容器

docker restart mysql

八、 Docker安装ElasticSearch

2.2.1 查看ElasticSearch的docker版本

网址:https://hub.docker.com/_/elasticsearch?tab=tags

image-20220519163822020

2.2.1 下载并且安装ElasticSearch

创建挂载目录

# 创建挂载目录
mkdir -p /root/docker/elasticsearch/config
mkdir -p /root/docker/elasticsearch/data
mkdir -p /root/docker/elasticsearch/plugins
# 给挂载目录添加权限
chmod -R 777 /home/docker/elasticsearch/plugins

下载ElasticSearch镜像

docker pull elasticsearch:8.2.0

复制配置文件到挂载目录

# 运行容器
docker run -d -P --name elasticsearch elasticsearch:8.2.0

# 复制配置文件
docker cp elasticsearch:/usr/share/elasticsearch/config/. /root/docker/elasticsearch/config
# 删除容器
docker rm -f elasticsearch

启动容器

docker run -d -p 9200:9200 -p 9300:9300 \
	-e "discovery.type=single-node" \
	-e ES_JAVA_OPTS="-Xms64m -Xmx512m" \
	-v /root/docker/elasticsearch/config/:/usr/share/elasticsearch/config \
	-v /root/docker/elasticsearch/data:/usr/share/elasticsearch/data \
	-v /root/docker/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
	--name elasticsearch \
	elasticsearch:8.2.0
  • -d:表示在后台运行容器;
  • -p:将容器的端口 9200(TCP 请求端口) 和 9300(HTTP 请求端口)映射到主机上对应的端口;
  • -e:设置环境变量;
  • -v:挂载目录;
  • --name:设置容器名称;
  • elasticsearch:8.2.0:容器使用的镜像名称;

如果想要设置容器开机自启,可在终端输入以下内容

docker update elasticsearch --restart=always

配置跨域

vim /root/docker/elasticsearch/config/elasticsearch.yml

# 添加以下内容
# 支持跨域
http.cors.enabled: true
http.cors.allow-origin: "*"

访问elasticsearch

要开启9200端口,访问路径:http://ip:9200

2.2.3 安装kibana

创建挂载目录

mkdir -p /root/docker/kibana/config

下载镜像

docker pull kibana:8.2.0

设置挂载目录

# 运行容器
docker run -d -P --name kibana kibana:8.2.0

# 复制配置文件
docker cp kibana:/usr/share/kibana/config/. /root/docker/kibana/config
# 删除容器
docker rm -f kibana

运行容器

将以下命令中的xxx换成 elasticsearch 服务运行的 IP 地址

docker run -d -p 5601:5601 \
	-e ELASTICSEARCH_HOSTS=http://xxx:9200 \
	--name kibana \
	kibana:8.2.0

-d:表示在后台运行容器;

-p 5601:5601:将容器的 5601 端口映射到主机的 5601 端口上;

-e ELASTICSEARCH_HOSTS:设置环境变量,ELASTICSEARCH_HOSTS 指定了 elasticsearch 服务运行的 IP 地址;

–name kibana:设置容器名称;

kibana:7.6.2:容器使用的镜像名称;

访问

访问路径:http://ip:5601/app/kibana

汉化

vim /root/docker/kibana/config/kibana.yml
# 在最后一行添加
i18n.locale: "zh-CN"

九、Docker安装Nacos

9.1 查看版本:https://hub.docker.com/r/nacos/nacos-server/tags

image-20220521171429769

9.2 下载镜像

docker pull nacos/nacos-server:v2.1.0

9.3 mysql创建存储nacos配置的数据库

create database nacos_config

9.4 初始化数据库,导入初始化文件nacos-db.sql

image-20220521173032274

9.5 创建容器

将以下中的x.x.x.x换成数据库ip地址,root换成数据库用户名,12345改成数据库用户名对应的密码

docker run -d -p 8848:8848 \
   -e MODE=standalone \
   -e SPRING_DATASOURCE_PLATFORM=mysql \
   -e MYSQL_SERVICE_HOST=x.x.x.x \
   -e MYSQL_SERVICE_PORT=330 \
   -e MYSQL_SERVICE_USER=root \
   -e MYSQL_SERVICE_PASSWORD=12345 \
   -e MYSQL_SERVICE_DB_NAME=nacos_config \
   -e JVM_XMS=256m \
   -e JVM_XMX=256m \
   -e JVM_XMN=256m \
   --network host \
   --name nacos \
   nacos/nacos-server:v2.1.0

-e MODE=standalone 使用 standalone模式(单机模式)

-e SPRING_DATASOURCE_PLATFORM=mysql 选择mysql数据库

-e MYSQL_SERVICE_HOST=x.x.x.x 数据库地址

-e MYSQL_SERVICE_PORT=3306 数据库端口

-e MYSQL_SERVICE_USER=root 数据库用户名

-e MYSQL_SERVICE_PASSWORD=12345 数据库密码

-e MYSQL_SERVICE_DB_NAME=nacos_config 数据库名称

-e JVM_XMS=256m

-e JVM_XMX=256m

-e JVM_XMN=256m

–network host 将Linux宿主机的IP赋值给容器IP

–name nacos 设置容器名为 nacos

–restart=always 总是重启,加上这句话之后,若重新启动Docker,该容器也会重新启动

9.6 开启端口

# 查询8848端口防火墙是否开启,返回no表示没有开启
firewall-cmd --query-port=8848/tcp

# 防火墙开启8848端口
firewall-cmd --add-port=8848/tcp --permanent

# 重载防火墙开放端口
firewall-cmd --reload

**注:**Nacos2.x版本新增了gRPC的通信方式,因此需要新增占用两个端口(9848,9849),并且这两个端口必须开放,否则客户端就连接不上Nacos服务。

详情地址:https://nacos.io/zh-cn/docs/2.0.0-compatibility.html

9.7 访问nacos

默认用户名和密码都是nacos, 访问地址: ip:8848/nacos

RD=12345 数据库密码

-e MYSQL_SERVICE_DB_NAME=nacos_config 数据库名称

-e JVM_XMS=256m

-e JVM_XMX=256m

-e JVM_XMN=256m

–network host 将Linux宿主机的IP赋值给容器IP

–name nacos 设置容器名为 nacos

–restart=always 总是重启,加上这句话之后,若重新启动Docker,该容器也会重新启动

9.6 开启端口

# 查询8848端口防火墙是否开启,返回no表示没有开启
firewall-cmd --query-port=8848/tcp

# 防火墙开启8848端口
firewall-cmd --add-port=8848/tcp --permanent

# 重载防火墙开放端口
firewall-cmd --reload

注: Nacos2.x版本新增了gRPC的通信方式,因此需要新增占用两个端口(9848,9849),并且这两个端口必须开放,否则客户端就连接不上Nacos服务。

详情地址:https://nacos.io/zh-cn/docs/2.0.0-compatibility.html

9.7 访问nacos

默认用户名和密码都是nacos, 访问地址: ip:8848/nacos

image-20220521182753275

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值