目录
1.Docker安装
1.1docker概念
1.2安装
1.3卸载docker
1.4docker命令
2.nacos安装
3.mysql安装
4.Redis安装
5.Rabbitmq安装
5.1安装
5.2安装RabbitMQ延迟消息插件
6.RocketMq安装
7.springboot项目部署
8.jenkins自动化部署docker
离线安装docker包 Index of linux/static/stable/x86_64/
docker 的三个概念:
- 仓库:仓库就类比于github仓库,上面存储着各种各样版本的软件Docker Hub
- 镜像,我们从docker上拉取一个软件初始就是个镜像
- 容器,容器就是镜像运行时,可以用的软件
官网安装地址 Install Docker Engine on CentOS | Docker Documentation
更新yum
sudo yum update
1.安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
2.配置docker的仓库,从docker官方仓库下载会太慢,我们就将仓库配置到阿里云(类似于maven的仓库配置)
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
推荐使用阿里云
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
3.可以查看所有仓库中所有docker版本,并选择特定版本安装
yum list docker-ce --showduplicates | sort -r
4.安装docker
#安装指定版本
sudo yum install docker-ce-20.10.7 --allowerasing
#安装最新版本
sudo yum install docker-ce docker-ce-cli containerd.io
5.要继续配置一下阿里云镜像加速,按如下步骤完成即可.(可忽略不配置)
步骤2,是写配置文件
1. mkdir -p /etc/docker
2. vim /etc/docker/daemon.json
3. systemctl daemon-reload
4. systemctl restart docker
步骤2的配置文件格式
{ "registry-mirrors": ["https://{自已的编码}.mirror.aliyuncs.com"] }
自己的编码如何查看,网址: https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors
6.启动并加入开机启动
#重新加载配置文件
systemctl daemon-reload
#启动Docker
systemctl start docker
systemctl stop docker
systemctl restart docker
#设置开机自启动
systemctl enable docker
systemctl enable docker.service
systemctl disable docker
#查看docker启动状态
systemctl status docker
#查看docker信息
docker info
7.验证安装是否成功(有client和service两部分表示docker安装启动都成功了)
docker version
1.卸载旧版本(如果安装过旧版本的话)
sudo yum remove docker docker-common docker-selinux docker-engine
2.删除安装包
yum remove docker-ce
3.删除镜像、容器、配置文件等内容
rm -rf /var/lib/docker
#查找镜像
docker search mysql
#拉去最新版本
docker pull mysql
#拉去指定版本
docker pull mysql:5.7
# 查看镜像
docker images
# 查看正在运行容器
docker ps
# 查看全部容器
docker ps -a
# 查看容器的实时日志
docker logs -f 容器id(容器名称) | docker logs -f --tail 500 容器id(容器名称)
# 使用 inspect 命令查看镜像详细信息
docker inspect 容器id(容器名称)
# 访问url
curl localhost:8080
# 查看端口使用情况
netstat -ntlp
# 进入容器
docker exec -it 容器id(容器名称) /bin/bash
# 退出容器
exit
# 停止容器
docker stop 容器id(容器名称)
# 启动容器
docker start 容器id(容器名称)
# 重启容器
docker restart 容器id(容器名称)
# 删除容器(删除容器前得停止容器)
docker rm -f 容器id(容器名称)
# 删除镜像(删除镜像前得删除容器)
docker rmi -f 镜像id(镜像名称)
#docker build制作镜像,一般用于springboot项目发布,或者自定义镜像
docker build -t param1 .
#param1 镜像名称 , . 当前目录 或者 /root/demo/ 指定目录
#docker run参数设置
docker run -d -p 8080:8080 -v /home/demo/:/mnt/demo/ --add-host redis_host:192.168.0.1 --restart=always --name param1 param2
-d 内部运行
-p 宿主机映射端口:容器内部端口
--name param1容器名称 param2镜像名称
-v 表示需要将宿主机哪个目录挂载到容器中,格式:-v <宿主机(Linux)目录>:<容器目录>
--restart=always 在运行docker容器时可以加如下参数来保证每次docker服务重启后容器也自动重启
如果docker容器已经启动了则可以使用如下命令:
docker update 容器id(容器名称) --restart=always
--hostname param 指定主机名称,该名称在集群的名称中使用
--add-host redis_host:192.168.0.1 等于 vi /etc/hosts
#搜索Nacos镜像
docker search nacos/nacos-server
#拉取Nacos镜像
docker pull nacos/nacos-server
#创建Nacos容器 并 连接mysql数据库
docker run -d -p 8848:8848 \
-e MODE=standalone \
-e SPRING_DATASOURCE_PLATFORM=mysql \
-e MYSQL_SERVICE_HOST=192.168.0.1 \
-e MYSQL_SERVICE_PORT=3306 \
-e MYSQL_SERVICE_USER=root \
-e MYSQL_SERVICE_PASSWORD=123456\
-e MYSQL_SERVICE_DB_NAME=nacos \
#-e NACOS_APPLICATION_PORT=8848 \#这是自定义端口,如果修改,对应的-p也需要修改,最好采用默认
--restart=always \
--name nacos \
nacos/nacos-server
#进入Nacos容器
docker exec -it nacos /bin/bash
# 查看日志是否运行正常
docker logs -f nacos
#访问:通过 ip:8848/nacos 访问,登录密码默认nacos/nacos
# 查看docker仓库中的mysql
docker search mysql
# 选定需要pull到本地系统中的镜像版本
docker pull mysql:5.7
#或者不选版本号,直接拉取最新的版本
docker pull mysql
#运行mysql,开放的端口是3306,密码是123456, -d是后台运行 ,容器ID/名称是mysql
#-p 3306:3306:将容器的3306端口映射到宿主机的3306端口
#-e MYSQL_ROOT_PASSWORD=root:初始化root用户的密码
#挂载数据到宿主机
mkdir -p /home/mysql/data /home/mysql/logs /home/mysql/conf
cd /home/mysql/conf
touch my.cnf
docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456
-v /home/mysql/conf:/etc/mysql/conf.d
-v /home/mysql/logs:/logs
-v /home/mysql/data:/var/lib/mysql
--restart=always --name mysql mysql:5.7
#查看容器是否运行
docker ps
#进入容器
docker exec -it mysql /bin/bash
#登录mysql
mysql -h localhost -u root -p 或者 mysql -uroot -p123456
接着输入密码root
登录成功后即为安装成功了
#使用Navicat连接
问题1:如果部署在云服务器,则需要配置防火墙,安全组
问题2:若远程Navicat连接不上数据库,可以尝试设置mysql远程权限
# 进入容器 docker exec -it mysql /bin/bash
#登录mysql,执行如下命令
# 设置mysql远程权限
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '密码123456';
# 刷新权限
flush privileges;
# 查看docker仓库中的redis
docker search redis
# pull最新版本redis镜像
docker pull redis:latest
# 查看镜像是否已安装
docker images
# 运行名为redis的容器并配置密码
docker run -itd -p 6379:6379 --restart=always --name redis redis --requirepass "123456"
mkdir -p /usr/local/redis && mkdir -p /usr/local/redis/data
#修改redis.conf放入/usr/local/redis
#注释掉这句
#bind 127.0.0.1
#开启远程连接
protected-mode no
#设置访问密码,位置大概在901行
requirepass 123456
docker run -d -p 6379:6379 --restart=always
-v /usr/local/redis/redis.conf:/etc/redis/redis.conf -v /usr/local/redis/data:/data
--name redis redis redis /etc/redis/redis.conf --appendonly yes
#查看容易是否运行
dokcer ps
# 查看日志是否运行正常
docker logs -f redis
#查询rabbitmq镜像
docker search rabbitmq
#选择第一个official的官方版本下载使用,不加后面的版本号就会下载最新的镜像
docker pull rabbitmq:3.10.0
或者
docker pull rabbitmq
#查看下载的镜像
docker images
#运行mq , -p 宿主机映射端口:docker的内部端口
docker run -d -p 15672:15672 -p 5672:5672 --restart=always --hostname myRrabbit --name rabbitmq rabbitmq
#查看容器
docker ps -a
#进入容器内部
docker exec -it 容器id /bin/bash
#进入容器内部运行下面命令,这是安装rabbitmq的web界面插件
rabbitmq-plugins enable rabbitmq_management
#exit退出容器内部
#http://linuxip:15672,访问web界面,这里的用户名和密码默认都是guest
#如果不能访问,设置防火墙,安全组
上诉步骤需要进入容器内部安装web界面插件,建议采用下面的方式
#查询rabbitmq镜像
docker search rabbitmq
#下载rabbitmq的Web管理插件
docker pull rabbitmq:management
或者
docker pull rabbitmq:management
#查看下载的镜像
docker images
#运行mq
docker run -d -p 4369:4369 -p 5671:5671 -p 5672:5672 -p 15671:15671 -p 25672:25672 -p 15672:15672
--restart=always --hostname myRabbit
-e RABBITMQ_DEFAULT_VHOST=my_vhost
-e RABBITMQ_DEFAULT_USER=admin
-e RABBITMQ_DEFAULT_PASS=admin
--name rabbitmq rabbitmq:management
--privileged=true
#--hostname 指定容器主机名称,RabbitMQ的hostname 最好指定。Rabbit MQ的有一个重要的注意事项是它根据节点名称来存储数据,默认就是主机名、而上面说道hostname就是集群中的节点名称。如果不指定hostname,那么docker在启动的时候会自动生成hostname,如此一来可能每次生成的hostname都不一样,那么就会导致数据丢失。
#-e 指定环境变量
#RABBITMQ_DEFAULT_VHOST:默认虚拟机名/
#RABBITMQ_DEFAULT_USER:默认的用户名
#RABBITMQ_DEFAULT_PASS:默认用户名的密码
#--privileged=true给容器加上特定权限
#--name rabbitmq rabbitmq:management安装rabbitmq的Web管理插件
#说明 用户是需要与Virtual Hosts绑定的,也就是这里的my_vhost与admin绑定,具体可到mqweb界面的admin菜单下查看
#查看容器
docker ps -a
docker logs rabbitmq 查看日志
#进入容器内部
docker exec -it 容器id /bin/bash
#exit退出容器内部
#http://linuxip:15672,访问web界面,这里的用户名和密码默认都是admin
rabbitmq_delayed_message_exchange 安装
首先我们需要下载 rabbitmq_delayed_message_exchange 插件,这是一个 GitHub 上的开源项目,我们直接下载即可:
https://github.com/rabbitmq/rabbitmq-delayed-message-exchange/releases
下载完成后执行如下命令将下载文件拷贝到 Docker 容器中去:
#或者直接
wget https://github.com/rabbitmq/rabbitmq-delayed-message-exchange/releases/download/v3.10.0/rabbitmq_delayed_message_exchange-3.10.0.ez
#拷贝到容器
#docker cp ./宿主机文件目录 容器ID:/容器内目录
docker cp ./rabbitmq_delayed_message_exchange-3.10.0.ez rabbitmq:/plugins
#进入到容器
docker exec -it rabbitmq /bin/bash
#查看插件列表
rabbitmq-plugins list
#执行如下命令启用插件
rabbitmq-plugins enable rabbitmq_delayed_message_exchange
5.3集群中采用自定义镜像安装延迟消息插件(不可能一台一台的上诉这样操作)(忽略忽略,验证中)
#rabbitmq_delayed_message_exchange-3.10.0.ez文件与Dockerfile同一目录
#编写Dockerfile脚本
FROM rabbitmq:3.10.0-management
COPY rabbitmq_delayed_message_exchange-3.10.0.ez /plugins
RUN rabbitmq-plugins enable --offline rabbitmq_delayed_message_exchange
#执行
docker build -t my-rabbitmq:3.10.0-management .
docker run --name myrabbitmq my-rabbitmq:3.10.0-management
Docker 安装 RabbitmQ 集群_晨一更的博客-CSDN博客
Jenkins自动化部署实现原理及部署到SSH与Docker_晨一更的博客-CSDN博客