目录

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


1.Docker安装

1.1docker概念

离线安装docker包  Index of linux/static/stable/x86_64/ 

docker 的三个概念:

  1. 仓库:仓库就类比于github仓库,上面存储着各种各样版本的软件Docker Hub
  2. 镜像,我们从docker上拉取一个软件初始就是个镜像
  3. 容器,容器就是镜像运行时,可以用的软件

 1.2安装 

官网安装地址  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.3卸载docker

 1.卸载旧版本(如果安装过旧版本的话)

sudo yum remove docker docker-common docker-selinux docker-engine

  2.删除安装包

yum remove docker-ce

    3.删除镜像、容器、配置文件等内容

rm -rf /var/lib/docker
 

 1.4docker命令

#查找镜像
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

2.nacos安装

#搜索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 

3.mysql安装

# 查看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;

4.Redis安装

# 查看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

5.Rabbitmq安装

5.1安装 

#查询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




5.2安装RabbitMQ延迟消息插件

 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

5.4RabbitMq集群

Docker 安装 RabbitmQ 集群_晨一更的博客-CSDN博客

6.RocketMq安装

7.springboot项目部署

8.jenkins自动化部署docker

Jenkins自动化部署实现原理及部署到SSH与Docker_晨一更的博客-CSDN博客

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐